Reputation: 3
sample payload for testing :
<n0:MT_SalesOrder_Resp_SAP xmlns:n0="http://eaton.com/pi/api/SalesOrderInquiry" xmlns:prx="urn:sap.com:proxy:D47:/1SAI/TASDA80D4E368BF1C227C5D:740" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<salesorders>
<salesorder>
<orderNumber>0213961849</orderNumber>
<addresses>
<address>
<addressIdentifier>AG</addressIdentifier>
<documentNumber>0213961849</documentNumber>
<lineNumber>000000</lineNumber>
<number>0000320101</number>
<name>Shenzhen Diwei Video Co., Ltd.U</name>
</address>
<address>
<addressIdentifier>RE</addressIdentifier>
<documentNumber>0213961849</documentNumber>
<lineNumber>000000</lineNumber>
<number>0000320101</number>
<name>Shenzhen Diwei Video Co., Ltd.U</name>
</address>
<address>
<addressIdentifier>RG</addressIdentifier>
<documentNumber>0213961849</documentNumber>
<lineNumber>000000</lineNumber>
<number>0000320101</number>
<name>Shenzhen Diwei Video Co., Ltd.U</name>
</address>
<address>
<addressIdentifier>WE</addressIdentifier>
<documentNumber>0213961849</documentNumber>
<lineNumber>000000</lineNumber>
<number>0000320101</number>
<name>Shenzhen Diwei Video Co., Ltd.U</name>
</address>
<address>
<addressIdentifier>WE</addressIdentifier>
<documentNumber>0213961849</documentNumber>
<lineNumber>000000</lineNumber>
<number>0000320101</number>
<name>深圳迪威影像有限公司XXXX</name>
</address>
<address>
<addressIdentifier>Z5</addressIdentifier>
<documentNumber>0213961849</documentNumber>
<lineNumber>000000</lineNumber>
<number>0900000740</number>
<name>张三</name>
</address>
<address>
<addressIdentifier>PLANT</addressIdentifier>
<documentNumber>0213961849</documentNumber>
<lineNumber>000010</lineNumber>
<number>5567</number>
<name>BA1 Trade, SZ (PQ)</name>
</address>
<address>
<addressIdentifier>SHIPFROM</addressIdentifier>
<documentNumber>0213961849</documentNumber>
<lineNumber>000010</lineNumber>
<number>5567</number>
<name>SANTAK ELECTRONIC (SHEN ZHEN) CO.,LTD</name>
</address>
<address>
<addressIdentifier>PLANT</addressIdentifier>
<documentNumber>0213961849</documentNumber>
<lineNumber>000020</lineNumber>
<number>5567</number>
<name>BA1 Trade, SZ (PQ)</name>
</address>
<address>
<documentNumber>0213961849</documentNumber>
<lineNumber>000020</lineNumber>
</address>
<address>
<addressIdentifier>PLANT</addressIdentifier>
<documentNumber>0213961849</documentNumber>
<lineNumber>000030</lineNumber>
<number>5567</number>
<name>BA1 Trade, SZ (PQ)</name>
</address>
</addresses>
</salesorder>
</salesorders>
</n0:MT_SalesOrder_Resp_SAP>
xslt code i am using currently kindly requesting to provide some logic to repeat shiptoIdetefier as one time and shipmet address will be multiple times.
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://eaton.com/pi/api/SalesOrderInquiry">
<xsl:template match="/">
<ns0:MT_SalesOrder_Resp_API>
<salesorders>
<xsl:for-each select="/ns0:MT_SalesOrder_Resp_SAP/salesorders/salesorder">
<xsl:if test="orderNumber">
<salesorder>
<orderNumber>
<xsl:value-of select="orderNumber"/>
</orderNumber>
<xsl:variable name="orderNo">
<xsl:value-of select="orderNumber"/>
</xsl:variable>
<xsl:choose>
<xsl:when test='orderDate !="" and orderDate != "00000000"'>
<orderDate>
<xsl:value-of select='concat (substring (orderDate, 1, 4 ), "-", substring (orderDate, 5, 2 ), "-", substring (orderDate, 7, 2 ),"T00:00:00.000")'/>
</orderDate>
</xsl:when>
<xsl:otherwise>
<orderDate/>
</xsl:otherwise>
</xsl:choose>
<xsl:for-each select="addresses/address">
<xsl:if test='addressIdentifier="AG" and lineNumber="000000"'>
<customerNumber>
<xsl:value-of select="number"/>
</customerNumber>
<customerAddress>
<name>
<xsl:value-of select="name"/>
</name>
</customerAddress>
</xsl:if>
<xsl:if test='addressIdentifier="RE" and lineNumber="000000"'>
<billToIdentifier>
<xsl:value-of select="number"/>
</billToIdentifier>
<billingAddress>
<name>
<xsl:value-of select="name"/>
</name>
</billingAddress>
</xsl:if>
<xsl:if test='addressIdentifier="WE" and lineNumber="000000"'>
<shipToIdentifier>
<xsl:value-of select="number"/>
</shipToIdentifier>
<shipmentAddress>
<name>
<xsl:value-of select="name"/>
</name>
</shipmentAddress>
</xsl:if>
<xsl:if test='addressIdentifier="Z5" and lineNumber="000000"'>
<salesToEnquery>
<xsl:value-of select="number"/>
</salesToEnquery>
<salesEnquery>
<name>
<xsl:value-of select="name"/>
</name>
</salesEnquery>
</xsl:if>
<xsl:if test='addressIdentifier="AP" and lineNumber="000000"'>
<ShipToContact>
<name>
<xsl:value-of select="name"/>
</name>
</ShipToContact>
</xsl:if>
</xsl:for-each>
</salesorder>
</xsl:if>
</xsl:for-each>
</salesorders>
</ns0:MT_SalesOrder_Resp_API>
</xsl:template>
</xsl:stylesheet>
i am expecting shipToIdentifier to be repeated only once in the target but it is coming two times along with the shipment address because the shipToIdentifier is same for both shipment address:
<shipToIdentifier>0000320101</shipToIdentifier>
<shipmentAddress>
<name>Shenzhen Diwei Video Co., Ltd.U</name>
<city>Shenzhen</city>
</shipmentAddress>
<shipToIdentifier>0000320101</shipToIdentifier>
<shipmentAddress>
<name>深圳迪威影像有限公司XXXX</name>
<city>深圳南</city>
</shipmentAddress>
Upvotes: 0
Views: 45