天天看點

如何用代碼的方式動态建立ABAP subroutine

REPORT ZSUBROUTINE.

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.

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.

繼續閱讀