Gibt es in der ABAP-Syntax einen ternären oder bedingten Operator? Ich habe keinen gefunden, nehme also an, dass die Antwort nein ist, aber gibt es dann eine Alternative, die ich verwenden kann, um die üblichen "dummen" Aussagen zu klären, die ich routinemäßig verwende?Ternärer Operator (Alternativen)
Betrachten Sie zum Beispiel eine Methode, die eine Nachricht mit optionalen Nachrichtenparametern protokolliert. Um zu entscheiden, zwischen den importierten Parameter verwenden oder dem Standard Ich habe den Wert zu überprüfen, wie so:
IF iv_class IS INITIAL.
lv_message_class = 'DEFAULT'.
ELSE.
lv_message_class = iv_class.
ENDIF.
IF iv_number IS INITIAL.
lv_message_number = '000'.
ELSE.
lv_message_number = iv_number.
ENDIF.
IF iv_type IS INITIAL.
lv_message_type = 'E'.
ELSE.
lv_message_type = iv_type.
ENDIF.
Ternäre Operator jeden dieser fünf-line-Anweisungen zu einer einzigen Zeile reduzieren würde, wie im folgenden Code-Block zu sehen. Es könnte sogar die Verwendung einer temporären Variablen unnötig machen, wenn der Bediener in-line verwendet wird.
lv_message_class = iv_class IS INITIAL ? 'DEFAULT' : iv_class.
lv_message_number = iv_number IS INITIAL ? '000' : iv_number .
lv_message_type = iv_type IS INITIAL ? 'E' : iv_type .
Gibt es eine Möglichkeit, diese Art von Programmierstil in ABAP anzunähern oder bin ich mit dem Durcheinander fest?
Nachdem ich auf 7.4 verschoben habe, kann ich bestätigen, dass dies perfekt funktioniert, obwohl die Syntax-Hervorhebung Teile der Anweisung in ungültigem Rot markiert. Beachten Sie, dass dies nicht auf die Deklaration neuer Variablen beschränkt ist. Jede Wertzuweisung kann die Anweisung 'COND' verwenden. – Lilienthal