GENERATE - Generate a program

Note

This statement is for internal use only.

Incompatible changes or further developments may occur at any time without warning or notice.


Variants:




1. GENERATE REPORT prog.

2. GENERATE SUBROUTINE POOL itab NAME name.

Variant 1

GENERATE REPORT prog.


Extras:


1. ... MESSAGE f1

2. ... INCLUDE f2

3. ... LINE f3

4. ... WORD f4

5. ... OFFSET f5

6. ... TRACE-FILE f6

7. ... DIRECTORY ENTRY f7

8. ... WITHOUT SELECTION-SCREEN

9. ... MESSAGE-ID f8

10.... SHORTDUMP-ID f9

11.... WITH PRECOMPILED HEADERS

Effect

Generates the program specified in the field prog. If the program is a report (i.e. a type 1 program), the selection screen is generated automatically.

The Return Code is set as follows:

SY-SUBRC = 0:
Program generated successfully.
SY-SUBRC <> 0:
Unable to generate program.
SY-SUBRC = 4:
Syntax error.
SY-SUBRC = 8:
Generation error.
SY-SUBRC = 12:
Error when generating selection screen.

Addition 1

... MESSAGE f1

Effect

When a syntax error occurs, the error message is stored in this field.

Addition 2

... INCLUDE f2

Effect

When a syntax error occurs, the name of the include program concerned is stored in this field.

Addition 3

... LINE f3

Effect

When a syntax error occurs, the number of the incorrect line is stored in this field.

Addition 4

... WORD f4

Effect

When a syntax error occurs, the incorrect word is stored in this field.

Addition 5

... OFFSET f5

Effect

When a syntax error occurs, the position of the incorrect word in the incorrect line is stored in this field.

Addition 6

... TRACE-FILE f6

Effect

Trace output is stored in this file. This addition automatically activates the trace mode.

Addition 7

... DIRECTORY ENTRY f7

Effect

The program attributes required for checking are taken from the field f7. This field must correspond to the structure of the table TRDIR.

Addition 8

... WITHOUT SELECTION-SCREEN

Effect

Does not generate the selection screen.

Addition 9

... MESSAGE-ID f8

Effect

If a syntax error occurs, writes the key of the appropriate error messag to the field f8. This key has the same structure as the key of the TRMSG table.

Addition 10

... SHORTDUMP-ID f9

Effect

If a short dump occurs, writes the key of the appropriate short dump to the field f9. This key has a maximum length of 30 characters.

Addition 11

... WITH PRECOMPILED HEADERS

This addition allows you to regenerate precompiled headers during the generation of the ABAP program prog. Precompiled headers are used to increase the translation speed of the ABAP compiler by buffering the declaration data of global classes, interfaces and type groups in formatted form for the ABAP compiler.

Note

If you use this addition, you must ensure that the application performs a COMMIT WORK or ROLLBACK WORK within a short period of time. This ensures that the database locks set when the precompiled headers are regenerated are held for a short time only and thus do not block the generation of other ABAP programs.

Variant 2

GENERATE SUBROUTINE POOL itab NAME name.


Extras:

1. ... MESSAGE f1
2. ... INCLUDE f2
3. ... LINE f3
4. ... WORD f4
5. ... OFFSET f5
6. ... TRACE-FILE f6
7. ... MESSAGE-ID f8
8. ... SHORTDUMP-ID f9

Effect

Generates a temporary subroutine pool. The source code for the subroutine pool to be generated is passed on in the internal table itab. The internal table must have a character-type line type. The line type can be of the type STRING. The field name contains the name under which FORM routines can be addressed in the temporary subroutine pool via external PERFORM.

The additions have the same meaning as with GENERATE REPORT. Only the addition DIRECTORY-ENTRY is not supported with GENERATE SUBROUTINE POOL because temporary subroutine pools are always generated as type S programs and the arithmetic flag is taken over from the generating program.



The Return Code is set as follows:

SY-SUBRC = 0:
Generation successful.
SY-SUBRC <> 0:
Generation unsuccessful.
SY-SUBRC = 4:
Syntax error.
SY-SUBRC = 8:
Generation error.

In contrast to GENERATE REPORT, the source code is passed on in an internal table with GENERATE SUBROUTINE POOL, not read from the database. The load version generated is not written to the database but held in main memory only.

Notes

  1. Temporary subroutine pools belong to the runtime context of the generating program, i.e. to the roll area of the internal mode from which the generation is performed. They may therefore be addressed only within this context, i.e. the generated FORM routines can only be called from within the generating mode.


  2. Up to 36 temporary subroutine pools can currently be managed for each roll area.


  3. You must carry out the necessary authorization and system checks before calling GENERATE SUBROUTINE POOL. See Notes on Security


Exceptions

Catchable Exceptions

CX_SY_GENERATE_SUBPOOL_FULL

CX_SY_GEN_SOURCE_TOO_WIDE

In some cases, the syntax rules that apply to Unicode programs are different than those for non-Unicode programs. See Unicode Changes

Related

SYNTAX-CHECK, INSERT REPORT

Additional help

Creating and Starting Temporary Programs