DATA : code(72) OCCURS 10, prog(8), msg(120), lin(3), wrd(10), off(3).
APPEND 'program subpool.' TO code.
APPEND 'form dyn1.' TO code.
APPEND 'write / "동적인 subroutine 1".' TO code.
APPEND 'endform.' TO code.
APPEND 'form dyn2' TO code.
APPEND 'write / "동적인 subroutine 2".' TO code.
APPEND 'endform' TO code.
GENERATE SUBROUTINE POOL code NAME prog MESSAGE msg LINE lin WORD wrd OFFSET off.
IF sy-subrc <> 0.
WRITE : / 'subroutine pool 생성에 실패하였습니다.'.
ELSE.
WRITE : / 'subroutine pool 이름 : ', prog.
SKIP 2.
PERFORM dyn1 IN PROGRAM (prog).
SKIP 2.
PERFORM dyn2 IN PROGRAM (prog).
ENDIF.
결과값 :
subroutine pool 생성에 실패하였습니다.
머가 문제일까요????? ㅜ.ㅜ
안녕하세요. EASY ABAP2.0 아래 프로그램을 이용해서 테스트 해보시기 바랍니다.
REPORT Z04_14.
DATA: gt_code(72) OCCURS 10,
gv_prog(8),
gv_msg(120).
APPEND 'PROGRAM SUBPOOL.' TO gt_code.
APPEND 'FORM dynamic_subr.' TO gt_code.
APPEND 'WRITE / ''Dynamic Subroutine is called''.' TO gt_code.
APPEND 'ENDFORM.' TO gt_code.
GENERATE SUBROUTINE POOL gt_code NAME gv_prog
MESSAGE gv_msg.
IF sy-subrc <> 0.
WRITE: / 'Subroutine POOL is failed'.
ELSE.
WRITE: / 'Subroutine POOL name : ', gv_prog.
SKIP 1.
PERFORM dynamic_subr IN PROGRAM (gv_prog).
ENDIF.