Inline Deklarationen von Variablen unter ABAP

Nach meinem Besuch des DSAG Treffens AK NetWeaver Development in Walldorf am 29.11. habe ich wieder ein paar nette Features mitnehmen dürfen. Eines der besten davon sind „inline Deklarationen“ im ABAP Code. Wer sich im Moment nichts darunter vorstellen kann, dem hilft vielleicht folgendes Beispiel.

Wer kennt es nicht? Innerhalb von TRY-CATCH-ENDTRY Konstrukten will man die geworfene Exception fangen und z.B. den Text auswerten. Die bisherige Schreibweise  (< ABAP 7.4) dafür ist wie folgt.

DATA:
  lo_exception TYPE REF TO cx_root.

TRY.
    me->raise_exception( ).

  CATCH cx_root INTO lo_exception.
    me->process_exception( lo_exception ).
    RETURN.

ENDTRY.

Ab ABAP 7.4 (Beta-Version kommt noch im Dezember! Ramp-Up dann Q1/2013) kann das Exception-Handling dann wie folgt aussehen.

TRY.
    me->raise_exception( ).

  CATCH cx_root INTO DATA(lo_exception).
    me->process_exception( lo_exception ).
    RETURN.

ENDTRY.

Ist doch deutlich knackiger als obiger Code, oder? 🙂

Ähnlich funktioniert auch die Definition von Variablen an einer beliebigen Stelle im Coding.

DATA(lf_test) = 'Wert'.

Vorsicht ist allerdings beim Gültigkeitsbereich der Variablen geboten. Eine z.B. innerhalb einer Schleife deklarierten Variable hat auch ausserhalb der Schleife Gültigkeit! Dieser Tatsache ist sich die SAP bewusst, will aber (anscheinend) an der Situation nichts ändern. Vielleicht ja dann in ABAP 7.5? 😉