‎2010 Nov 24 9:36 AM
In the below XML code how to make the <CUSTOMERDETAILS> node as Optional node.
If suppose in the input XML file if <CUSTOMERDETAILS> node is not available,I want to make the node as optional one.
As of now system is getting dump, becuase node data <CUSTOMERDETAILS> is not availbale in the XML file.
uFEFF<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates" xmlns:ddic="http://www.sap.com/abapxml/types/dictionary" xmlns:def="http://www.sap.com/abapxml/types/defined">
<tt:root name="IT_TRANSACTION" type="ddic:ZTABTRANSACTION"/>
<tt:template>
<IT_TRANSACTION>
<tt:loop ref=".IT_TRANSACTION" name="a">
<item>
<RETAILSTOREID tt:value-ref="RETAILSTOREID"/>
<BUSINESSDAYDATE tt:value-ref="BUSINESSDAYDATE"/>
<TRANSTYPECODE tt:value-ref="TRANSTYPECODE"/>
<WORKSTATIONID tt:value-ref="WORKSTATIONID"/>
<TRANSNUMBER tt:value-ref="TRANSNUMBER"/>
<BEGINTIMESTAMP tt:value-ref="BEGINTIMESTAMP"/>
<ENDTIMESTAMP tt:value-ref="ENDTIMESTAMP"/>
<OPERATORQUAL tt:value-ref="OPERATORQUAL"/>
<OPERATORID tt:value-ref="OPERATORID"/>
<CUSTOMERDETAILS>
<tt:loop ref="$a.CUSTOMERDETAILS">
<item>
<CUSTOMERINFOTYPE tt:value-ref="CUSTOMERINFOTYPE"/>
<DATAELEMENTID tt:value-ref="DATAELEMENTID"/>
<DATAELEMENTVALUE tt:value-ref="DATAELEMENTVALUE"/>
</item>
</tt:loop>
</CUSTOMERDETAILS>
<RETAILLINEITEM>
<tt:loop ref="$a.RETAILLINEITEM" name="b">
<item>
<RETAILNUMBER tt:value-ref="RETAILNUMBER"/>
<RETAILTYPECODE tt:value-ref="RETAILTYPECODE"/>
<ITEMIDQUALIFIER tt:value-ref="ITEMIDQUALIFIER"/>
<ITEMID tt:value-ref="ITEMID"/>
<RETAILQUANTITY tt:value-ref="RETAILQUANTITY"/>
<SALESAMOUNT tt:value-ref="SALESAMOUNT"/>
<ENTRYMETHODCODE tt:value-ref="ENTRYMETHODCODE"/>
<EXTENSIONS>
<tt:loop ref="$b.EXTENSIONS">
<item>
<FIELDGROUP tt:value-ref="FIELDGROUP"/>
<FIELDNAME tt:value-ref="FIELDNAME"/>
<FIELDVALUE tt:value-ref="FIELDVALUE"/>
</item>
</tt:loop>
</EXTENSIONS>
</item>
</tt:loop>
</RETAILLINEITEM>
<TAX>
<tt:loop ref="$a.TAX">
<item>
<TAXNUMBER tt:value-ref="TAXNUMBER"/>
<TAXTYPECODE tt:value-ref="TAXTYPECODE"/>
<TAXAMOUNT tt:value-ref="TAXAMOUNT"/>
</item>
</tt:loop>
</TAX>
<EXTENSIONS>
<tt:loop ref="$a.EXTENSIONS">
<item>
<FIELDGROUP tt:value-ref="FIELDGROUP"/>
<FIELDNAME tt:value-ref="FIELDNAME"/>
<FIELDVALUE tt:value-ref="FIELDVALUE"/>
</item>
</tt:loop>
</EXTENSIONS>
</item>
</tt:loop>
</IT_TRANSACTION>
</tt:template>
</tt:transform>Edited by: Thomas Zloch on Nov 24, 2010 12:38 PM - please use code tags also for XML structures
‎2010 Nov 24 11:43 AM
You might be able to solve this using conditional transformations, please see SAP online help for simple transformations:
http://help.sap.com/saphelp_nw04/helpdata/en/0c/402040abf2c442e10000000a1550b0/frameset.htm
Please let us know the result.
Thomas