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

ABAP TO XML

Former Member
0 Likes
368

Hi Experts.

I am facing some problem when i am converting ABAP to XML, i have converted ABAP internal table to XML format but the client requirement a bit different form my output

My Output in XML:-

<?xml version="1.0" encoding="utf-16" ?>

- <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">

- <asx:values>

- <SOURCE>

- <item>

<CATALOGUE_REQUEST_ID>10562</CATALOGUE_REQUEST_ID>

<MATERIAL_NUMBER>000000000040000053</MATERIAL_NUMBER>

<ERP_PROCESSED_ON>2011/12/05 22:56:25</ERP_PROCESSED_ON>

<MESSAGE_COUNT>=4</MESSAGE_COUNT>

- <MESSAGES>

- <item>

<MESSAGES>Message Title="UPDATE Material for Cat ID 48611"MessageType="Information"Description="Trying to create: 40000053 ____ ____ ____ __________ ____ __ ___ ___"Code="102"</MESSAGES>

</item>

- <item>

<MESSAGES>Message Title="UPDATE Material for Cat ID 48611"MessageType="ERROR"Description="The industry sector does not exist"Code="106"</MESSAGES>

</item>

- <item>

<MESSAGES>Message Title="UPDATE Material for Cat ID 48611"MessageType="Information"Description="Trying to change: 40000053 ____ ____ ____ __________ ____ __ ___ ___"Code="103"</MESSAGES>

</item>

- <item>

<MESSAGES>Message Title="UPDATE Material for Cat ID 48611"MessageType="ERROR"Description="The material 40000053 does not exist or is not activated"Code="305"</MESSAGES>

</item>

</MESSAGES>

</item>

</SOURCE>

</asx:values>

</asx:abap>

Client Requirement:-

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

- <GatekeeperResponse version="1.0" xmlns="http://www.sparesfinder.com/gk/material/response/1.0">

<CatalogueRequestID>10562</CatalogueRequestID>

/>

<MaterialNumber>40000053</MaterialNumber>

/>

<ERPProcessedOn>2011/12/05 22:56:25</ERPProcessedOn>

/>

- <Messages MessageCount="4">

<Message Title="UPDATE Material for Cat ID 48611" Description="Trying to create 40000053" MessageType="Information" Code="102" />

<Message Title="UPDATE Material for Cat ID 48611" Description="The industry sector does not exist" MessageType="ERROR" Code="106" />

<Message Title="UPDATE Material for Cat ID 48611" Description="Trying to change: 40000053" MessageType="Information" Code="103" />

<Message Title="UPDATE Material for Cat ID 48611" Description="The material 40000053 does not exist or is not activated" MessageType="ERROR" Code="305" />

</Messages>

</GatekeeperResponse>

How can i change my XML output so i can meet client requirement.

Regards,

Nee

Hi Experts.

I am facing some problem when i am converting ABAP to XML, i have converted ABAP internal table to XML format but the client requirement a bit different form my output

My Output in XML:-

<?xml version="1.0" encoding="utf-16" ?>

- <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">

- <asx:values>

- <SOURCE>

- <item>

<CATALOGUE_REQUEST_ID>10562</CATALOGUE_REQUEST_ID>

<MATERIAL_NUMBER>000000000040000053</MATERIAL_NUMBER>

<ERP_PROCESSED_ON>2011/12/05 22:56:25</ERP_PROCESSED_ON>

<MESSAGE_COUNT>=4</MESSAGE_COUNT>

- <MESSAGES>

- <item>

<MESSAGES>Message Title="UPDATE Material for Cat ID 48611"MessageType="Information"Description="Trying to create: 40000053 ____ ____ ____ __________ ____ __ ___ ___"Code="102"</MESSAGES>

</item>

- <item>

<MESSAGES>Message Title="UPDATE Material for Cat ID 48611"MessageType="ERROR"Description="The industry sector does not exist"Code="106"</MESSAGES>

</item>

- <item>

<MESSAGES>Message Title="UPDATE Material for Cat ID 48611"MessageType="Information"Description="Trying to change: 40000053 ____ ____ ____ __________ ____ __ ___ ___"Code="103"</MESSAGES>

</item>

- <item>

<MESSAGES>Message Title="UPDATE Material for Cat ID 48611"MessageType="ERROR"Description="The material 40000053 does not exist or is not activated"Code="305"</MESSAGES>

</item>

</MESSAGES>

</item>

</SOURCE>

</asx:values>

</asx:abap>

Client Requirement:-

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

- <GatekeeperResponse version="1.0" xmlns="http://www.sparesfinder.com/gk/material/response/1.0">

<CatalogueRequestID>10562</CatalogueRequestID>

/>

<MaterialNumber>40000053</MaterialNumber>

/>

<ERPProcessedOn>2011/12/05 22:56:25</ERPProcessedOn>

/>

- <Messages MessageCount="4">

<Message Title="UPDATE Material for Cat ID 48611" Description="Trying to create 40000053" MessageType="Information" Code="102" />

<Message Title="UPDATE Material for Cat ID 48611" Description="The industry sector does not exist" MessageType="ERROR" Code="106" />

<Message Title="UPDATE Material for Cat ID 48611" Description="Trying to change: 40000053" MessageType="Information" Code="103" />

<Message Title="UPDATE Material for Cat ID 48611" Description="The material 40000053 does not exist or is not activated" MessageType="ERROR" Code="305" />

</Messages>

</GatekeeperResponse>

How can i change my XML output so i can meet client requirement.

Regards,

Nee

1 REPLY 1
Read only

Former Member
0 Likes
316

Hi

try this..

data: l_xml_table type table of xml_line,

l_xml_size type i.

  • Creating a ixml factory

l_ixml = cl_ixml=>create( ).

  • Creating the dom object model

l_document = l_ixml->create_document( ).

  • Root node of the xml document

l_element_main = l_document->create_simple_element(

name = 'GatekeeperResponse'

parent = l_document ).

loop at 'your table' into 'your wa'.

l_value = wa-object.

l_element_dummy = l_document->create_simple_element(

name = 'CatalogueRequestID'

value = l_value

parent = l_element_main ).

l_value = wa-object.

l_element_dummy = l_document->create_simple_element(

name = 'MaterialNumber'

value = l_value

parent = l_element_main ).

l_value = wa-object.

l_element_dummy = l_document->create_simple_element(

name = 'ERPProcessedOn'

value = l_value

parent = l_element_main ).

l_value = wa-object.

l_element_dummy = l_document->create_simple_element(

name = 'Message'

value = l_value

parent = l_element_main ).

at first.

l_element_local_obj = l_document->create_simple_element(

name = 'Message'

parent = l_element_main ).

l_value = 'your message count variable'

l_rc = l_element_cdata->set_attribute( MessageCount=l_value).

endat.

at new 'message count var'.

l_element_cdata = l_document->create_simple_element(

name = 'Record'

parent = l_element_local_obj ).

l_value = "set your value".

l_rc = l_element_cdata->set_attribute( Title="UPDATE Material for Cat ID 48611" Description="Trying to create 40000053" MessageType="Information" Code="102" ).//change it accordin to ur req.

endat.

endloop.