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

XML Optional node

Former Member
0 Likes
409

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

1 REPLY 1
Read only

ThomasZloch
Active Contributor
0 Likes
331

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