Application Development and Automation 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: 
Read only

Export data from SAP interanal table to Application Server in XML format.

Former Member
0 Likes
1,361

Hi Experts,

I want to export data from SAP Internal Table to Application Server in XML Format.

Can you please help me on this.

Thanks & Regards,

Murali Krishna K.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,088

HI

this program will convert the internal table to the xml document

*----


*

  • Report ZPRUEBA_MML_13 *

  • Export an internal table to XML document *

  • NO BORRAR ESTE CODIGO *

*----


*

REPORT Z_table_xml.

*----


*

PARAMETERS: GK_RUTA TYPE RLGRAP-FILENAME.

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

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

  • FORM DESCARGA_XML *

*----


*

regards

kishore

Hi Experts,

I want to export data from SAP Internal Table to Application Server in XML Format.

Can you please help me on this.

Thanks & Regards,

Murali Krishna K.

8 REPLIES 8
Read only

Former Member
0 Likes
1,088

hi Murali,

use SAP_CONVERT_TO_XML_FORMAT

regards

satesh

Read only

0 Likes
1,088

Hi Satesh,

If possible can you please give sample code for this.

Thanks & Regards,

Murali Krishna K

Read only

0 Likes
1,088

HI Murali

I have a code which converts the internal table to XML in the presentation server.

REPORT z_down_xml LINE-SIZE 132 NO STANDARD PAGE HEADING.

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

  • REPORT Z_DOWN_XML - Using an internal table (gt_marc) *

  • and downloading the report data as an xml file *

  • The xml indentation is hard coded into the file *

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

  • Databases

TABLES:

makt, "Mat description

marc, "Material / plant

t001w, "plant name

bhdgd. "Batch heading

  • Internal tables

DATA:

BEGIN OF gt_marc OCCURS 0,

werks LIKE marc-werks,

matnr LIKE marc-matnr,

END OF gt_marc,

  • Table to be downloaded as xml. Each line stores start and end tags

  • and the value

BEGIN OF gt_xml OCCURS 0,

line(120),

END OF gt_xml,

g_maktx(120).

  • User-input

SELECT-OPTIONS:

s_werks FOR marc-werks,

s_matnr FOR marc-matnr.

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

START-OF-SELECTION.

  • Extract all required data

PERFORM main_processing.

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

END-OF-SELECTION.

SORT gt_marc BY werks matnr.

LOOP AT gt_marc.

AT FIRST. "First tag must be root

CLEAR gt_xml.

gt_xml-line = ''.

APPEND gt_xml.

CLEAR gt_xml.

  • display data

FORMAT COLOR 2 ON.

WRITE 😕 gt_marc-matnr, makt-maktx.

FORMAT COLOR 2 OFF.

ENDLOOP.

  • The last tag must be the root closing tag --*

gt_xml-line = '</LOCATIONS>'.

APPEND gt_xml.

CLEAR gt_xml.

CALL FUNCTION 'DOWNLOAD'

EXPORTING

filename = 'D:SAPPLANT1.XML'

filetype = 'ASC'

TABLES

data_tab = gt_xml.

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

TOP-OF-PAGE.

MOVE sy-title TO bhdgd-line1.

MOVE sy-repid TO bhdgd-repid.

MOVE sy-uname TO bhdgd-uname.

MOVE sy-datum TO bhdgd-datum.

MOVE '0' TO bhdgd-inifl.

MOVE '132' TO bhdgd-lines.

FORMAT INTENSIFIED ON COLOR COL_HEADING.

PERFORM batch-heading(rsbtchh0). "report header

*----


*

  • Form READ_PLANT

*----


*

FORM read_plant.

  • Get plant name

CLEAR t001w.

SELECT SINGLE name1

INTO t001w-name1

FROM t001w

WHERE werks EQ gt_marc-werks.

ENDFORM. " READ_PLANT

*----


*

  • Form MAIN_PROCESSING

*----


*

FORM main_processing.

  • Material and plant basic data

SELECT werks matnr

INTO TABLE gt_marc

FROM marc

WHERE werks IN s_werks

AND matnr IN s_matnr.

ENDFORM. " MAIN_PROCESSING

*----


*

  • Form READ_DESCRIPTION

*----


*

FORM read_description.

  • Material name

CLEAR g_maktx.

SELECT SINGLE maktx

INTO g_maktx

FROM makt

WHERE matnr EQ gt_marc-matnr

AND spras EQ 'E'.

  • Replace special character

DO.

REPLACE '&' WITH '*ù%;' INTO g_maktx.

IF NOT sy-subrc IS INITIAL. EXIT.ENDIF.

ENDDO.

DO.

REPLACE '*ù%;' WITH '&amp;' INTO g_maktx.

IF NOT sy-subrc IS INITIAL. EXIT.ENDIF.

ENDDO.

DO.

REPLACE '/' WITH '&#47;' INTO g_maktx.

IF NOT sy-subrc IS INITIAL. EXIT.ENDIF.

ENDDO.

ENDFORM. " READ_DESCRIPTION

after this use the Transaction CG3Z to upload the XML file from presentation server to the applicaion server by specifying the path.

It works for me.

regards

kishore

Read only

Former Member
0 Likes
1,088

Hi Murali,

Chek this blog to Convert an ABAP table into XML file using SAP DOM Approach:

/people/r.eijpe/blog/2005/11/10/xml-dom-processing-in-abap-part-i--convert-an-abap-table-into-xml-file-using-sap-dom-approach

which uses:

CALL TRANSFORMATION (`ID`)

SOURCE output = your_itab[]

RESULT XML xml_out.

And for Data Export in XML format:

To Download internal table to Application server file(Unix)

DATA: e_file like rlgrap-filename value '/usr/sap/tmp/file.txt'.      

  open dataset e_file for output in text mode.
  lOOP AT it_datatab......
    transfer it_datatab to e_file.
  ENDLOOP.
 
  close dataset e_file.

Try this FM

BANK_API_PP_UT_DATA_TO_XML

Best Regards,

Anjali

Read only

Former Member
0 Likes
1,089

HI

this program will convert the internal table to the xml document

*----


*

  • Report ZPRUEBA_MML_13 *

  • Export an internal table to XML document *

  • NO BORRAR ESTE CODIGO *

*----


*

REPORT Z_table_xml.

*----


*

PARAMETERS: GK_RUTA TYPE RLGRAP-FILENAME.

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

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

  • FORM DESCARGA_XML *

*----


*

regards

kishore

Read only

mandar_shete
Active Participant
Read only

Former Member
0 Likes
1,088

hi murali,

i had this requirement to generate xml's dynamically and also call a xml from abap. well, i have used SAP JCO and rfc's. initally it takes some time( if you are not a java programmer) but once you know jco, you can do it very easily.

the documentation and software is at the following site

serive.sap.com/connectors

cheers

Read only

0 Likes
1,088

Hi ,

I need to know how to create specific XML schema output. i tried with FM available and classes available but i need the output in the following format.

<?xml version="1.0" encoding="UTF-8" ?>

- <ps:ProcessSet xmlns:ts="http://schemas.ariba.com/IS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xtc="http://schemas/ariba/xt/core" xmlns:xtd="http://schemas/ariba/xt/datatypes" xmlns:dts="http://schemas/ariba/xt/database" msgid="yw890-hplw47j-904gk4n-s3n4mzq2">

- <ProcessSetProperties null_representation="indirect" process_scope="Entity">

<DateTimeFormats dateTimeFormat="YYYY-MM-DD HH24:MI:SS" />

<Source>SG</Source>

<Message_Version>1.0.0</Message_Version>

I need ABAP code for the above format.

Thanks in Advance

Anney