Anfang des InhaltsbereichsWeitere Informationen zur Programmoperation Dokument im Navigationsbaum lokalisieren

Normalerweise wird ein Entscheidungsbaum durch Entscheidungsoperationen so detailliert aufgebaut, daß am Ende jeder Entscheidungskette ein bestimmter Rückgabewert zurückgeliefert werden kann.

Es kann jedoch vorkommen, daß ein Entscheidungsbaum eine solche Größe annimmt, daß die Übersichtlichkeit und damit die Wartbarkeit nicht mehr gewährleistet ist.

Manchmal kann durch das Lesen weiterer Informationen aus diversen Tabellen die Bestimmung des Rückgabewertes wesentlich vereinfacht oder erst realisiert werden.

Wenn diese Faktoren vorliegen, bietet es sich an, den Rückgabewert in einem ABAP-Programm zu ermitteln. Sie übergeben diesem Programm die für das Merkmal zulässigen Felder und Inhalte.

Die Programmoperation müssen Sie in der Tabellenpflege folgendermaßen angeben:

&<Merkmal>(<Programm>),

Beispiel

&ABKRS(ZPUZMK00),

 

In der Baumpflege legen Sie einen Knoten vom Typ Programmoperation an.

Ein Programm, das von einem Merkmal aufgerufen werden soll, muß ein Unterprogramm enthalten, das den Rückgabewert bestimmt. Namen und Parameter unterscheiden sich, je nachdem, ob das Merkmal einen Rückgabewert oder eine Rückgabetabelle zurückliefert.

Bei Feldrückgabe muß das Unterprogramm EXT_CALL_F heißen, bei Tabellenrückgabe EXT_CALL_T .

Programmaufbau 1 Feldrückgabe:

REPORT reportname.

...

FORM EXT_CALL_F USING NAMEN BACK STATUS struc STRUCTURE struc.

...

ENDFORM.

Programmaufbau 2 Tabellenrückgabe:

REPORT reportname.

...

FORM EXT_CALL_T TABLES BACK_TAB

USING NAMEN STATUS struc STRUCTURE struc.

...

ENDFORM.

Der Parameter NAMEN enthält den Namen des Merkmals. Sie können ihn - falls die gleiche Routine von mehreren Merkmalen aufgerufen wird zur Fallunterscheidung verwenden.

Der Parameter BACK soll in der Routine mit dem Rückgabewert gefüllt werden.

Der Tabellen-Parameter BACK_TAB soll in der Routine mit den gewünschten Rückgabewerten gefüllt werden.

Sie können den Parameter STATUS setzen.

Erlaubte Werte:

Die Rückgabeparameter BACK bzw. BACK_TAB sind gefüllt. Dies ist der Defaultwert.

STATUS = 2

Dies bedeutet, daß statt der Rückgabe von Werten ein Fehler ausgelöst werden soll. Dies ist identisch zu dem Verhalten der Operation ERROR im Entscheidungsbaum.

Der Parameter struc muß in Länge und Aufbau mit der Merkmalstruktur identisch sein.

 

Beispiel

Feldübergabe:

FORM EXT_CALL_F USING NAMEN BACK STATUS PME01 STRUCTURE PME01.

IF PMEO1-WERKS EQ '0001'.

BACK = 'ABCD'

ELSE.

BACK = 'EFGH'.

ENDIF.

ENDFORM.

 

Tabellenübergabe:

FORM EXT_CALL_T TABLES BACK_TAB

USING NAMEN STATUS PME01 STRUCTURE PME01.

IF PME01-WERKS EQ '0001'.

STATUS = 2

ELSE.

BACK_TAB = 'ABCD'.

APPEND BACK_TAB.

BACK_TAB = 'EFGH'.

APPEND BACK_TAB.

ENDIF.

ENDFORM.

Funktionsumfang

Die Programmoperation kann im Entscheidungsbaum mit allen anderen Operationen kombiniert werden.

Beispiel

 

D

BUKRS

0001

 

&ABKRS=D5,

****

 

&ABKRS(ZPUZMK00),

 

Ende des Inhaltsbereichs