2016-12-21 4 views
7

Beim Debuggen von ABAP-Code fand ich ein interessantes Code-Konstrukt.abap mehrere Methodenaufruf

method_name(: Parameter1), Parameter2). 

Soweit ich das sagen kann, ruft die Methode zweimal. Das erste Mal mit dem ersten Parameter und das zweite Mal mit dem zweiten. Leider habe ich keine Ahnung wie dieses Konstrukt aufgerufen wird und so finde ich keine Dokumentation in der SAP Doku oder bei Google.

Ich kann sagen, dass das funktioniert, aber ist das ein offizielles Konstrukt? Funktioniert es mit mehr als zwei Parametern? (Z. B. viermal)

Mit freundlichen Grüßen, Dirk

+2

Ja können Sie es für so viele Parameter verwenden, wie Sie benötigen, und Sie können sogar Parameter vor dem Doppelpunkt setzen, wenn sie für alle Aufrufe den gleichen Wert haben, z. 'Methode (Wert = 'X': Name = 'var1'), Name 'var2').'. Es ist nur eine Kurzschrift, wie in dem Link in @ vwegerts Antwort erläutert. –

Antwort

5

Herzlichen Glückwunsch, Sie haben eine obskure und sicherlich entmutigt die Verwendung eines sogenannten chained statement gefunden. Die Verwendung für Methodenaufrufe wird nicht empfohlen, aber da es einmal erlaubt war, wird SAP nur sehr zögerlich sein, dies wieder zu entfernen ...

+1

Vielen Dank. Leider wird es einige Male in der Komponente verwendet, die ich unterstütze. Aber das hilft Verständnis. –

1

Wenn der ABAP-Compiler einen Doppelpunkt findet, expandiert er ihn zunächst blind ohne Syntaxprüfung (expandierend A: B, C, D. in A B. A C. A D.).

Und nur dann analysiert es die Syntax von jedem von ihnen - um zu sagen, ob es eine Zuweisung, Methodenaufruf oder was auch immer ist. Pavel