Ansicht
Dokumentation
ABENCONV_CONSTRUCTOR_ENUM - CONV CONSTRUCTOR ENUM
General Data in Customer Master TXBHW - Original Tax Base Amount in Local CurrencyDiese Dokumentation steht unter dem Copyright der SAP AG.
CONV, Konvertierung von Aufzählungstypen
Wenn der Konstruktorausdruck CONV auf Aufzählungstypen angewendet wird, gelten folgende Regeln:
- Wenn das Argument dobj ein Aufzählungsobjekt enum_dobj ist und type genau dem Basistyp base_type des Aufzählungstyps entspricht, ist das Resultat der tatsächliche Aufzählungswert des Arguments.
- ... 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.
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 )