05-19-2008 7:42 PM
Hi together,
i want to know more about dynamic programming with abap. Are there any options to create function moduls or reports dynamic during runtime from other programms?
Regards,
Anton
05-19-2008 7:49 PM
well, I don't know if it is possible to create FM dynamically, but you can surely create reports dynamically.
Dynamic SUBROUTINE:
DATA: code TYPE TABLE OF string,
prog TYPE program,
msg(120) TYPE c,
lin(10) TYPE c,
wrd(10) TYPE c,
off(3) TYPE c.
APPEND 'PROGRAM SUBPOOL.' TO code.
APPEND 'FORM DYN1.' TO code.
APPEND 'WRITE / ''Hello, I am a temporary subroutine!''.' 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: / 'Error during generation in line', lin,
/ msg, / 'Word:', wrd, 'at offset', off.
ENDIF.
PERFORM dyn1 IN PROGRAM (prog).
Dynamic report:
DATA:
code TYPE TABLE OF string.
CONSTANTS:
rep(40) VALUE 'ZDYN1'.
APPEND 'PROGRAM ZDYN1.' TO code.
APPEND 'WRITE / ''Hello, I am dynamically created!''.' TO code.
INSERT REPORT rep FROM code.
SUBMIT (rep) AND RETURN.
READ REPORT rep INTO code.
APPEND 'WRITE / ''and I am a dynamic extension!''.' TO code.
INSERT REPORT rep FROM code.
GENERATE REPORT rep.
SUBMIT (rep) AND RETURN.