ZCL CONV UTILITIES: Unterschied zwischen den Versionen

Aus SAP Wiki ツ
Zeile 2: Zeile 2:


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.
Aktuellste Version: 20210724


== COL_TO_ROW_FORMAT_DYNAMIC ==
== COL_TO_ROW_FORMAT_DYNAMIC ==

Version vom 24. Juli 2021, 16:42 Uhr


Die in Freizeit erstellte Z-Klasse bietet verschiedene Methoden für Konvertierungen an. Aktuellste Version: 20210724

COL_TO_ROW_FORMAT_DYNAMIC

Diese statische Methode 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>.

YYYYMMDD_TO_DDMMYYYY

Die Methode wurde aufgrund der Möglichkeit mit StringTemplates und Formatoption DATE entfernt

DDMMYYYY_TO_YYYYMMDD

Die Methode wurde aufgrund der Möglichkeit mit StringTemplates und Formatoption DATE entfernt.

NUMBER_CONV_BETWEEN_INP_OUT

Die Methode wurde aufgrund der Möglichkeit mit StringTemplates und Formatoption ALPHA entfernt.

UOM_CONV_BETWEEN_SAP_ISO

Diese statische Methode 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

XML_TO_ITAB

Diese statische Methode 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)  ).

IDOC_TO_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.

Aufruf der Methode

DATA(xml_tab) = zcl_conv_utilities=>idoc_to_xml( iv_idoc_number = 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 ).