Donnerstag, 25. Februar 2016

Select @data - Inline-Deklarationen für Open-SQL Statements

Ein weiteres schönes Beispiel, das Inline-Deklarationen nutzt, ist die Verwendung direkt in einem Select statement:

select single *
  from lagp
  into @data(ls_lagp)
  where lgnum = @iv_lgnum.

Wird das "@" in der where-Bedingung weggelassen kommt es übrigens zur unschönen Meldung:

Wenn neue OpenSQL Syntax verwendet wird, muss diese auch durchgängig verwendet werden. Dazu gehört das Escaping der Hostvariablen mittels @.

Mittwoch, 24. Februar 2016

Zeichenkettentemplates - Ein Leerzeichen zu viel

Zeichekettentemplates sind eine schöne Sache, die Lektüre der Doku ist sehr zu empfehlen.

Was aber tun, wenn sie nicht so wollen, wie der Entwickler? Obwohl Align = Left und der Parameter "Width" wie in der Doku angegeben auch verwendet wurden, ist im Ergebnis immer ein Leerzeichen zu viel.

Nachfolgend des Rätsels Lösung.
Achtung: An diese Stellen gehören KEINE Leerzeichen!

lv_brgew |{ lv_brgew NUMBER USER  DECIMALS 3  }|.



 

Samstag, 20. Februar 2016

Feldsymbole "unterwegs" erzeugen

Hallo und herzlich willkommen beim schönen ABAP.

Zum Einstieg ein kleines Schmankerl, das einem hin und wieder eine kostbare Zeile sparen kann. Und vor allem ein hin- und herspringen im Quelltext, um zum Datendeklarationsteil zu gelangen. Los geht's!

Ein Feldsymbol kann bekanntlich z.B. folgendermaßen erzeugt und benutzt werden:

field-symobols: <f1> like line of table.
...
loop at table assigning <f1>.
...
endloop.


Einen Tick eleganter geht es seit ABAP 740 wie folgt:
loop at table assigning field-symbol(<f1>).
...
endloop.



Das Schlüsselwort lautet "Inline-Deklaration" und wird uns sicher noch öfter weiterhelfen. Bis dahin viel Spaß mit diesem neuen Feature!