Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Converting Internal Table Data to XML File

Former Member
0 Kudos

Hi ABAPers,

Can any one pls help me to Convert Internal Table Data to XML File and I dont know how to FM SAP_CONVERT_TO_XML_FORMAT....

can u give Good Example for using it.... Good Answers will be Appreciated....

6 REPLIES 6

Former Member
0 Kudos

I found this on aUser forum sometime back... pl go through it..

*&----


*

*& Report ZTESTXML *

*& *

*&----


*

*& *

*& *

*&----


*

*----


*

  • Report ZPRUEBA_MML_13 *

  • Export an internal table to XML document *

  • NO BORRAR ESTE CODIGO *

*----


*

report zprueba_mml_13.

*----


*

  • PANTALLA SELECCION *

parameters: gk_ruta type rlgrap-filename.

  • PANTALLA SELECCION *

*----


*

*----


*

  • TYPE TURNOS *

types: begin of turnos,

lu like t552a-tpr01,

ma like t552a-tpr01,

mi like t552a-tpr01,

ju like t552a-tpr01,

vi like t552a-tpr01,

sa like t552a-tpr01,

do like t552a-tpr01,

end of turnos.

  • TYPE TURNOS *

*----


*

*----


*

  • TYPE SOCIO *

types: begin of socio,

numero like pernr-pernr,

reposicion like pa0050-zauve,

nombre like pa0002-vorna,

turnos type turnos,

end of socio.

  • TYPE SOCIO *

*----


*

*----


*

  • ESTRUCTURA ACCESOS *

data: begin of accesos occurs 0,

socio type socio,

end of accesos.

  • ESTRUCTURA ACCESOS *

*----


*

*----


*

  • START OF SELECTION *

start-of-selection.

perform llena_accesos.

perform descarga_xml.

end-of-selection.

  • END OF SELECTION *

*----


*

*----


*

  • FORM LLENA_ACCESOS *

form llena_accesos.

refresh accesos.

clear accesos.

move: '45050' to accesos-socio-numero,

'MOISES MORENO' to accesos-socio-nombre,

'0' to accesos-socio-reposicion,

'T1' to accesos-socio-turnos-lu,

'T2' to accesos-socio-turnos-ma,

'T3' to accesos-socio-turnos-mi,

'T4' to accesos-socio-turnos-ju,

'T5' to accesos-socio-turnos-vi,

'T6' to accesos-socio-turnos-sa,

'T7' to accesos-socio-turnos-do.

append accesos.

clear accesos.

move: '45051' to accesos-socio-numero,

'RUTH PEÑA' to accesos-socio-nombre,

'0' to accesos-socio-reposicion,

'T1' to accesos-socio-turnos-lu,

'T2' to accesos-socio-turnos-ma,

'T3' to accesos-socio-turnos-mi,

'T4' to accesos-socio-turnos-ju,

'T5' to accesos-socio-turnos-vi,

'T6' to accesos-socio-turnos-sa,

'T7' to accesos-socio-turnos-do.

append accesos.

endform. "LLENA_ACCESOS

  • FORM LLENA_ACCESOS *

*----


*

*----


*

  • FORM DESCARGA_XML *

form descarga_xml.

data: l_dom type ref to if_ixml_element,

m_document type ref to if_ixml_document,

g_ixml type ref to if_ixml,

w_string type xstring,

w_size type i,

w_result type i,

w_line type string,

it_xml type dcxmllines,

s_xml like line of it_xml,

w_rc like sy-subrc.

data: xml type dcxmllines.

data: rc type sy-subrc,

begin of xml_tab occurs 0,

d like line of xml,

end of xml_tab.

class cl_ixml definition load.

g_ixml = cl_ixml=>create( ).

check not g_ixml is initial.

m_document = g_ixml->create_document( ).

check not m_document is initial.

write: / 'Converting DATA TO DOM 1:'.

call function 'SDIXML_DATA_TO_DOM'

exporting

name = 'ACCESOS'

dataobject = accesos[]

importing

data_as_dom = l_dom

changing

document = m_document

exceptions

illegal_name = 1

others = 2.

if sy-subrc = 0.

write 'Ok'.

else.

write: 'Err =',

