‎2008 Nov 04 4:54 AM
Hi,
could you please tell me how to convert data stored in an internal table to XML format and vice versa.
Thanks in advance.
Prajitha.
‎2008 Nov 04 5:20 AM
Hi,
u can do this way..
DATA: name TYPE string,
w_file_name TYPE string,
w_file_path TYPE string,
full_path TYPE string,
action.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
window_title = name
initial_directory = 'c:\Documents and Settings\2q\Desktop'
prompt_on_overwrite = 'X'
default_extension = 'XML'
default_file_name = name
CHANGING
filename = w_file_name
path = w_file_path
fullpath = full_path
user_action = action
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF action EQ 0.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = w_file_name
filetype = 'BIN'
CHANGING
data_tab = <tab>
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.
ENDIF.
‎2008 Nov 04 5:09 AM
‎2008 Nov 04 5:20 AM
Hi,
u can do this way..
DATA: name TYPE string,
w_file_name TYPE string,
w_file_path TYPE string,
full_path TYPE string,
action.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
window_title = name
initial_directory = 'c:\Documents and Settings\2q\Desktop'
prompt_on_overwrite = 'X'
default_extension = 'XML'
default_file_name = name
CHANGING
filename = w_file_name
path = w_file_path
fullpath = full_path
user_action = action
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF action EQ 0.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = w_file_name
filetype = 'BIN'
CHANGING
data_tab = <tab>
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.
ENDIF.
‎2008 Nov 04 5:24 AM
Hi Gopi,
Check this sample prog...it converts inteernal table data to xml format....
&----
*& Report ZMD4
*&
&----
*&
*&
&----
REPORT ZMD4.
TABLES: EKKO,EKPO.
DATA: BEGIN OF IT_EKKO OCCURS 0,
EBELN TYPE EKKO-EBELN,
BUKRS TYPE EKKO-BUKRS,
END OF IT_EKKO.
DATA: BEGIN OF IT_EKPO OCCURS 0,
EBELN TYPE EKPO-EBELN,
EBELP TYPE EKPO-EBELP,
MATNR TYPE EKPO-MATNR,
END OF IT_EKPO.
DATA: BEGIN OF IT_FINAL OCCURS 0,
EBELN TYPE EKKO-EBELN,
BUKRS TYPE EKKO-BUKRS,
EBELP TYPE EKPO-EBELP,
MATNR TYPE EKPO-MATNR,
END OF IT_FINAL.
TYPES: BEGIN OF TTAB,
RECORD(5000) TYPE C,
END OF TTAB.
DATA: XMLTABLE TYPE TABLE OF TTAB,
XML_OUT TYPE STRING,
XML_OUT1 TYPE STRING,
LENGTH TYPE SY-TABIX.
SELECT-OPTIONS: SO_EBELN FOR EKKO-EBELN DEFAULT '4500000018' TO '4500000020'.
START-OF-SELECTION.
SELECT EBELN
BUKRS
FROM EKKO INTO TABLE IT_EKKO WHERE EBELN IN SO_EBELN.
IF NOT IT_EKKO[] IS INITIAL.
SELECT EBELN
EBELP
MATNR
FROM EKPO INTO TABLE IT_EKPO FOR ALL ENTRIES IN IT_EKKO WHERE EBELN EQ IT_EKKO-EBELN.
ELSE.
WRITE:/ 'NO DATA'.
ENDIF.
LOOP AT IT_EKKO.
LOOP AT IT_EKPO WHERE EBELN = IT_EKKO-EBELN.
IF SY-SUBRC = 0.
AT NEW EBELN.
IT_FINAL-EBELN = IT_EKKO-EBELN.
IT_FINAL-BUKRS = IT_EKKO-BUKRS.
ENDAT.
IT_FINAL-EBELP = IT_EKPO-EBELP.
IT_FINAL-MATNR = IT_EKPO-MATNR.
ENDIF.
APPEND IT_FINAL.
CLEAR IT_FINAL.
ENDLOOP.
CLEAR IT_FINAL.
ENDLOOP.
CALL TRANSFORMATION ID
SOURCE OUTPUT = IT_FINAL[]
RESULT XML XML_OUT.
APPEND XML_OUT TO XMLTABLE .
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = LENGTH
FILENAME = 'C:\Documents and Settings\diddim\Desktop\DEMO.XML'
FILETYPE = 'BIN'
APPEND = ' '
*write_field_separator = ';'
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
IMPORTING
FILELENGTH = LENGTH
TABLES
DATA_TAB = XMLTABLE
*FIELDNAMES =
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
OTHERS = 22
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
‎2008 Nov 04 5:26 AM
Hi Gopi,
Welcome to SDN.
Follow some suggestion please do search in SDN before posting you will get lot of posts for your same query.
https://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_all&query=xmlformatintointernaltable&adv=false&sortby=cm_rnd_rankvalue
Cheers!!
VEnk@