메뉴 건너뛰기

SAP 한국 커뮤니티

[For Power User] Dynamic Transient Program

양키 2011.01.21 09:57 조회 수 : 6016



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).