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
Zeile 28: | Zeile 28: | ||
== DDMMYYYY_TO_YYYYMMDD == | == DDMMYYYY_TO_YYYYMMDD == | ||
Die Methode wurde entfernt aufgrund der Möglichkeit mit [[String_Templates#Formatoption_mit_DATE|StringTemplates und Formatoption DATE]] | |||
== NUMBER_CONV_BETWEEN_INP_OUT == | == NUMBER_CONV_BETWEEN_INP_OUT == |
Version vom 24. Juli 2021, 16:37 Uhr
Die in Freizeit erstellte Z-Klasse bietet verschiedene Methoden für Konvertierungen an.
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 entfernt aufgrund der Möglichkeit mit StringTemplates und Formatoption DATE
DDMMYYYY_TO_YYYYMMDD
Die Methode wurde entfernt aufgrund der Möglichkeit mit StringTemplates und Formatoption DATE
NUMBER_CONV_BETWEEN_INP_OUT
Diese statische Methode kombiniert zwei Arten von Funktionsbausteine:
1. CONVERSION_EXIT_MATN1_INPUT, wo die Feldlänge bekannt ist und IV_NUMBER_TYPE = MATN1.
Beispiel:
DATA(lv_string) = zcl_conv_utilities=>number_conv_between_inp_out ( iv_number = '000000000000000123' iv_number_direction = 'OUTPUT' iv_number_type = zcl_conv_utilities=>gcs_number_type-material ). "CONVERSION_EXIT_MATN1_INPUT "1 -> 000000000000000001 "CONVERSION_EXIT_MATN1_OUTPUT "000000000000000001 -> 1
2. CONVERSION_EXIT_ALPHA_INPUT, wo die Feldlänge unbekannt ist und festgelegt werden muss
Output: Die Länge (IV_LENGTH) muss die Länge des Datentyps sein, der via Parameter (IV_NUMBER) übergeben wird. Wenn dieser kleiner ist, ist der Rückgabewert 0 oder abgeschnitten.
Beispiel:
lv_string = '00001234';length = 4; lv_string = '0'
lv_string = '00001234';length = 8; lv_string = '1234'
Input:
Die Länge (IV_LENGTH) ist die Länge mit vielen Nullen gefüllt werden soll, aber mindestens die Länge des übergebenden Parameter (IV_NUMBER).
Beispiel:
lv_string = '1234';length = 4; lv_string = '1234'
lv_string = '1234';length = 8; lv_string = '00001234'
lv_string = zcl_conv_utilities=>number_conv_between_inp_out( iv_number = *Type IS CLIKE LIKE STRING, CHAR etc.* iv_number_direction = 'INPUT' iv_target_length = 7 ).
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 ).