‎2012 Dec 16 4:15 PM
Hi,
I can successfully transfer XML data to internal table using CALL TRANSFORMATION, if all XML tag repeats all the time in XML file, but if all XML tag doesn't repeat then how to transfer data in internal table using CALL TRANSFORMATION.
‎2012 Dec 16 7:36 PM
Hi Sunny,
You can use a XSLT transformation instead of ST. With XSLT you don't need to have all tags nor a specific order.
http://wiki.sdn.sap.com/wiki/display/ABAP/XML+XSLT+with+ABAP
Regards,
Christian
‎2012 Dec 16 7:36 PM
Hi Sunny,
You can use a XSLT transformation instead of ST. With XSLT you don't need to have all tags nor a specific order.
http://wiki.sdn.sap.com/wiki/display/ABAP/XML+XSLT+with+ABAP
Regards,
Christian
‎2012 Dec 17 1:37 PM
Thanks Christian for your reply..
but i couldn't understand much from this..
Here is XML file.
<?xml version="1.0" encoding="UTF-8"?>
<CPS_FRS_INTERFACE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cpsFrsInterface.xsd">
<FACILITY>
<TRANSACTION_TYPE>01</TRANSACTION_TYPE>
<FACILITY_KEY>1</FACILITY_KEY>
<FACILITY_CODE>00005</FACILITY_CODE>
<NAME>ST. BONIFACE GENERAL HOSPITAL</NAME>
<ADDR_UNIT_DESIG_ID>UNIT A</ADDR_UNIT_DESIG_ID>
<STREET>409 TACHE AVENUE</STREET>
<CITY>wINNIPEG</CITY>
<POSTAL_ZIP_CODE>R2H2A6</POSTAL_ZIP_CODE>
<EFFECTIVE_FROM_DATE>19700101</EFFECTIVE_FROM_DATE>
<EFFECTIVE_TO_DATE>99991231</EFFECTIVE_TO_DATE>
<FACILITY_GROUP>H</FACILITY_GROUP>
<FACILITY_TEACHING_HOSPITAL>H</FACILITY_TEACHING_HOSPITAL>
</FACILITY>
<FACILITY>
<TRANSACTION_TYPE>01</TRANSACTION_TYPE>
<FACILITY_KEY>1</FACILITY_KEY>
<FACILITY_CODE>00005</FACILITY_CODE>
<NAME>ST. BONIFACE GENERAL HOSPITAL</NAME>
<ADDR_UNIT_DESIG_ID>UNIT A</ADDR_UNIT_DESIG_ID>
<STREET>409 TACHE AVENUE</STREET>
<CITY>wINNIPEG</CITY>
<POSTAL_ZIP_CODE>R2H2A6</POSTAL_ZIP_CODE>
<EFFECTIVE_FROM_DATE>19700101</EFFECTIVE_FROM_DATE>
<EFFECTIVE_TO_DATE>99991231</EFFECTIVE_TO_DATE>
<FACILITY_GROUP>H</FACILITY_GROUP>
</FACILITY>
</CPS_FRS_INTERFACE>
In last record <FACILITY_TEACHING_HOSPITAL> Tag is missing and Simple transformation can't handle this.
can anyone provide the XSLT transformation for this.
Thanks.
‎2012 Dec 17 3:55 PM
Hi Sunny,
Here is a sample XSLT for your XML (you just have to inform the other tags).
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<xsl:strip-space elements="*"/>
<xsl:template match="CPS_FRS_INTERFACE">
<asx:abap version="1.0">
<asx:values>
<CPS_FRS_INTERFACE>
<xsl:for-each select="FACILITY">
<FACILITY>
<TRANSACTION_TYPE>
<xsl:value-of select="TRANSACTION_TYPE" />
</TRANSACTION_TYPE>
<NAME>
<xsl:value-of select="NAME" />
</NAME>
</FACILITY>
</xsl:for-each>
</CPS_FRS_INTERFACE>
</asx:values>
</asx:abap>
</xsl:template>
</xsl:transform>
Regards,
Christian
‎2012 Dec 17 1:59 PM
Hi,
For optional elements in ST, you can make use of
<tt:cond frq="?"> or
<tt:cond check="not-initial(...)">.
Both will work to parse XML, the difference is with the creation of XML.
The first option will generate an empty element, the second option will not generate the element.
Check out the example program attached.
Kind Regards,
Jeroen