Dynamischer Perform

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

Möchte man eine Form-Routine dynamisch aufrufen, dann geht das ebenfalls über Token. Es ist jedoch nicht möglich die Schnittstelle der Form-Routine dynamisch zu füllen. Dies schränkt die Einsatzmöglichkeiten ein. Für die Übergabe von Variablen in der Form-Routine muss man mit globalen Variablen arbeiten, was normalerweise nicht empfehlenswert ist.

Dynamischer Perform

Parameters: p_form type c length 40.

perform (p_form).

Dynamischer Perform in dynamischem Programm

Man kann auch eine Form-Routine dynamisch aufrufen, die in einem anderen Programm liegt.

Parameters: p_form type c lenth 40.

perform (p_form) in program z_beispiel if found.

Dynamischer Perform-Aufruf im Programm RSNAST00

Ein sehr wichtiger dynamischer Aufruf einer Form-Routine in einem anderen Programm ist die Ausführung der Entry-Routine im Druckprogramm, die Im Programm RSNAST00 im Customizing der Nachrichtensteuerung über die Tabelle TNAPR gesteuert wird.

PERFORM (ls_tnapr-ronam) IN PROGRAM (ls_tnapr-pgnam)
    USING    lt_vbeln_vl
    CHANGING lv_returncode
             lv_screen
    IF FOUND.

Ohne den Zusatz IF FOUND würde es beim Versuch des Aufrufs einer nicht vorhanden Form-Routine/Programmnamens zu einem Laufzeitzeit kommen. Durch den Zusatz wird der gescheiterte Aufruf ignoriert. Die Laufzeitumgebung gibt allerdings über den gescheiterten Aufruf keine Rückmeldung. Daher sollte man in der Routine eine globale Variable füllen und die auswerten, um adäquat auf den gescheiterten Aufruf zu reagieren.

Literatur