ABAP - Schlüsselwortdokumentation →  ABAP - Referenz →  Interne Daten verarbeiten →  Zuweisungen → 

CONV - Konvertierungsoperator

Syntax

... CONV type( [let_exp] dobj ) ...

Wirkung

Ein Konstruktorausdruck mit dem Konvertierungsoperator CONV konvertiert das Argument dobj in den mit type angegebenen Datentyp und erzeugt ein entsprechendes Resultat. Für type kann angegeben werden:

In den Klammern muss genau ein unbenanntes Argument dobj angegeben werden, das in den Datentyp type konvertierbar ist, mit folgender Einschränkung: Wenn dobj als Bit-Ausdruck angegeben ist, muss type byteartig oder zeichenartig vom Typ c oder string sein. Bei dobj handelt es sich um eine allgemeine Ausdrucksposition.

Der Inhalt des Resultats wird durch eine Zuweisung des Arguments nach der zugehörigen Konvertierungsregel bestimmt. Für Aufzählungstypen gelten dabei spezielle Regeln. Wenn dobj zum Datentyp type kompatibel ist, ist die Verwendung von CONV nicht notwendig und es kommt in aller Regel zu einer Warnung von der Syntaxprüfung.

Optional kann vor dem Datenobjekt ein LET-Ausdruck let_exp zur Definition lokaler Hilfsfelder aufgeführt werden. Wenn ein LET-Ausdruck aufgeführt ist, kommt es zu keiner Warnung bei einer Konvertierung in kompatible Typen, da LET zur Konstruktion neuer Werte mit Hilfsvariablen verwendet werden kann.

Hinweise

Beispiel

Die Methode CONVERT_TO der Klasse CL_ABAP_CODEPAGE erwartet den Datentyp string für den Eingabeparameter SOURCE. Mit CONV wird ein Textfeld direkt an der Operandenposition in diesen Datentyp konvertiert.

DATA text TYPE c LENGTH 255.

DATA(xstr) = cl_abap_codepage=>convert_to(
  source      = CONV string( text )
  codepage    = `UTF-8` ).

Beispiel

Obwohl die interne Tabelle itab in der Methode meth1 den gleichen Zeilentyp wie der Tabellentyp des Parameters para der Methode meth2 hat, ist sie wegen unterschiedlicher Tabellenart und unterschiedlichem Schlüssel nicht direkt übergebbar. Mit CONV wird itab in den benötigten Tabellentyp konvertiert.

CLASS class DEFINITION.
  PUBLIC SECTION.
    TYPES t_itab TYPE STANDARD TABLE OF i
                 WITH EMPTY KEY.
    METHODS meth1.
  PRIVATE SECTION.
    METHODS meth2 IMPORTING para TYPE t_itab.
ENDCLASS.

CLASS class IMPLEMENTATION.
  METHOD meth1.
    DATA itab TYPE SORTED TABLE OF i
              WITH NON-UNIQUE DEFAULT KEY.
    ...
    meth2( CONV #( itab ) ).
    ...
  ENDMETHOD.
  METHOD meth2.
    ...
  ENDMETHOD.
ENDCLASS.

Beispiel

Die Ergebnisse der beiden Berechnungen sind unterschiedlich. Im ersten Fall ist der Rechentyp f und das Endergebnis wird nach i konvertiert. Im zweiten Fall konvertiert CONV jedes Zwischenergebnis in den Rechentyp i.

DATA int TYPE i.

int = sqrt( 5 ) + sqrt( 6 ).
int = CONV i( sqrt( 5 ) ) + CONV i( sqrt( 6 ) ).

Beispiel

Der erste logische Ausdruck ist nach den Vergleichsregeln für zeichenartige Datentypen falsch. Mit CONV wird der Vergleichstyp des zweiten Vergleichs so beeinflusst, dass der Vergleich wahr ist.

DATA txt TYPE abap_bool.
DATA str TYPE string.

txt = ' ' .
str = ` `.

IF txt = str.
  ...
ENDIF.

IF txt = CONV abap_bool( str ).
  ...
ENDIF.



Weiterlesen
CONV - Typinferenz für Aktualparameter
CONV - Konvertierung von Aufzählungstypen