Ansicht
Dokumentation
CL_ABAP_CONV_X2X_CE - Codepage- und Endian Konvertierung zwischen ext. Formaten
Vendor Master (General Section) RFUMSV00 - Advance Return for Tax on Sales/PurchasesDiese Dokumentation steht unter dem Copyright der SAP AG.
Funktionalität
Instanzen der Klasse CL_ABAP_CONV_X2X_CE ermöglichen die Konvertierung von Textdaten zwischen verschiedenen Zeichensätzen und die Konvertierung von numerischen Daten zwischen verschiedenen Zahlenformaten (Bytereihenfolge).
Die Anwendung der Klasse entspricht der Transformation von Daten aus einem Binäreingabestrom
in einen Binärausgabestrom: Die Datenobjekte werden sequentiell aus einem Eingabepuffer gelesen und in einen Ausgabepuffer geschrieben.
I.a. werden die Methoden der Klasse wie folgt verwendet:
- Eine Konvertiererinstanz wird angelegt. Als Parameter können angegeben werden: Der Eingabepuffer (d.h. der Binärstring, welcher die zu lesenden Daten enthält), das im Eingabepuffer verwendete Zeichenformat, die im Eingabepuffer verwendete Bytereihenfolge, das im Ausgabepuffer zu verwendende Zeichenformat, die im Ausgabepuffer zu verwendende Bytereihenfolge, etc.
- CONVERT_C, CONVERT_...
- Daten werden konvertiert. Aufeinanderfolgende Aufrufe dieser Methode ermöglichen das sequentielle Lesen von Daten aus dem Eingabepuffer und Anfügen an das Ende des Ausgabepuffers.
- Holen des Ausgabepuffers zur weiteren Verarbeitung. (Schreiben in eine Datei, Versenden per RFC, o.ä.)
- Einzelne Attribute der Konvertiererinstanz können neu gesetzt werden. (Diese Methode ist insbesondere zum Aufsetzen auf einem neuen Eingabepuffer und zum Löschen des Ausgabepuffers unter Beibehaltung der übrigen Attribute gedacht.)
Beziehungen
- Konvertierung von Binärdaten in ABAP Datenobjekte.
- Konvertierung von ABAP Datenobjekten in ein Binärformat.
- Diverse Attribute und Methoden zu Zeichensätzen und Bytereihenfolge.
Beispiel
Im folgenden Beispiel werden Texte von UTF-8 in die Codepage 1100 (Latin-1) und Zahlen aus der little-endian Darstellung in die big-endian Darstellung konvertiert.
DATA:
in_buffer TYPE XSTRING,
out_buffer TYPE XSTRING,
conv TYPE REF TO cl_abap_conv_x2x_ce.
in_buffer = '414220C3B602010000'.
conv = cl_abap_conv_x2x_ce=>create(
in_encoding = 'UTF-8'
in_endian = 'L'
out_encoding = '1100'
out_endian = 'B'
input = in_buffer
).
CALL METHOD conv->convert_c( n = 5 ).
CALL METHOD conv->convert_i( ).
out_buffer = conv->get_out_buffer( ).
Der Inhalt der Variablen in_buffer setzt sich zusammen aus 5 Bytes (hexadezimal "414220C3B6"), die 4 UTF-8 Zeichen repräsentieren (A, B, SPACE, o-Umlaut), und 4 Bytes (hexadezimal "02010000"), die den Wert 258 im little-endian Format repräsentieren. Diese Daten werden konvertiert und die Variable out_buffer enthält nun den Hexadezimalstring "414220F600000102". Dieser setzt sich zusammen aus:
- 4 Bytes (hexadezimal "414220F6"), die die obigen 4 Zeichen in Codepage 1100 (ISO-8859-1) repräsentieren. Man beachte, daß sich die Längenangabe n = 5 auf die Anzahl der zu konvertierenden elementaren Zeichen bezieht. Bei Multi-Byte Codepages wie UTF-8 bedeutet dies, daß das Multi-Byte Zeichen "C3B6" in der Länge 2 gezählt wird.
- 4 Bytes (hexadezimal "00000102"), welche den Wert 258 im big-endian Format repräsentieren.
Wenn die gewünschte Bytereihenfolge in dem von TRANSLATE ... NUMBER FORMAT erwarteten Format (als N(4) Wert) vorliegt, kann wie folgt vorgegangen werden:
TYPE-POOLS: ABAP.
CLASS cl_abap_char_utilities DEFINITION LOAD.
DATA:
in_number_format(4) TYPE N VALUE '0101',
out_number_format(4) TYPE N VALUE '0000'.
DATA:
in_endian TYPE ABAP_ENDIAN,
out_endian TYPE ABAP_ENDIAN,
conv TYPE REF TO cl_abap_conv_x2x_ce..
in_endian = cl_abap_char_utilities=>number_format_to_endian(
in_number_format
).
out_endian = cl_abap_char_utilities=>number_format_to_endian(
out_number_format
).
conv = cl_abap_conv_x2x_ce=>create(
in_encoding = 'UTF-8'
in_endian = in_endian
out_encoding = '1100'
out_endian = out_endian
input = in_buffer
).
Hinweise
Details sind in der Dokumentation der jeweiligen Methoden erklärt.
Weiterführende Informationen
ROGBILLS - Synchronize billing plans rdisp/max_wprun_time - Maximum work process run time
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 8748 Date: 20240329 Time: 030123 sap01-206 ( 78 ms )