Code: Alles auswählen.
TYPES: BEGIN OF ty_xml,
string TYPE string,
END OF ty_xml.
DATA: it_xml TYPE TABLE OF ty_xml,
wa_xml TYPE ty_xml.
DATA: file TYPE string,
result TYPE xstring.
DATA itab TYPE vbak OCCURS 0.
DATA wa_itab TYPE vbak.
DATA: xml TYPE string.
PARAMETERS : dl RADIOBUTTON GROUP a,
up RADIOBUTTON GROUP a.
PARAMETERS : pa_file(128) DEFAULT 'C:\test.xml'.
START-OF-SELECTION.
file = pa_file.
CASE 'X'.
WHEN dl.
SELECT * FROM vbak UP TO 1 ROWS
INTO CORRESPONDING FIELDS OF TABLE itab.
CALL TRANSFORMATION id
SOURCE itab = itab
RESULT XML xml.
MOVE xml TO wa_xml-string.
APPEND wa_xml TO it_xml.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = file
filetype = 'ASC'
CHANGING
data_tab = it_xml[]
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
WHEN up.
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = file
filetype = 'ASC'
CHANGING
data_tab = it_xml[]
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT it_xml INTO wa_xml.
MOVE wa_xml-string TO xml .
ENDLOOP.
CALL TRANSFORMATION id
SOURCE XML = xml
RESULT itab = itab[].
BREAK-POINT.
LOOP AT itab INTO wa_itab.
WRITE: / wa_itab-vbeln, wa_itab-auart.
ENDLOOP.
ENDCASE.
Code: Alles auswählen.
TYPES : BEGIN OF ty_xml_line,
data(256) TYPE x,
END OF ty_xml_line.
* Variable
DATA : itab_xml TYPE TABLE OF ty_xml_line, " Tabelle
xmlfile TYPE string.
....
PERFORM testdaten.
.....
*&---------------------------------------------------------------------*
*& Form testdaten
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM testdaten.
DATA : file_table TYPE filetable,
action TYPE i,
rc TYPE sysubrc,
xmlfile TYPE string.
FIELD-SYMBOLS : <file> TYPE file_table.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
default_extension = 'xml'
file_filter = cl_gui_frontend_services=>filetype_xml
CHANGING
file_table = file_table
rc = rc
user_action = action
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CHECK action = cl_gui_frontend_services=>action_ok.
READ TABLE file_table INDEX 1 ASSIGNING <file>.
xmlfile = <file>.
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = xmlfile
* filetype = 'BIN'
filetype = 'ASC'
has_field_separator = ' '
* HEADER_LENGTH = 0
* DAT_MODE = SPACE
* CODEPAGE = SPACE
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* READ_BY_LINE = 'X'
* IMPORTING
* FILELENGTH =
* HEADER =
CHANGING
data_tab = itab_xml
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19
.
IF sy-subrc <> 0.
MESSAGE e038 WITH 'Error gui_upload' sy-subrc.
ENDIF.
ENDFORM. " testdaten