CL_ABAP_CONV_X2X_CE - Codepage- und Endian Konvertierung zwischen ext. Formaten
CL_GUI_FRONTEND_SERVICES - Frontend Services rdisp/max_wprun_time - Maximum work process run timeDiese Dokumentation steht unter dem Copyright der SAP AG.
Funktionalität
Instanzen der Klasse CL_ABAP_CONV_X2X_CE ermöglichen die Konvertierung von Textdaten zwischenverschiedenen Zeichensätzen und die Konvertierung von numerischen Daten zwischen verschiedenen Zahlenformaten (Bytereihenfolge).
Die Anwendung der Klasse entspricht der Transformation von Daten aus einem Binäreingabestromin 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 verwendeteZeichenformat, 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 insbesonderezum 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 Wert258 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
CPI1466 during Backup PERFORM Short Reference
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 8174 Date: 20120527 Time: 082909 triton ( 157 ms )






