Conversion Operator | CONV Empfehlung

  • Freitag, 17. Juni 2016 09:31
Artikel bewerten
(1 Stimme)

Wer kennt das Problem nicht. Variable 1 ist nicht typkompatibel zum formalen Parameter Variable 2. Hierfür gibt es nun ab Release 7.40 eine neue elegante Möglichkeit. Die Verwendung des neuen Konvertierungsoperators CONV .

 

Es wird euch mit Sicherheit schon öfters in meinem Sourcecode dieses Keyword  aufgefallen sein. Ich selbst bin ein großer Fan davon, diesen neuen Operator zu verwenden. Dieser Operator verhält sich ähnlich zu den Type Casts in anderen Programmiersprachen.

Syntax

 ... CONV dtype|#( ... ) ...

Anmerkung: dtype ist entweder der explizite Name eines Datentyps oder das Zeichen #.  Mit # kann der Datentyp aus dem Operandenposition hergeleitet werden, wenn die Operanden -Typ statisch bekannt ist. Innerhalb der Klammern können bestimmte Parameter angegeben werden.

Beispiel

Wir haben eine Methode, die einen Parameter eines bestimmten Typs erwartet. Bisher haben wir uns die Methode angeschaut und festgestellt, dass der Parameter vom Typ *** sein muss. Darauf hin haben wir eine neue Variable von dessen Typs deklariert. Hier auch im folgenden Beispiel

Die Methode "convert_to" erwartet einen Parameter vom Typ STRING. Der eigentliche Text String ist aber vom Typ Character Länge 255. Wir können also die Variable text nicht in der Methode verwenden.

Before release 7.40

Das heißt wir definieren eine neue Variable vom Typ String ==> lv_helper.

*== Beispiel für CONV
*-- old way
DATA lv_text TYPE c LENGTH 255.
DATA lv_helper TYPE string.
DATA lv_xstr   TYPE xstring.

Als nächstes führen wir eine Wertzuweisung (Konvertierung c length 255 nach STRING ) durch.
Diese neue Variable wird der convert_to Methode übergeben.

lv_helper = lv_text.
lv_xstr = cl_abap_codepage=>convert_to( source = lv_helper ).

With release 7.40

Seit Release 7.40. können wir uns nun eine Menge an Codezeilen sparen. Sämtliche Funktionalitäten werden in einer Zeile durchgeführt.

 DATA(lv_xstr) = cl_abap_codepage=>convert_to( source = CONV string( lv_text ) ).

oder

 DATA(lv_xstr) = cl_abap_codepage=>convert_to( source = CONV #( lv_text ) ).

Fazit

Für alle die das type casting gewohnt sind, ist diese Neuerung ein Must Have für uns ABAP Entwickler. In der ABAP OO Welt erleichtert es uns die Arbeit um ein vielfaches, da wir uns nun kaum Gedanken über den benötigten Datentypen machen müssen. Eine Funktion die ich als Entwickler nicht mehr missen möchte.

In diesem Sinne

Blogging is a conversation, not a code.

Letzte Änderung am Freitag, 17 Juni 2016 12:16
Kommentare einblenden

Copyright © 2017 ABAP-Workbench.de