GENERATE SUBROUTINE POOL 구문을 사용하게되면
가상의(임시의) 프로그램내에 서브루틴을 생성할수있습니다.
================================================================
예제)
================================================================
REPORT Z_DYN_GENERATE_SUBROUTINE.
DATA:
code TYPE TABLE OF string,
prog(8) TYPE c,
msg(120) TYPE c,
lin(10) TYPE c,
wrd(10) TYPE c,
off(3) TYPE c.
*SUBPOOL프로그램내 DYN1 FORM문을 String Type으로 만들었습니다.
APPEND 'PROGRAM SUBPOOL.' TO code.
APPEND 'FORM DYN1.' TO code.
APPEND 'WRITE / ''Hello, I am a temporary subroutine!''.' TO code.
APPEND 'ENDFORM.' TO code.
* string type으로 선언한 코드는 아래구문을 통해 임시 SUBPOOL 프로그램이 Generate 됩니다.
* 위의 그림과 같은 구조로 프로그램이 만들어 지겠죠?
GENERATE SUBROUTINE POOL code NAME
prog MESSAGE msg LINE lin WORD wrd OFFSET off.
IF sy-subrc <> 0.
WRITE: / 'Error during generation in line', lin,
/ msg, / 'Word:', wrd, 'at offset', off.
ENDIF.
* 임시로 만든 프로그램의 Form문을 실행합니다.
PERFORM dyn1 IN PROGRAM (prog).
좋은 정보 감사합니다..