Esiste un operatore ternario o condizionale disponibile nella sintassi ABAP? Non ne ho trovato uno quindi presumo che la risposta sia negativa, ma c'è un'alternativa che posso usare per chiarire le comuni dichiarazioni "stupide" IF
che uso abitualmente?Operatore ternario (alternative)
Ad esempio, considerare un metodo che registra un messaggio con parametri di messaggio facoltativi. Per decidere se utilizzare il parametro importato o il default devo controllare il valore in questo modo:
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.
Un operatore ternario ridurrebbe ognuna di queste affermazioni di cinque righe a una singola linea come si è visto nel blocco di codice di seguito. Potrebbe persino rendere inutile l'uso di una variabile temporanea quando l'operatore viene utilizzato in linea.
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 .
C'è un modo per approssimare questo tipo di stile di programmazione in ABAP o sto bloccato con il disordine?
Passato a 7.4 Posso confermare che questo funziona perfettamente, anche se l'evidenziazione della sintassi segnerà parti dell'istruzione in rosso non valido. Come nota, questo non è limitato alla dichiarazione di nuove variabili, qualsiasi assegnazione di valore può usare l'istruzione 'COND'. – Lilienthal