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

Generating Subroutine Pool

Former Member
0 Likes
858

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.

3 REPLIES 3
Read only

Former Member
0 Likes
513

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

Read only

0 Likes
513

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

Read only

Former Member
0 Likes
513

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.