Ansicht
Dokumentation

ABENCONV_CONSTRUCTOR_ENUM - CONV CONSTRUCTOR ENUM

ABENCONV_CONSTRUCTOR_ENUM - CONV CONSTRUCTOR ENUM

General Data in Customer Master   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

CONV, Konvertierung von Aufzählungstypen

Wenn der Konstruktorausdruck CONV auf Aufzählungstypen angewendet wird, gelten folgende Regeln:

... CONV base_type( enum_dobj ) ...
  • Wenn type ein Aufzählungstyp enum_type ist kann für das Argument dobj angegeben werden:
  • Ein Datenobjekt des gleichen elementaren Typs wie der Basistyp des Aufzählungstyps, wobei Länge und eventuelle Nachkommastellen beliebig sind.

  • Ein an dieser Stelle erlaubter Ausdruck, dessen Ergebnis in den Basistyp des Aufzählungstyps konvertierbar ist.

Falls das Argument einen gültigen Aufzählungswert darstellt, ist das Resultat eine temporäre Aufzählungsvariable mit diesem Wert. Wenn der Wert ungültig ist, kommt es zur Ausnahme CX_SY_CONVERSION_NO_ENUM_VALUE.
... CONV enum_type( dobj ) ...

In allen anderen Fällen gilt auch für CONV die normale Konvertierungsregel, nach der Aufzählungstypen nur in die zeichenartigen Typen c und string konvertiert werden können und dass es ansonsten keine Konvertierung anderer Typen in Aufzählungstypen gibt.

Wenn der Aufzählungstyp eines Aufzählungsobjekts enum_dobj den gleichen Basistyp base_type wie ein beliebiger anderer Aufzählungstyp enum_type hat und der Aufzählungswert in der Aufzählungsvariable auch in enum_type definiert ist, ist gemäß obiger Regeln folgende Schachtelung von Konstruktorausdrücken CONV möglich:

CONV enum_type( CONV base_type( enum_dobj ) )

Für diese Schachtelung kann auch folgende Kurzform verwendet werden:

CONV enum_type( enum_dobj )

Das Ergebnis ist der in Aufzählungswert aus enum_dobj mit dem Datentyp enum_type.

Hinweise

  • Die Verwendung von CONV für Aufzählungstypen ist eine Abweichung von der Regel, dass sich CONV immer gemäß der normalen Konvertierungsregeln bei Zuweisungen verhält.
  • Wenn das Argument ein Aufzählungstyp mit zeichenartigem Basistyp ist und dieser Basistyp als type angegeben ist, gilt die obige spezielle Regel und nicht die allgemeine Konvertierungsregel, d.h. es wird nicht der Name sondern der Aufzählungswert zurück gegeben.
  • Für den Lossless-Operator EXACT gelten entsprechende Regeln.

Beispiel

Die ersten drei Zuweisungen an die Felder text1, text2 und text3 folgen der normalen Konvertierungsregel von Aufzählungstyp nach zeichenartig. Das Ergebnis ist jeweils der Name BLUE.

Eine direkte Zuweisung der Aufzählungskonstanten blue an ein Feld value1 vom Typ i ist nicht möglich. Der Konvertierungsoperator CONV gibt für den Basistyp i aber den tatsächlichen Aufzählungswert 1 zurück.

Eine direkte Zuweisung des Werts 1 vom Typ i an eine Aufzählungsvariable color1 vom Aufzählungstyp color ist ebenfalls nicht möglich. Der Konvertierungsoperator CONV gibt für den Typ color aber einen Aufzählungswert zurück, wenn das Argument den Basistyp i und einen erlaubten Wert hat.

Beispiel

Die Kurzform

CONV animal( peach )

des Konvertierungsoperators CONV wirkt wie

CONV animal( CONV i( peach ) )

Sie erzeugt aus der Aufzählungskonstante peach des Aufzählungstyps fruit den Wert 2, welcher der Aufzählungsvariable animal vom Aufzählungstyp animal zugewiesen kann. Die Ausgabe zeigt den zugehörigen Namen DOG.

Beispiel

Das Beispiel zeigt den Unterschied zwischen normaler Konvertierungsregel und Verwendung des Konvertierungsoperators CONV bei einem zeichenartigen Basistyp:

  • Bei der Zuweisung an result1 gilt die normale Konvertierungsregel und es wird der Name SECOND zugewiesen.
  • Bei der Zuweisung an result2 gilt die spezielle Regel für CONV mit Angabe des Basistyps und es wird der Aufzählungswert aaaaaaaa zugewiesen.

Konvertierungsoperator, Aufzählungstypen






ABAP Short Reference   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6980 Date: 20240523 Time: 172250     sap01-206 ( 81 ms )