INCLUDE ixml_global.
TYPES: t_raw(256) TYPE x.
DATA: xml_xtable TYPE TABLE OF t_raw WITH HEADER LINE,
l_filename TYPE string,
l_filetable TYPE filetable,
l_fileline LIKE LINE OF l_filetable,
l_file_filter TYPE string,
xml_document_size TYPE i,
iniitial_path TYPE string,
false(1) TYPE c VALUE ' ', " FALSE
l_rc TYPE i,
l_user_action TYPE i,
g_xml_fullpath TYPE string ,
subrc LIKE sy-subrc .
DATA: xml_document TYPE REF TO if_ixml_document.
DATA : g_ztax TYPE ztax OCCURS 0 WITH HEADER LINE .
DATA: me_xml TYPE REF TO cl_xml_document,
dw_xml TYPE REF TO cl_xml_document.
DATA : wa LIKE LINE OF g_ztax-ztax_body ,
wb LIKE LINE OF wa-lines ,
btab LIKE LINE OF wa-lines OCCURS 0 .
FIELD-SYMBOLS : <wa> LIKE LINE OF g_ztax-ztax_body ,
<wb> LIKE LINE OF btab .
iniitial_path = 'C:/'.
CONCATENATE 'XML-Dateien'(x10) '(*.XML)|*.XML|'
'Alle Dateien'(x11) '(*.*)|*.*|'
INTO l_file_filter.
DO.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
default_filename = l_filename
file_filter = l_file_filter
initial_directory = iniitial_path
multiselection = false
CHANGING
file_table = l_filetable[]
user_action = l_user_action
rc = l_rc
EXCEPTIONS
OTHERS = 1.
IF sy-subrc NE 0 OR l_rc < 0 OR
l_user_action EQ cl_gui_frontend_services=>action_cancel.
EXIT.
ENDIF.
IF l_filetable[] IS NOT INITIAL.
READ TABLE l_filetable INTO l_fileline INDEX 1.
g_xml_fullpath = l_fileline-filename.
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = g_xml_fullpath
filetype = 'BIN' " BIN OR ASC
IMPORTING
filelength = xml_document_size
CHANGING
data_tab = xml_xtable[]
EXCEPTIONS
OTHERS = 1.
IF sy-subrc EQ 0.
EXIT.
ENDIF.
ENDIF.
ENDDO .
CREATE OBJECT me_xml.
CALL METHOD me_xml->create_with_table
EXPORTING
table = xml_xtable[]
size = xml_document_size
RECEIVING
retcode = subrc.
CALL METHOD me_xml->get_data
IMPORTING
retcode = subrc
CHANGING
dataobject = g_ztax.
CREATE OBJECT dw_xml.
CALL METHOD dw_xml->create_with_data
EXPORTING
dataobject = g_ztax
receiving
retcode = subrc .
CALL METHOD dw_xml->export_to_file
EXPORTING
filename = 'c:/dw.xml'
RECEIVING
retcode = subrc.
free : me_xml , dw_xml .
WRITE : g_ztax-sjjk .
ULINE .
LOOP AT g_ztax-ztax_body ASSIGNING <wa> .
FORMAT COLOR COL_HEADING ON .
WRITE : / <wa>-header-vbeln ,<wa>-header-stceg.
MOVE <wa>-lines TO btab .
LOOP AT btab ASSIGNING <wb> .
NEW-LINE .
FORMAT COLOR COL_HEADING OFF .
WRITE : 4
<wb>-arktx NO-GAP ,'|' NO-GAP ,
<wb>-vrkme NO-GAP ,'|' NO-GAP ,
<wb>-fkimg NO-GAP ,'|' NO-GAP ,
<wb>-netwr NO-GAP ,'|' NO-GAP ,
<wb>-discount NO-GAP ,'|' .
ENDLOOP .
SKIP .
ENDLOOP .