sy-subrc.

endif.

check not l_dom is initial.

w_rc = m_document->append_child( new_child = l_dom ).

if w_rc is initial.

write 'Ok'.

else.

write: 'Err =',

w_rc.

endif.

call function 'SDIXML_DOM_TO_XML'

exporting

document = m_document

importing

xml_as_string = w_string

size = w_size

tables

xml_as_table = it_xml

exceptions

no_document = 1

others = 2.

if sy-subrc = 0.

write 'Ok'.

else.

write: 'Err =',

sy-subrc.

endif.

loop at it_xml into xml_tab-d.

append xml_tab.

endloop.

call function 'WS_DOWNLOAD'

exporting

bin_filesize = w_size

filename = gk_ruta

filetype = 'BIN'

tables

data_tab = xml_tab

exceptions

others = 10.

if sy-subrc <> 0.

message id sy-msgid type sy-msgty number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.

endform. "DESCARGA_XML

  • FORM DESCARGA_XML *

Former Member
0 Kudos

See this thread code is there

Reward if useful

Former Member
0 Kudos

Hi,

check this program , I think this will help you

TYPE-POOLS: ixml.

TYPES: BEGIN OF xml_line,

data(256) TYPE x,

END OF xml_line.

data : itab like catsdb occurs 100 with header line.

data : file_location type STRING.

data : file_name like sy-datum.

data : file_create type STRING.

file_name = sy-datum .

file_location = 'C:\xml\'.

concatenate file_location file_name into file_create.

concatenate file_create '.XML' into file_create.

DATA: l_xml_table TYPE TABLE OF xml_line,

l_xml_size TYPE i,

l_rc TYPE i.

select * from catsdb into table itab.

append itab .

CALL FUNCTION 'SAP_CONVERT_TO_XML_FORMAT'

  • EXPORTING

  • I_FIELD_SEPERATOR =

  • I_LINE_HEADER =

  • I_FILENAME =

  • I_APPL_KEEP = ' '

  • I_XML_DOC_NAME =

IMPORTING

PE_BIN_FILESIZE = l_xml_size

TABLES

i_tab_sap_data = itab

CHANGING

I_TAB_CONVERTED_DATA = l_xml_table

  • EXCEPTIONS

  • CONVERSION_FAILED = 1

  • 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.

CALL METHOD cl_gui_frontend_services=>gui_download

EXPORTING

bin_filesize = l_xml_size

filename = file_create

filetype = 'BIN'

CHANGING

data_tab = l_xml_table

EXCEPTIONS

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.

write : 'INTERNAL TABLE DATA IS SUCCESSFULLY DOWNLOADED TO LOCATION', file_create .

Regards

0 Kudos

Hi Kiran,

Thanks for ur Appropriate Code..

I need to Create Seperate XML File for Each Record in internal Table... Can u please Help me...

Former Member
0 Kudos

Check out this program.

&----


*& Report ZGB_EXCEL4 *

*& *

&----


*& *

*& *

&----


REPORT Z_ARIBA_SOURCING_TO_EXCEL .

TABLES: EBAN, EBKN, T024E,MAKT.

************************************************************************

*********************TYPE DECLARATION*********************************

DATA: BEGIN OF T_EBAN,

BANFN LIKE EBAN-BANFN,

BNFPO LIKE EBAN-BNFPO,

MATNR LIKE EBAN-MATNR,

MAKTX LIKE MAKT-MAKTX,

MATKL LIKE EBAN-MATKL,

MENGE(7) TYPE P DECIMALS 2,

  • MENGE LIKE EBAN-MENGE,

MEINS LIKE EBAN-MEINS,

  • PREIS LIKE EBAN-PREIS,

PREIS(7) TYPE P DECIMALS 2,

PEINH LIKE EBAN-PEINH,

IDNLF LIKE EBAN-IDNLF,

END OF T_EBAN.

DATA: ZARPRHEADER TYPE ZARPRHEADER.

************************************************************************

**********************INTERNAL TABLE**********************************

DATA: IT_EBAN LIKE T_EBAN OCCURS 0.

DATA: ZPREIS LIKE EBAN-PREIS.

SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT.

