‎2005 Dec 08 10:07 PM
DATA : itab(200) OCCURS 0.
DATA zname(8).
APPEND 'DATA: BEGIN OF IT_INFTY OCCURS 0,' TO itab.
APPEND 'CALL FUNCTION ''UPLOAD''' TO itab.
APPEND 'EXPORTING' TO itab.
APPEND 'filename = ''C:\''' TO itab.
APPEND 'filetype = ''DAT''' TO itab.
APPEND 'TABLES' TO itab.
APPEND 'DATA_TAB = IT_INFTY.' TO itab.
GENERATE SUBROUTINE POOL itab NAME zname.
IF sy-subrc EQ 0.
WRITE:/ 'success'.
ELSE.
WRITE :/25 'Error'.
ENDIF.
<b>Whats going wrong ??</b>
the following code gives sy-subrc <> 0.
‎2005 Dec 08 10:24 PM
Hi ,
you can trap the error by passing the statement .
data : text(30) type c.
GENERATE SUBROUTINE POOL itab NAME zname message Text .
In that you can see what wron in your code.
I think you miss report statement.
Thanks
Rajeev
‎2005 Dec 08 10:29 PM
Hi
This is the right code:
DATA : ITAB(200) OCCURS 0.
DATA ZNAME LIKE SY-REPID.
DATA: L_FORM(30) VALUE 'UPLOAD'.
ZNAME = SY-REPID.
APPEND 'REPORT MY_SUBROUTINE_POOL.' TO ITAB.
APPEND 'FORM UPLOAD.' TO ITAB.
APPEND 'DATA: BEGIN OF IT_INFTY OCCURS 0,' TO ITAB.
APPEND 'FILE(10000),' TO ITAB.
APPEND 'END OF IT_INFTY.' TO ITAB.
APPEND 'CALL FUNCTION ''UPLOAD''' TO ITAB.
APPEND 'EXPORTING' TO ITAB.
APPEND 'filename = ''C:\''' TO ITAB.
APPEND 'filetype = ''DAT''' TO ITAB.
APPEND 'TABLES' TO ITAB.
APPEND 'DATA_TAB = IT_INFTY.' TO ITAB.
APPEND 'ENDFORM.' TO ITAB.
GENERATE SUBROUTINE POOL ITAB NAME ZNAME.
IF SY-SUBRC EQ 0.
WRITE:/ 'success'.
ELSE.
WRITE :/25 'Error'.
ENDIF.
PERFORM (L_FORM) IN PROGRAM (ZNAME).
Max
‎2005 Dec 08 10:29 PM
Take a look at this example:
DATA: prog TYPE string,
tab TYPE STANDARD TABLE OF string,
mess TYPE string,
sid TYPE string.
APPEND 'PROGRAM subpool.' TO tab.
APPEND `DATA spfli_tab TYPE TABLE OF spfli.` TO tab.
APPEND `LOAD-OF-PROGRAM.` TO tab.
APPEND ` SELECT *` &
` FROM spfli` &
` INTO TABLE spfli_tab.` TO tab.
APPEND `FORM loop_at_tab.` TO tab.
APPEND ` DATA spfli_wa TYPE spfli.` TO tab.
APPEND ` LOOP AT spfli_tab INTO spfli_wa.` TO tab.
APPEND ` PERFORM evaluate_wa USING spfli_wa.` TO tab.
APPEND ` ENDLOOP.` TO tab.
APPEND `ENDFORM.` TO tab.
APPEND `FORM evaluate_wa USING l_wa TYPE spfli.` TO tab.
APPEND ` WRITE: / l_wa-carrid, l_wa-connid.` TO tab.
APPEND `ENDFORM.` TO tab.
GENERATE SUBROUTINE POOL tab NAME prog
MESSAGE mess
SHORTDUMP-ID sid.
IF sy-subrc = 0.
PERFORM ('LOOP_AT_TAB') IN PROGRAM (prog) IF FOUND.
ELSEIF sy-subrc = 4.
MESSAGE mess TYPE 'I'.
ELSEIF sy-subrc = 8.
MESSAGE sid TYPE 'I'.
ENDIF.