Ansicht
Dokumentation

ABENCONVERSION_RULES - CONVERSION RULES

ABENCONVERSION_RULES - CONVERSION RULES

CL_GUI_FRONTEND_SERVICES - Frontend Services   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Zuweisungs- und Konvertierungsregeln

Für das Zuweisen des Werts aus einem Quellobjekt (source) zu einem Zielobjekt (destination) sind hinsichtlich des Datentyps drei Fälle zu unterscheiden:

  1. source und destination sind kompatibel, d.h., alle technischen Typeigenschaften stimmen überein. Der Inhalt wird ohne Konvertierung von source nach destination übertragen. Für flache Datenobjekte und zusammenhängende zeichen- oder byteartige Bereiche von Strukturen wird eine auf das Byte genaue Kopie des Quellobjekts angelegt. Bei tiefen Datenobjekten wird im Zielobjekt eine Referenz erzeugt, deren tatsächlicher byteartiger Inhalt nach außen unsichtbar ist. Bei der Zuweisung gesamter Strukturen ist das Verhalten bezüglich der Ausrichtungslücken undefiniert: Der binäre Inhalt einer Ausrichtungslücke der Zielstruktur kann entweder aus der Quellstruktur kopiert werden oder den ursprünglichen Wert behalten.
  2. source und destination sind nicht kompatibel, jedoch konvertibel. Der Inhalt von source wird nach den Konvertierungsregeln konvertiert und dann nach destination übertragen. Zwei Datentypen sind konvertibel, wenn eine Konvertierungsregel für sie existiert. Es kommt zu einer Ausnahme, wenn der Inhalt von source nicht gemäß der Konvertierungsregel behandelt werden kann. Nach einer Ausnahme hängt der Inhalt von destination von der Art des Datentyps ab. Eine Zuweisung, bei der eine Konvertierung erfolgt, ist immer langsamer als eine Zuweisung ohne Konvertierung.
  3. Sind die Datenobjekte weder kompatibel noch konvertibel, kann keine Zuweisung erfolgen. Wird dieser Zustand bereits bei der Syntaxprüfung erkannt, wird ein Syntaxfehler angezeigt, ansonsten kommt es bei der Ausführung des Programms zu einer Ausnahme.

Die folgenden Abschnitte beschreiben die Konvertierungsregeln. Es gibt Konvertierungsregeln für

Die speziellen Zuweisungsregeln für Referenzvariablen sind in einem eigenen Abschnitt aufgeführt.

Die hier gezeigten Konvertierungsregeln gelten in der Regel bei allen Zuweisungen und allen Anweisungen, bei denen die Inhalte von Datenobjekten geändert werden. Ausnahmen von der Regel sind bei den einzelnen Anweisungen beschrieben.

Mit dem Konvertierungsoperator CONV kann an vielen Operandenpositionen eine Konvertierung eines Quellwerts in einen explizit angegebenen Zieldatentyp gemäß der hier vorgestellten Regeln durchgeführt werden. Für spezielle Konvertierungen von Zeichensätzen und Zahlenformaten stehen Systemklassen zur Verfügung.

Hinweise

  • An den Operandenpositionen vieler Anweisungen finden intern Zuweisungen nach den Zuweisungsregeln statt. Es hängt von den Operanden und der Operandenposition ab, ob Ausnahmen, die bei einer Zuweisung auftreten, behandelt werden können oder nicht. Beispiele sind:
  • Bei der Verwendung funktionaler Methodenaufrufe an Operandenpositionen sind Ausnahmen, die bei der direkten Verwendung von Datenobjekten behandelt werden können, nicht behandelbar sondern führen direkt zu Laufzeitfehlern.

  • Bei Vergleichen gelten teilweise andere Regeln als bei Zuweisungen. Ausnahmen, die bei Zuweisungen behandelt werden können, sind bei Vergleichen nicht explizit behandelbar, sondern werden entweder implizit behandelt oder führen zu Laufzeitfehlern.

  • Die Verwendung von Ausdrücken an Operandenpositionen kann unbehandelbare Ausnahmen teilweise behandelbar machen.

  • Mit dem verlustfreien Operator EXACT kann bewirkt werden, dass vor der Ausführung einer Konvertierung Überprüfungen durchgeführt werden, die dafür sorgen, dass nur gültige Werte zugewiesen werden und dass es bei der Zuweisung zu keinem Werteverlust kommt.
  • Bei Zuweisungen zwischen kompatiblen Datenobjekten finden in der Regel keine Überprüfungen statt. Wenn ein Datenobjekt bereits einen ungültigen Wert enthält, beispielsweise ein ungültiges Datum oder eine ungültige Zeit in einem Datums- oder Zeitfeld, wird dieser bei einer Zuweisung an ein kompatibles Datenobjekt genauso wie ein gültiger Wert übertragen.

Unerwartete Konvertierungsergebnisse vermeiden






SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6945 Date: 20240523 Time: 170411     sap01-206 ( 140 ms )