ABAP Keyword Documentation → ABAP − Reference → program editing
Dynamic Program Editing
In addition to static program development in the ABAP Workbench, the following components of ABAP programs can be edited and generated using language elements:
This type of program development is called dynamic program development.
Other versions: 7.31 | 7.40 | 7.54
Security Note
If used wrongly, dynamic programming techniques can present a serious security risk. Any dynamic content
that is passed to a program from the outside must be checked thoroughly or escaped before being used
in dynamic statements. This can be done using the system class CL_ABAP_DYN_PRG
or the predefined function escape
.
Notes
- On the one hand, the statements for dynamic program development provide a powerful and flexible method of dynamic programming, but on the other hand this type of programming is very elaborate and the created programs are difficult to maintain. Therefore, it is recommended that other dynamic programming options for application programs are used first, before using dynamic program development. In ABAP, dynamic programming is facilitated by:
- Data objects, whose size is not statically defined (internal tables, strings)
- Dynamic creation of data types using runtime time creation
- Dynamic creation of data types using
CREATE DATA
- Dynamic token specification - that is, the dynamic specification of operands or entire clauses as data objects in parentheses
- The statements for dynamic program development do not carry out authorization checks or other checks.
These must be programmed separately. The following special function modules can be used for the required
checks in addition to the statement
AUTHORITY-CHECK
:
- The function module RS_ACCESS_PERMISSION performs all authorization checks that are also performed when ABAP Editor is called.
- The function module TR_SYS_PARAMS and other function modules of the function group STR9 determine whether repository objects can be changed.