2009 Jun 22 7:14 AM
Hi,
I developed a report program and when I try to execute the program,I am getting a run-time error as
'The call to the function module "REUSE_ALV_FIELDCATALOG_MERGE" is incorrect:
The function module interface allows you to specify only
fields of a particular type under "I_INTERNAL_TABNAME".
The field "T_OUTPUT" specified here is a different
field type.'
The internal table T_OUTPUT is my output internal table.I have declared it in the program as follows.
types: begin of ty_output,
empid like zheempl-empid,
grade like zheempl-grade,
location like zheempl-location,
pu like zheempl-pu,
name1 like zheempl-name1,
role like zhealoc-role,
stdat like zhealoc-stdat,
endat like zhealoc-endat,
end of ty_output.
data: t_output type standard table of ty_output.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = W_PROG
I_INTERNAL_TABNAME = T_OUTPUT
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = W_PROG
I_BYPASSING_BUFFER = 'X'
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = T_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
When do we get this kind of error and what would be the reason for the error?
You cannot use TYPE when declaring the internal table. You have to use LIKE if you want to use the fielcat FM.
2009 Jun 22 7:17 AM
Refer to [this link>>|http://www.sap-img.com/fu015.htm] on delerations of *merge
2009 Jun 22 7:18 AM
Hi,
declare the Internal table like below and pass to FM...
DATA : begin of T_OUTPUT occurs 0,
empid like zheempl-empid,
grade like zheempl-grade,
location like zheempl-location,
pu like zheempl-pu,
name1 like zheempl-name1,
role like zhealoc-role,
stdat like zhealoc-stdat,
endat like zhealoc-endat,
end of T_OUTPUT.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = W_PROG
I_INTERNAL_TABNAME = 'T_OUTPUT'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = W_PROG
I_BYPASSING_BUFFER = 'X'
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = T_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
Hope it works!!
Rgds,
Pavan
2009 Jun 22 7:19 AM
Change
I_INTERNAL_TABNAME = T_OUTPUT
to
I_INTERNAL_TABNAME = 'T_OUTPUT'Cheers,
Neil.
2009 Jun 22 7:32 AM
Hi,
Thank you.I have passed T_OUTPUT internal table in single quotes.Now the program is not throwing any run-time error but T_FIELDCAT internal table is empty.
2009 Jun 22 7:35 AM
2009 Jun 22 7:37 AM
Yes I am passing sy-repid to w_prog.But still T_FIELDCAT is empty.
2009 Jun 22 7:38 AM
You cannot use TYPE when declaring the internal table. You have to use LIKE if you want to use the fielcat FM.
2009 Jun 22 7:23 AM
Try this,
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = W_PROG
* I_INTERNAL_TABNAME = T_OUTPUT
* I_STRUCTURE_NAME =
* I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = W_PROG
I_BYPASSING_BUFFER = 'X'
* I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = T_FIELDCAT
* EXCEPTIONS
* INCONSISTENT_INTERFACE = 1
* PROGRAM_ERROR = 2
* OTHERS = 3
.
IF sy-subrc 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.Regards
2009 Jun 22 7:26 AM
Hi,
Pass internal table as :
I_INTERNAL_TABNAME = 'T_OUTPUT'
Hope this helps!
Regards,
Saumya
2009 Jun 22 7:40 AM
Hi,
You need to maintain the field catalog yourself using the following code:
Data : i_fieldcat TYPE slis_t_fieldcat_alv.
fc_tmp-fieldname = 'FIELDNAME'.
fc_tmp-tabname = 'T_OUTPUT'.
fc_tmp-outputlen = '20'.
fc_tmp-col_pos = 1.
APPEND fc_tmp TO i_fieldcat.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
i_bypassing_buffer = 'X'
i_buffer_active = ' '
i_callback_program = '<report name> '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_STRUCTURE_NAME =
* IS_LAYOUT =
it_fieldcat = i_fieldcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
i_save = 'A'
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IR_SALV_LIST_ADAPTER =
* IT_EXCEPT_QINFO =
* I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = t_output.
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2.Regards,
Saumya
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |