Anfang des Inhaltsbereichs

Konvertierungsregeln für elementare Datentypen Dokument im Navigationsbaum lokalisieren

ABAP enthält zehn eingebaute ABAP-Typen. Insgesamt gibt es 100 mögliche Typkonstellationen zwischen diesen elementaren Datentypen. ABAP unterstützt die automatische Typkonvertierung und Längenanpassung für alle diese Typen mit Ausnahme der Typen D (Datum) und T (Zeit), die nicht ineinander konvertierbar sind.

Die folgenden Konvertierungstabellen definieren die Regeln für die Konvertierung bei Zuweisungen zwischen elementaren Datentypen für alle möglichen Kombinationen von Quell- und Zielfeldern.

C  D  F  I  N  P  STRING  T  X  XSTRING

 

Quelltyp Characterfeld

Konvertierungstabelle für Quelltyp C

Ziel

Konvertierung

C

Das Zielfeld wird linksbündig gefüllt. Wenn das Feld zu lang ist, wird es von rechts mit Leerzeichen aufgefüllt. Wenn es zu kurz ist, wird der Inhalt rechts abgeschnitten.

D

Das Characterfeld sollte ein 8-stelliges Datum im Format JJJJMMTT enthalten.

F

Der Inhalt des Quellfelds sollte eine zulässige Darstellung eines Feldes des Typs F sein wie in Literale beschrieben.

N

Nur die Ziffern im Quellfeld werden übertragen. Sie werden nach rechts zusammengeschoben und links mit Nullen aufgefüllt.

I, P

Das Quellfeld muß die Darstellung einer Dezimalzahl enthalten, also eine Folge von Ziffern mit optionalem Vorzeichen, die höchstens einen Dezimalpunkt enthält. Im Quellfeld dürfen auch Leerzeichen stehen. Wenn das Zielfeld zu kurz ist, kann es zu einem Überlauf und damit zu einem Abbruch kommen.

STRING

Der belegte Inhalt des Quellfelds wird übertragen. Dabei werden alle rechtsstehenden Leerzeichen abgeschnitten.

T

Das Characterfeld muß eine sechsstellige Zahl in der Form HHMMSS enthalten.

X

Da das Characterfeld eine hexadezimale Zeichenkette enthalten sollte, sind nur die Zeichen 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F erlaubt. Diese Zeichenkette wird als Hexadezimalzahl gepackt, linksbündig übertragen und rechts mit Nullen aufgefüllt oder abgeschnitten.

XSTRING

Wie bei Zielfeldern vom Typ X, wobei aber das Auffüllen mit Nullen entfällt.

 

Quelltyp Datum

Konvertierungstabelle für Quelltyp D

Ziel

Konvertierung

C

Das Datum wird linksbündig ohne Konvertierung übertragen.

D

Übertragung ohne Konvertierung.

F

Das Datum wird in eine gepackte Zahl konvertiert. Die gepackte Zahl wird anschließend in eine Gleitpunktzahl konvertiert (s. entsprechende Tabellen).

N

Das Datum wird linksbündig ohne Konvertierung übertragen und falls notwendig rechts mit Nullen aufgefüllt.

I, P

Das Datum wird in die Anzahl der Tage seit 01.01.0001 konvertiert.

STRING

Das Datum wird in ein Characterfeld konvertiert und das Characterfeld wird dann in eine Zeichenfolge konvertiert.

T

Nicht unterstützt. Führt zu einer Fehlermeldung während des Syntaxchecks oder zu einem Laufzeitfehler.

X

Das Datum wird in die Anzahl der Tage seit dem 01.01.0001 in hexadezimaler Darstellung konvertiert.

XSTRING

Wie bei Zielfeldern vom Typ X, wobei aber nur die signifikanten Bytes übernommen werden.

 

Quelltyp Gleitpunktzahl

Konvertierungstabelle für Quelltyp F

Ziel

Konvertierung

C

Die Gleitpunktzahl wird in der Form <Mantisse>E<Exponent> aufbereitet und in das Characterfeld übertragen. Der Wert der Mantisse liegt zwischen 1 und 10, es sei denn, die Zahl ist Null. Der Exponent hat immer ein Vorzeichen. Ist das Zielfeld zu kurz, so wird die Mantisse gerundet. Die Länge des Characterfeldes sollte mindestens 6 Bytes sein.

D

Das Quellfeld wird in eine gepackte Zahl konvertiert. Dann wird die gepackte Zahl in ein Datumsfeld konvertiert (s. entsprechende Tabellen).

F

Übertragung ohne Konvertierung.

N

Das Quellfeld wird in eine gepackte Zahl konvertiert. Dann wird die gepackte Zahl in ein numerisches Textfeld konvertiert (s. entsprechende Tabellen).

I, P

Die Gleitpunktzahl wird in in einen ganzzahligen Wert oder Festpunktwert konvertiert und bei Bedarf gerundet.

STRING

Wie bei Zielfeld C, wobei für die Mantisse aber immer die maximale Anzahl von Stellen (Genauigkeit) verwendet wird. Durch unterschiedliche Vorzeichen oder Exponenten können sich aber dennoch unterschiedliche Stringlängen ergeben.

T

Das Quellfeld wird in eine gepackte Zahl konvertiert. Dann wird die gepackte Zahl in ein Zeitfeld konvertiert (s. entsprechende Tabellen).

X

Das Quellfeld wird in eine gepackte Zahl konvertiert. Dann wird die gepackte Zahl in eine hexadezimale Zahl konvertiert (s. entsprechende Tabellen).

XSTRING

Wie Zielfeld X, wobei aber keine führenden Null-Bytes übernommen werden.

 

Quelltyp Integer

Typ I wird immer wie Typ P ohne Dezimalstellen behandelt. Wenn Typ P erwähnt wird, gilt also die gleiche Behandlung für Felder des Typs I.

 

Quelltyp Numerischer Text

Konvertierungstabelle für Quelltyp N

Ziel

Konvertierung

C

Das numerische Feld wird wie ein Characterfeld behandelt. Führende Nullen bleiben erhalten.

D

Das numerische Feld wird in ein Characterfeld konvertiert. Dann wird das Characterfeld in ein Datumsfeld konvertiert (s. entsprechende Tabellen).

F

Das numerische Feld wird in eine gepackte Zahl konvertiert. Dann wird die gepackte Zahl in eine Gleitpunktzahl konvertiert (s. entsprechende Tabellen).

N

Das numerische Feld wird rechtsbündig übertragen, mit Nullen aufgefüllt oder links abgeschnitten.

I, P

Das numerische Feld wird als Zahl interpretiert und rechtsbündig mit positivem Vorzeichen übertragen. Ist das Zielfeld zu kurz, kann es zu einem Abbruch kommen.

STRING

Wie Zielfeld C. Die Länge der Zeichenfolge entspricht der Länge des numerischen Texts.

T

Das numerische Feld wird in ein Characterfeld konvertiert. Dann wird das Characterfeld in ein Zeitfeld konvertiert (s. entsprechende Tabellen).

X

Das numerische Feld wird in eine gepackte Zahl konvertiert. Dann wird die gepackte Zahl in eine hexadezimale Zahl konvertiert (s. entsprechende Tabellen).

XSTRING

Wie Zielfeld X, wobei aber keine führenden Null-Bytes übernommen werden.

 

Quelltyp Gepackte Zahl

Wenn das Programmattribut Festpunktarithmetik für ein Programm gesetzt ist, rundet das System Felder des Typs P entsprechend der Anzahl der Dezimalstellen oder füllt sie mit Nullen auf.

Konvertierungstabelle für Quelltyp P

Ziel

Konvertierung

C

Das gepackte Feld wird rechtsbündig in das Characterfeld übertragen, bei Bedarf mit einem Dezimalpunkt. Die letzte Stelle ist für das Vorzeichen reserviert. Führende Nullen erscheinen als Leerzeichen. Ist das Zielfeld zu kurz, wird das Vorzeichen für positive Zahlen weggelassen. Falls das nicht ausreicht, wird das Feld links abgeschnitten. Das wird durch einen Stern (*) angezeigt. Wenn die führenden Nullen im Characterfeld erscheinen sollen, verwenden Sie die Anweisung UNPACK anstelle von MOVE.

D

Der gepackte Feldwert wird als die Anzahl von Tagen seit 01.01.0001 betrachtet und wird in ein Datum des Formats JJJJMMTT konvertiert.

F

Das gepackte Feld wird als Gleitpunktzahl betrachtet und übertragen.

N

Das gepackte Feld wird ggf. gerundet, entpackt und rechtsbündig übertragen. Das Vorzeichen wird weggelassen. Falls erforderlich, wird das Zielfeld mit links mit Nullen aufgefüllt.

I, P

Ein gepacktes Feld wird nach Typ I konvertiert. Die resultierenden vier Bytes werden rechtsbündig in das Zielffeld gestellt. Ist das Zielfeld zu kurz, kommt es zu einem Überlauf. Ist das Zielfeld länger, wird links mit Hex-Null aufgefüllt.

STRING

Wie Zielfeld C, wobei aber keine führenden Leerzeichen erzeugt werden.

T

Der gepackte Feldwert wird als die Anzahl der Sekunden seit Mitternacht betrachtet und wird in eine Zeit im Format HHMMSS konvertiert.

X

Ein gepacktes Feld wird nach Typ I konvertiert. Die resultierenden vier Bytes werden rechtsbündig und in big-endian-Reihenfolge in das Zielffeld gestellt. Ist das Zielfeld zu kurz, wird links abgeschnitten. Ist das Zielfeld länger als 4, wird links mit Hex-Null aufgefüllt. Negative Zahlen werden durch das Zweierkomplement (= bitweises Komplement + 1) dargestellt.

XSTRING

Wie Zielfeld X, wobei aber keine führenden Null-Bytes erzeugt werden.

 

Quelltyp Zeichenfolge

Konvertierungstabelle für Quelltyp STRING

Ziel

Konvertierung

C

Das Zielfeld wird linksbündig gefüllt. Wenn das Zielfeld länger als die Zeichenfolge ist, wird es von rechts mit Leerzeichen aufgefüllt. Wenn es zu kurz ist, wird der Inhalt rechts abgeschnitten.

D

Die Zeichenfolge sollte ein 8-stelliges Datum im Format JJJJMMTT enthalten.

F

Der Inhalt der Zeichenfolge sollte eine zulässige Darstellung eines Feldes des Typs F sein wie in Literale beschrieben.

N

Nur die Ziffern in der Zeichenolge werden übertragen. Sie werden nach rechts zusammengeschoben und links mit Nullen aufgefüllt. Ist das Zielfeld zu kurz, wird links abgeschnitten.

I, P

Die Zeichenfolge muß die Darstellung einer Dezimalzahl enthalten, also eine Folge von Ziffern mit optionalem Vorzeichen, die höchstens einen Dezimalpunkt enthält. Im Quellfeld dürfen auch Leerzeichen stehen. Wenn das Zielfeld zu kurz ist, kann es zu einem Überlauf und damit zu einem Abbruch kommen.

STRING

Die Quellzeichenfolge wird unkonvertiert in die Zielzeichenfolge übertragen.

T

Die Zeichenfolge muß eine sechsstellige Zahl in der Form HHMMSS enthalten.

X

Das Quellfeld sollte eine hexadezimale Zeichenfolge sein, dien nur die Zeichen 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F enthält. Diese Zeichenfolge wird als Hexadezimalzahl gepackt, linksbündig übertragen und rechts mit Nullen aufgefüllt oder abgeschnitten.

XSTRING

Wie Zielfeld X, wobei das Auffüllen mit Nullen entfällt.

 

Quelltyp Zeit

Konvertierungstabelle für Quelltyp T

Ziel

Konvertierung

C

Der Inhalt wird linksbündig ohne Konvertierung übertragen.

D

Nicht unterstützt. Führt zu einer Fehlermeldung beim Syntaxcheck oder einem Laufzeitfehler.

F

Die Zeit wird in eine gepackte Zahl konvertiert. Dann wird die gepackte Zahl in eine Gleitpunktzahl konvertiert (s. entsprechende Tabellen).

N

Das Datum wird in ein Characterfeld konvertiert. Dann wird das Characterfeld in ein numerisches Textfeld konvertiert (s. entsprechende Tabellen).

I, P

Das Datum wird in die Anzahl der Sekunden seit Mitternacht konvertiert.

STRING

Die Zeit wird in ein Characterfeld konvertiert und das Characterfeld wird dann in eine Zeichenfolge konvertiert.

