adesso orange🍊Stellenangebote:
Software Engineer Trainee · Senior
| (Senior) Cloud Software Engineer BTP
(Senior) Consultant Technologie · Consultant ABAP
Werkstudent Softwareentwicklung · Fiori / UI5 · Consulting · Application Management
ZCL CONV UTILITIES: Unterschied zwischen den Versionen
(25 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 3: | Zeile 3: | ||
Die in Freizeit erstellte Z-Klasse bietet verschiedene Methoden für Konvertierungen an. | Die in Freizeit erstellte Z-Klasse bietet verschiedene Methoden für Konvertierungen an. | ||
== | == Dynamische Konvertierung von Spalten- in Zeilenformat == | ||
Diese statische Methode konvertiert dynamisch ein Datensatz von Spalten- in Zeilenformat. | Diese statische Methode "COL_TO_ROW_FORMAT_DYNAMIC" konvertiert dynamisch ein Datensatz von Spalten- in Zeilenformat. | ||
Dafür hat die Methode die Importparameter "IT_COL_DATA" vom TYPE "STRING_T" und "IV_STRUC_NAME". | Dafür hat die Methode die Importparameter "IT_COL_DATA" vom TYPE "STRING_T" und "IV_STRUC_NAME". | ||
Rückgabeparameter ist RR_"COL_TO_ROW" von TYPE REF TO "DATA". | Rückgabeparameter ist RR_"COL_TO_ROW" von TYPE REF TO "DATA". | ||
Zeile 13: | Zeile 13: | ||
<strong>Erhaltene Referenz zuordnen und Field-Symbol von TYPE STANDARD TABLE anhängen</strong> | <strong>Erhaltene Referenz zuordnen und Field-Symbol von TYPE STANDARD TABLE anhängen</strong> | ||
<syntaxhighlight lang="abap" line start="1"> | |||
DATA(build_struc) = this method(...). | DATA(build_struc) = this method(...). | ||
Zeile 21: | Zeile 22: | ||
ASSIGN build_struc->* TO FIELD-SYMBOL(<structure>). | ASSIGN build_struc->* TO FIELD-SYMBOL(<structure>). | ||
APPEND <structure> TO <tab>. | APPEND <structure> TO <tab>. | ||
</syntaxhighlight> | |||
== | == Konvertierung SAP-Einheit<->ISO-Einheit == | ||
Diese statische Methode "UOM_CONV_BETWEEN_SAP_ISO" konvertiert eine SAP Einheit zu einer ISO-Einheit oder eine ISO-Einheit zu einer SAP Einheit. | |||
Diese statische Methode | |||
Die Struktur, die man dem Importparameter "IS_UOM" übergibt, muss wie folgt gefüllt werden: | Die Struktur, die man dem Importparameter "IS_UOM" übergibt, muss wie folgt gefüllt werden: | ||
Zeile 81: | Zeile 33: | ||
* Von ISO zu SAP muss das Feld is_uom-iso_code und optional das Feld is_uom-unique gefüllt sein und die SAP Einheit wird in rs_uom-sap_code zurückgegeben | * Von ISO zu SAP muss das Feld is_uom-iso_code und optional das Feld is_uom-unique gefüllt sein und die SAP Einheit wird in rs_uom-sap_code zurückgegeben | ||
== | == Konvertierung XML-Datei in interne Tabelle == | ||
Diese statische Methode konvertiert eine XML-Datei, egal als Upload PopUp durch den User oder eine XML auf dem Applikationsserver, in eine interne Tabelle. | Diese statische Methode "XML_TO_ITAB" konvertiert eine XML-Datei, egal als Upload PopUp durch den User oder eine XML auf dem Applikationsserver, in eine interne Tabelle. | ||
Hierfür ist der Importparameter "IV_XML_AS_UPLOAD" auf abap_true zusetzen, sodass sich ein PopUp öffnet oder mit "IV_XML_FROM_APPLSERVER" ein Pfad zu übergeben. | Hierfür ist der Importparameter "IV_XML_AS_UPLOAD" auf abap_true zusetzen, sodass sich ein PopUp öffnet oder mit "IV_XML_FROM_APPLSERVER" ein Pfad zu übergeben. | ||
<strong>Aufruf der Methode</strong> | <strong>Aufruf der Methode</strong> | ||
<syntaxhighlight lang="abap" line start="1"> | |||
zcl_conv_utilities=>xml_to_itab( EXPORTING iv_xml_from_applserver = '/usr/sap/trans/xml.xml' | zcl_conv_utilities=>xml_to_itab( EXPORTING iv_xml_from_applserver = '/usr/sap/trans/xml.xml' | ||
IMPORTING et_itab = DATA(lt_itab) ). | IMPORTING et_itab = DATA(lt_itab) ). | ||
</syntaxhighlight> | |||
<syntaxhighlight lang="abap" line start="1"> | |||
zcl_conv_utilities=>xml_to_itab( EXPORTING iv_xml_as_upload = abap_true | zcl_conv_utilities=>xml_to_itab( EXPORTING iv_xml_as_upload = abap_true | ||
IMPORTING et_itab = DATA(lt_itab) ). | IMPORTING et_itab = DATA(lt_itab) ). | ||
</syntaxhighlight> | |||
== Konvertierung IDoc zu XML-Datei == | |||
Diese statische Methode "IDOC_TO_XML" konvertiert ein IDoc zu einer XML-Datei, die man auf dem Desktop (IV_SAVE_TO_DESKTOP), auf dem Applikationsserver (IV_SAVE_TO_APPLSERVER) speichern oder nur die konvertierten Daten zurück geben kann (RT_IDOCDATA_AS_XML). | |||
Diese statische Methode konvertiert ein IDoc zu einer XML-Datei, die man auf dem Desktop (IV_SAVE_TO_DESKTOP), auf dem Applikationsserver (IV_SAVE_TO_APPLSERVER) speichern oder nur die konvertierten Daten zurück geben kann (RT_IDOCDATA_AS_XML). | |||
Als Importparameter wird die IDoc Nummer benötigt. | Als Importparameter wird die IDoc Nummer benötigt. | ||
Zeile 103: | Zeile 56: | ||
<strong>Aufruf der Methode</strong> | <strong>Aufruf der Methode</strong> | ||
DATA(xml_tab) = zcl_conv_utilities=>idoc_to_xml( | <syntaxhighlight lang="abap" line start="1"> | ||
DATA(xml_tab) = zcl_conv_utilities=>idoc_to_xml(iv_idoc_nu mber = p_idoc iv_save_to_desktop ). | |||
</syntaxhighlight> | |||
DATA(xml_tab) = zcl_conv_utilities=>idoc_to_xml( iv_idoc_number = p_idoc | |||
<syntaxhighlight lang="abap" line start="1"> | |||
DATA(xml_tab) = zcl_conv_utilities=>idoc_to_xml( iv_idoc_number = p_idoc iv_save_to_applserver = '/usr/sap/trans/xml2.xml' ). | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="abap" line start="1"> | |||
DATA(xml_tab) = zcl_conv_utilities=>idoc_to_xml( iv_idoc_number = p_idoc ). | DATA(xml_tab) = zcl_conv_utilities=>idoc_to_xml( iv_idoc_number = p_idoc ). | ||
</syntaxhighlight> |
Aktuelle Version vom 8. August 2021, 22:45 Uhr
Die in Freizeit erstellte Z-Klasse bietet verschiedene Methoden für Konvertierungen an.
Dynamische Konvertierung von Spalten- in Zeilenformat
Diese statische Methode "COL_TO_ROW_FORMAT_DYNAMIC" konvertiert dynamisch ein Datensatz von Spalten- in Zeilenformat. Dafür hat die Methode die Importparameter "IT_COL_DATA" vom TYPE "STRING_T" und "IV_STRUC_NAME". Rückgabeparameter ist RR_"COL_TO_ROW" von TYPE REF TO "DATA".
Es liegt also ein Datensatz in Spaltenform vor z.B. nach Trennung durch ein bestimmten Trennzeichen in eine String-Tabelle. Diese String-Tabelle wird durchlaufen und dynamisch in Zeilenformat von dem Strukturtyp gebracht, der dynmiasch zur Laufzeit erstellt wird anhand des Strukturnamens von Parameter "IV_STRUC_NAME". Anschließend wird diese Zeile als Referenz zurückgegeben.
Erhaltene Referenz zuordnen und Field-Symbol von TYPE STANDARD TABLE anhängen
DATA(build_struc) = this method(...).
DATA(lv_str_name) = 'ZZPO_HEADER'.
CREATE DATA lv_line TYPE TABLE OF (lv_str_name).
ASSIGN lv_line->* TO <tab>.
ASSIGN build_struc->* TO FIELD-SYMBOL(<structure>).
APPEND <structure> TO <tab>.
Konvertierung SAP-Einheit<->ISO-Einheit
Diese statische Methode "UOM_CONV_BETWEEN_SAP_ISO" konvertiert eine SAP Einheit zu einer ISO-Einheit oder eine ISO-Einheit zu einer SAP Einheit.
Die Struktur, die man dem Importparameter "IS_UOM" übergibt, muss wie folgt gefüllt werden:
- Von SAP zu ISO muss das Feld is_uom-sap_code gefüllt sein und die ISO-Einheit wird in rs_uom-iso_code zurückgegeben.
- Von ISO zu SAP muss das Feld is_uom-iso_code und optional das Feld is_uom-unique gefüllt sein und die SAP Einheit wird in rs_uom-sap_code zurückgegeben
Konvertierung XML-Datei in interne Tabelle
Diese statische Methode "XML_TO_ITAB" konvertiert eine XML-Datei, egal als Upload PopUp durch den User oder eine XML auf dem Applikationsserver, in eine interne Tabelle.
Hierfür ist der Importparameter "IV_XML_AS_UPLOAD" auf abap_true zusetzen, sodass sich ein PopUp öffnet oder mit "IV_XML_FROM_APPLSERVER" ein Pfad zu übergeben.
Aufruf der Methode
zcl_conv_utilities=>xml_to_itab( EXPORTING iv_xml_from_applserver = '/usr/sap/trans/xml.xml'
IMPORTING et_itab = DATA(lt_itab) ).
zcl_conv_utilities=>xml_to_itab( EXPORTING iv_xml_as_upload = abap_true
IMPORTING et_itab = DATA(lt_itab) ).
Konvertierung IDoc zu XML-Datei
Diese statische Methode "IDOC_TO_XML" konvertiert ein IDoc zu einer XML-Datei, die man auf dem Desktop (IV_SAVE_TO_DESKTOP), auf dem Applikationsserver (IV_SAVE_TO_APPLSERVER) speichern oder nur die konvertierten Daten zurück geben kann (RT_IDOCDATA_AS_XML).
Als Importparameter wird die IDoc Nummer benötigt.
Aufruf der Methode
DATA(xml_tab) = zcl_conv_utilities=>idoc_to_xml(iv_idoc_nu mber = p_idoc iv_save_to_desktop ).
DATA(xml_tab) = zcl_conv_utilities=>idoc_to_xml( iv_idoc_number = p_idoc iv_save_to_applserver = '/usr/sap/trans/xml2.xml' ).
DATA(xml_tab) = zcl_conv_utilities=>idoc_to_xml( iv_idoc_number = p_idoc ).