Konvertierung IDoc zu XML

Aus SAP Wiki ツ
Version vom 18. Juli 2021, 15:06 Uhr von M1ch3lde (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Kategorie: Codeschnipsel === Parameter der Methode === IV_IDOC_NUMBER TYPE EDI_DOCNUM Nummer des IDocs IV_SAVE_TO_DESKTOP TYPE CHAR01 OPTIONAL X = True…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)


Parameter der Methode

IV_IDOC_NUMBER	TYPE EDI_DOCNUM	Nummer des IDocs
IV_SAVE_TO_DESKTOP	TYPE CHAR01 OPTIONAL	X = True
IV_SAVE_TO_APPLSERVER	TYPE STRING OPTIONAL	Pfad + Dateiname.Dateityp
Returnin gvalue( RT_IDOCDATA_AS_XML )	TYPE STRINGTAB	IDoc Daten als XML


Codeschnipsel

     "Check IDoc No exists
     SELECT SINGLE docnum FROM EDIDC INTO @DATA(lv_idoc_exists) WHERE docnum = @iv_idoc_number.
     IF sy-subrc <> 0.
      RAISE EXCEPTION TYPE zcx_conv_utilities MESSAGE e008(zmc_conv_utilities) WITH iv_idoc_number.
     ENDIF.

     DATA(lo_idoc_xml) = NEW cl_idoc_xml1( docnum = iv_idoc_number ).
     DATA lv_xml TYPE string.
     lo_idoc_xml->get_xmldata_as_string( IMPORTING data_string = lv_xml ).
     DATA(lt_xml) = VALUE stringtab( ( |{ lv_xml }| ) ).

     rt_idocdata_as_xml = lt_xml.

     IF iv_save_to_desktop = abap_true.
       DATA: lv_temp_dir TYPE string.
       cl_gui_frontend_services=>get_desktop_directory( CHANGING desktop_directory = lv_temp_dir ).
       cl_gui_cfw=>flush( ).
       DATA(lv_filename) = |{ lv_temp_dir }\\my_xml.xml|.
       cl_gui_frontend_services=>gui_download( EXPORTING
                                                 filename = lv_filename
                                                 filetype = 'ASC'
                                               CHANGING
                                                 data_tab = lt_xml ).

     ELSEIF iv_save_to_applserver IS NOT INITIAL.
       "Write file to application server
       cl_rsan_ut_appserv_file_writer=>appserver_file_write( EXPORTING i_filename = iv_save_to_applserver "max 255 char in AL11
                                                                       i_data_tab = lt_xml
                                                                       i_overwrite = abap_true
                                                             IMPORTING e_lines_written = DATA(lt_lines_written) ).
     ENDIF.