SELECT-OPTIONS: ZDATE FOR EBAN-BADAT OBLIGATORY.

SELECTION-SCREEN: END OF BLOCK B1.

************************************************************************

*******************COLS/ROWS TABLE DECLARATION************************

DATA: SEMA LIKE GXXLT_S OCCURS 0 WITH HEADER LINE.

DATA: VKEY LIKE GXXLT_V OCCURS 0 WITH HEADER LINE.

DATA: HKEY LIKE GXXLT_H OCCURS 0 WITH HEADER LINE.

DATA: ONLINE_TEXT LIKE GXXLT_O OCCURS 0 WITH HEADER LINE.

DATA: PRINT_TEXT LIKE GXXLT_P OCCURS 0 WITH HEADER LINE.

DATA: MONTH(2),YEAR(4),DAY(2).

DATA: DATE1 LIKE SY-DATUM.

***********************************************************************

***********************************************************************

*PARAMETERS: P_BANFN LIKE EBAN-BANFN,

  • P_BNFPO LIKE EBAN-BNFPO.

************************************************************************

*******************START-OF-SELECTION*********************************

INITIALIZATION.

DATE1 = SY-DATUM.

YEAR = DATE1+0(4).

MONTH = DATE1+4(2).

DAY = '01'.

IF MONTH EQ 1.

YEAR = YEAR - 1.

MONTH = 12.

MOVE YEAR TO DATE1+0(4).

MOVE MONTH TO DATE1+4(2).

MOVE DAY TO DATE1+6(2).

ELSE.

MOVE DAY TO DATE1+6(2).

ENDIF.

.

MOVE: 'I' TO ZDATE-SIGN,

'EQ' TO ZDATE-OPTION,

DATE1 TO ZDATE-LOW,

SY-DATUM TO ZDATE-HIGH.

APPEND ZDATE.

START-OF-SELECTION.

PERFORM BUILD_TABLE.

END-OF-SELECTION.

&----


*& Form BUILD_TABLE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_TABLE .

SELECT BANFN BNFPO EBAN~MATNR MAKTX MATKL MENGE MEINS PREIS PEINH

IDNLF

INTO CORRESPONDING FIELDS OF T_EBAN

FROM EBAN JOIN MAKT

ON EBANMATNR = MAKTMATNR

WHERE BSART EQ 'ZAR'

AND MAKT~SPRAS EQ SY-LANGU

AND BADAT BETWEEN ZDATE-LOW AND ZDATE-HIGH

AND SOUR_ST EQ '01'.

APPEND T_EBAN TO IT_EBAN .

ENDSELECT.

IF SY-SUBRC NE 0.

WRITE:/ 'No Items available for Sourcing'.

EXIT.

ELSE.

SEMA-COL_NO = 1.

SEMA-COL_TYP = 'STR'.

SEMA-COL_OPS ='DFT'.

SEMA-COL_SRC = 1.

SEMA-COL_CUR = 0.

APPEND SEMA.

SEMA-COL_NO = 2.

SEMA-COL_TYP = 'STR'.

SEMA-COL_OPS ='DFT'.

SEMA-COL_SRC = 2.

SEMA-COL_CUR = 0.

APPEND SEMA.

SEMA-COL_NO = 3.

SEMA-COL_TYP = 'STR'.

SEMA-COL_OPS ='DFT'.

SEMA-COL_SRC = 3.

SEMA-COL_CUR = 0.

APPEND SEMA.

SEMA-COL_NO = 4.

SEMA-COL_TYP = 'STR'.

SEMA-COL_OPS ='DFT'.

SEMA-COL_SRC = 4.

SEMA-COL_CUR = 0.

APPEND SEMA.

SEMA-COL_NO = 5.

SEMA-COL_TYP = 'STR'.

SEMA-COL_OPS ='DFT'.

SEMA-COL_SRC = 5.

SEMA-COL_CUR = 0.

APPEND SEMA.

SEMA-COL_NO = 6.

SEMA-COL_TYP = 'STR'.

SEMA-COL_OPS ='DFT'.

SEMA-COL_SRC = 6.

SEMA-COL_CUR = 0.

APPEND SEMA.

SEMA-COL_NO = 7.

SEMA-COL_TYP = 'STR'.