T

Das Datum wird linksbündig ohne Konvertierung übertragen und falls notwendig rechts mit Nullen aufgefüllt.

X

Das Datum wird in die Anzahl der Sekunden seit Mitternacht in hexadezimaler Darstellung konvertiert.

XSTRING

Wie bei Zielfeldern vom Typ X, wobei aber nur die signifikanten Bytes übernommen werden.

 

Quelltyp Hexadezimalfeld

Konvertierungstabelle für Quelltyp X

Ziel

Konvertierung

C

Der Wert im hexadezimalen Feld wird in eine hexadezimale Zeichenkette konvertiert, linksbündig ins Zielfeld übertragen und mit "0" aufgefüllt.

D

Der Wert des Quellfeldes wird als die Anzahl von Tagen seit 01.01.0001 betrachtet und wird in ein Datum des Formats YYYYMMDD konvertiert.

F

Das Quellfeld wird in eine gepackte Zahl konvertiert. Dann wird die gepackte Zahl in eine Gleitpunktzahl konvertiert (s. entsprechende Tabellen).

N

Das Quellfeld wird in eine gepackte Zahl konvertiert. Dann wird die gepackte Zahl in ein numerisches Textfeld konvertiert (s. entsprechende Tabellen).

I, P

Der Wert des Quellfeldes wird als hexadezimale Zahl betrachtet. Er wird in eine gepackte Dezimalzahl konvertiert und dann rechtsbündig in das Zielfeld übertragen. Wenn das hexadezimale Feld länger ist als 4 Bytes, werden nur die letzten 4 Bytes konvertiert. Ist es zu kurz, kann es zu einem Laufzeitfehler kommen.

STRING

Wie Zielfeld C, wobei das Auffüllen mit Nullen entfällt. Die Länge der Zeichenfolge entspricht der doppelten Länge des Hexadezimalfelds.

T

Der Wert des Quellfeldes wird als die Anzahl der Sekunden seit Mitternacht betrachtet und wird in eine Zeit im Format HHMMSS konvertiert.

X

Der Wert wird linksbündig übertragen und rechts mit X'00' aufgefüllt, falls erforderlich.

XSTRING

Das Hexadezimalfeld wird in seiner vollen Länge übertragen. Rechtsstehende Nullen werden nicht abgeschnitten.

 

Quelltyp Bytefolge

Konvertierungstabelle für Quelltyp XSTRING

Ziel

Konvertierung

C

Der Wert in der Bytefolge wird in eine hexadezimale Zeichenkette konvertiert, linksbündig ins Zielfeld übertragen und mit "0" aufgefüllt.

D

Der Wert der Bytefolge wird als die Anzahl von Tagen seit 01.01.0001 betrachtet und wird in ein Datum des Formats YYYYMMDD konvertiert.

F

Der Inhalt der Bytefolge wird in eine gepackte Zahl konvertiert. Dann wird die gepackte Zahl in eine Gleitpunktzahl konvertiert (s. entsprechende Tabellen).

N

Der Inhalt der Byterfolge wird in eine gepackte Zahl konvertiert. Dann wird die gepackte Zahl in ein numerisches Textfeld konvertiert (s. entsprechende Tabellen).

I, P

Der Inhalt der Bytefolge wird als hexadezimale Zahl betrachtet. Er wird in eine gepackte Dezimalzahl konvertiert und dann rechtsbündig in das Zielfeld übertragen. Wenn die Byterfolge länger ist als 4 Bytes, werden nur die letzten 4 Bytes konvertiert. Ist die Bytefolge zu kurz, kann es zu einem Laufzeitfehler kommen.

STRING

Wie Zielfeld C, wobei das Auffüllen mit Nullen entfällt. Die Länge der Zeichenfolge entspricht der doppelten Länge der Bytefolge.

T

Der Wert der Bytefolge wird als die Anzahl der Sekunden seit Mitternacht betrachtet und wird in eine Zeit im Format HHMMSS konvertiert.

X

Die Bytefolge wird linksbündig übertragen und rechts mit X'00' aufgefüllt, falls erforderlich.

XSTRING

Die Quellbytefolge wird unkonvertiert in die Zielbytefolge übertragen.

Ende des Inhaltsbereichs