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
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
Konvertiert ein internes Datum von TYPE "DATS" in ein externes Datum von TYPE "CHAR10" als Rückgabeparameter. Sollte bei der Konvertierung ein Fehler auftreten, wird eine Exception geschmissen.
Aufruf der Methode
DATA(ext_date) = zcl_conv_utilities=>yyyymmdd_to_ddmmyyyy( sy-datum ).
DDMMYYYY_TO_YYYYMMDD
Konvertiert ein externes Datum von TYPE "CHAR10" in ein internes Datum von TYPE "DATS" als Rückgabeparameter. Sollte bei der Konvertierung ein Fehler auftreten, wird eine Exception geschmissen.
Aufruf der Methode
DATA(int_date) = zcl_conv_utilities=>DDMMYYYY_TO_YYYYMMDD( '01.01.1900' ).
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 ).