SEMA-COL_OPS ='DFT'.

SEMA-COL_SRC = 7.

SEMA-COL_CUR = 0.

APPEND SEMA.

SEMA-COL_NO = 8.

SEMA-COL_TYP = 'STR'.

SEMA-COL_OPS ='DFT'.

SEMA-COL_SRC = 8.

SEMA-COL_CUR = 0.

APPEND SEMA.

SEMA-COL_NO = 9.

SEMA-COL_TYP = 'STR'.

SEMA-COL_OPS ='DFT'.

SEMA-COL_SRC = 9.

SEMA-COL_CUR = 0.

APPEND SEMA.

SEMA-COL_NO = 10.

SEMA-COL_TYP = 'STR'.

SEMA-COL_OPS ='DFT'.

SEMA-COL_SRC = 10.

SEMA-COL_CUR = 0.

APPEND SEMA.

VKEY-COL_NO = 1.

VKEY-COL_NAME = 'PR Number'.

APPEND VKEY.

VKEY-COL_NO = 2.

VKEY-COL_NAME = 'Item #'.

APPEND VKEY.

VKEY-COL_NO = 3.

VKEY-COL_NAME = 'Item Name'.

APPEND VKEY.

VKEY-COL_NO = 4.

VKEY-COL_NAME = 'Description'.

APPEND VKEY.

VKEY-COL_NO = 5.

VKEY-COL_NAME = 'Commodity Codes'.

APPEND VKEY.

VKEY-COL_NO = 6.

VKEY-COL_NAME = 'Total Quantity Desired'.

APPEND VKEY.

VKEY-COL_NO = 7.

VKEY-COL_NAME = 'Quantity Unit of Measure'.

APPEND VKEY.

VKEY-COL_NO = 8.

VKEY-COL_NAME = 'Initial Price'.

APPEND VKEY.

VKEY-COL_NO = 9.

VKEY-COL_NAME = 'Quantity Unit of Measure'.

APPEND VKEY.

VKEY-COL_NO = 10.

VKEY-COL_NAME = 'SKU (Part Number)'.

APPEND VKEY.

CALL FUNCTION 'XXL_FULL_API'

EXPORTING

  • DATA_ENDING_AT = -1

  • DATA_STARTING_AT = 1

  • FILENAME = ' '

  • HEADER_1 = ' '

  • HEADER_2 = ' '

  • NO_DIALOG = 'X'

  • NO_START = ' '

N_ATT_COLS = 0

N_HRZ_KEYS = 1

N_VRT_KEYS = 10

  • SEMA_TYPE = ' '

  • SO_TITLE = ' '

TABLES

DATA = IT_EBAN

HKEY = HKEY

ONLINE_TEXT = ONLINE_TEXT

PRINT_TEXT = PRINT_TEXT

SEMA = SEMA

VKEY = VKEY

EXCEPTIONS

CANCELLED_BY_USER = 1

DATA_TOO_BIG = 2

DIM_MISMATCH_DATA = 3

DIM_MISMATCH_SEMA = 4

DIM_MISMATCH_VKEY = 5

ERROR_IN_HKEY = 6

ERROR_IN_SEMA = 7

FILE_OPEN_ERROR = 8

FILE_WRITE_ERROR = 9

INV_DATA_RANGE = 10

INV_WINSYS = 11

INV_XXL = 12

OTHERS = 13

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CLEAR T_EBAN.

LOOP AT IT_EBAN INTO T_EBAN.

UPDATE EBAN SET SOUR_ST = '02'

WHERE BANFN = T_EBAN-BANFN

AND BNFPO = T_EBAN-BNFPO.

CALL FUNCTION 'Z_ARIBA_PURC_REQ_PULL_EXCEL'

EXPORTING

BANFN = T_EBAN-BANFN

BNFPO = T_EBAN-BNFPO

VARIANT = 'VSAP'

PARTITION = 'PHSR'.

ENDLOOP.

ENDIF.

ENDFORM. " BUILD_TABLE

Reward if it useful.

Former Member
0 Kudos

can one explain the Working of SAP_CONVERT_TO_XML_FORMAT Function Module.. and how to use Parameters of it

Good Answers will be Appreciated..