0% found this document useful (0 votes)
18 views4 pages

ABAP To XML

Uploaded by

Jaya Sankar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views4 pages

ABAP To XML

Uploaded by

Jaya Sankar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

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 *
*--------------------------------------------------------------------*
* Author : Michel PIOUD *
* Email : [email protected] HomePage : http://www.geocities.com/mpioud *
**********************************************************************
* 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 = '<LOCATIONS>'.
APPEND gt_xml.
CLEAR gt_xml.
ENDAT.

AT NEW werks. "At new plant


PERFORM read_plant.
FORMAT COLOR 4 ON.
SKIP 1.
WRITE :/ gt_marc-werks, t001w-name1.
FORMAT COLOR 4 OFF.
CLEAR gt_xml.
gt_xml-line = ' <PLANT>'.
APPEND gt_xml.
CLEAR gt_xml.
CONCATENATE ' <NUMBER>' gt_marc-werks '</NUMBER>'
INTO gt_xml-line.
APPEND gt_xml.
CLEAR gt_xml.
CONCATENATE ' <NAME>' t001w-name1 '</NAME>' INTO gt_xml-line.
APPEND gt_xml.
CLEAR gt_xml.
gt_xml-line = ' </PLANT>'.
APPEND gt_xml.
CLEAR gt_xml.
ENDAT.

PERFORM read_description.

CLEAR gt_xml.
gt_xml-line = ' <MATERIAL>'.
APPEND gt_xml.
CLEAR gt_xml.
CONCATENATE ' <NAME>' g_maktx '</NAME>'
INTO gt_xml-line.
APPEND gt_xml.
CLEAR gt_xml.
CONCATENATE ' <NUMBER>' gt_marc-matnr '</NUMBER>'
INTO gt_xml-line.
APPEND gt_xml.
CLEAR gt_xml.
gt_xml-line = ' </MATERIAL>'.
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 = 'C:\PLANT1.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


******************** END OF PROGRAM Z_DOWN_XML ************************

You might also like