Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

CONTROL_INTERNAL_ERROR in method I_OI_PIVOT~SET_SOURCE_TABLE

Former Member
0 Likes
1,216

Hello Community,

I am trying to adapt the program SAPRDEMO_PIVOTINTERFACE in order to create a dynamic pivot table (in embed sheet) with data from a database table.

When I use the table SFLIGHT, or other tables (also Z* tables) that have few fields, it works fine, but my requirement is to use a large table (100 fields). With my table, the method SET_SOURCE_TABLE of class I_OI_PIVOT is giving error 7, with Retcode 'CONTROL_INTERNAL_ERROR'.

My code is exact the same for SFLIGHT as it is for my Z* large table, and it works for the first but not for the other. Does anyone know what might be happening? I think the problem is the width of the table, as with other Z* table with 55 it does not work either.

Any solution??

My code below:

//// SCREEN 100 ////

PROCESS BEFORE OUTPUT.
MODULE STATUS_0100. "Copied from SAPRDEMO_PIVOTINTERFACE

MODULE CREATE_BASIC_OBJECTS. "Copied from SAPRDEMO_PIVOTINTERFACE


PROCESS AFTER INPUT.
MODULE EXIT AT EXIT-COMMAND. "Copied from SAPRDEMO_PIVOTINTERFACE

MODULE USER_COMMAND_0100. "Edited (below)

*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

CASE okcode.

WHEN 'SFL'. "button for SFLIGHT

SELECT * FROM sflight INTO TABLE tempsflight.

CLEAR itemsnr.
wa_name-type = i_oi_pivot=>columnfield.
wa_name-col = 1.
APPEND wa_name TO itemsnr.
wa_name-type = i_oi_pivot=>rowfield.
wa_name-col = 2.
APPEND wa_name TO itemsnr.
wa_name-type = i_oi_pivot=>rowfield.
wa_name-col = 7.
APPEND wa_name TO itemsnr.
wa_name-type = i_oi_pivot=>datafield.
wa_name-col = 8.
APPEND wa_name TO itemsnr.
wa_name-type = i_oi_pivot=>datafield.
wa_name-col = 9.
APPEND wa_name TO itemsnr.

CALL METHOD handle2->set_source_table
EXPORTING
name = 'pivot1'
ddic_name = 'SFLIGHT'
data_table = tempsflight
length = 'L'
itemsnr = itemsnr
IMPORTING
error = error
retcode = retcode.

MESSAGE retcode TYPE 'S' DISPLAY LIKE 'E'.

WHEN 'MYTAB'. "Button for my table with 101 fields


SELECT * FROM zmt_smartmex INTO TABLE gi_smartmex.

CLEAR itemsnr.
wa_name-type = i_oi_pivot=>columnfield.
wa_name-col = 1.
APPEND wa_name TO itemsnr.
wa_name-type = i_oi_pivot=>rowfield.
wa_name-col = 2.
APPEND wa_name TO itemsnr.
wa_name-type = i_oi_pivot=>rowfield.
wa_name-col = 7.
APPEND wa_name TO itemsnr.
wa_name-type = i_oi_pivot=>datafield.
wa_name-col = 8.
APPEND wa_name TO itemsnr.
wa_name-type = i_oi_pivot=>datafield.
wa_name-col = 9.
APPEND wa_name TO itemsnr.

CALL METHOD handle2->set_source_table
EXPORTING
name = 'pivot1'
ddic_name = 'ZMT_SMARTMEX'
data_table = gi_smartmex
length = 'L'
itemsnr = itemsnr
IMPORTING
error = error
retcode = retcode.

MESSAGE retcode TYPE 'S' DISPLAY LIKE 'E'.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

3 REPLIES 3
Read only

joao_sousa2
Active Contributor
0 Likes
877

I would debug the standard code to figure out where that error is being thrown and why. Have you tried that?

Read only

0 Likes
877

Yes, I did debug it before posting this.

Inside of the method SET_SOURCE_TABLE of class I_OI_PIVOT seems to be fine until the call to method CALL_OBJECT_METHOD. This returns the code '999999-', same as it does for the successful examples I've tried, and then it does a FLUSH, where it changes the error code to '7' (CONTROL_INTERNAL_ERROR), while for success examples, the FLUSH returns a '0'.

I am not being able to know or debug what happens inside the flush or where it takes the error code from.

Any idea?

Thanks.

Read only

matt
Active Contributor
0 Likes
877

When you post code please do so using the "code" button in the editor. For copy paste, right click and choose "paste as plain text".