SAP CPI xslt mapping: from examples how to access property values in cpi
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:cpi="http://sap.com/it/" exclude-result-prefixes="cpi" version="2.0">
<!-- include exchange parameter -->
<xsl:param name="exchange"/>
<!-- define property quantity -->
<xsl:param name="quantity"/>
<!-- define header orderid -->
<xsl:param name="orderid"/>
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@* | node()">
<xsl:apply-templates select="@* | node()"/>
</xsl:template>
<xsl:template match="/">
<!-- set headers -->
<xsl:value-of select="cpi:setHeader($exchange, 'context', 'ModelingBasics-HeaderPropertiesInXSLT')"/>
<xsl:value-of select="cpi:setHeader($exchange, 'content-type', 'application/xml')"/>
<xsl:element name="PurchaseOrder">
<xsl:element name="PurchaseOrderNumber">
<!-- use header orderid -->
<xsl:value-of select="$orderid"/>
</xsl:element>
<xsl:element name="Items">
<xsl:for-each select="/Products/Product">
<xsl:call-template name="Order_Items"/>
</xsl:for-each>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template name="Order_Items">
<xsl:element name="Item">
<xsl:element name="ProductId">
<xsl:value-of select="./ProductId"/>
</xsl:element>
<xsl:element name="ProductName">
<xsl:value-of select="./Name"/>
</xsl:element>
<xsl:element name="Category">
<xsl:value-of select="./Category"/>
</xsl:element>
<xsl:element name="Quantity">
<!-- use property quantity -->
<xsl:value-of select="$quantity"/>
</xsl:element>
<xsl:element name="Price">
<xsl:value-of select="./Price * $quantity"/>
</xsl:element>
<xsl:element name="Currency">
<xsl:value-of select="./CurrencyCode"/>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
--------------
propertires
productID HT-1082
quantity 2
SAP_AuthHeaderName Proxy-Authorization
input
<Products>
<Product>
<Category>Scanners</Category>
<WeightUnit>KG</WeightUnit>
<ProductId>HT-1082</ProductId>
<DimensionUnit>m</DimensionUnit>
<DimensionHeight>0.1200</DimensionHeight>
<Weight>3.200</Weight>
<Name>Jet Scan Professional</Name>
<ShortDescription>Flatbed scanner - Letter - 2400 dpi x 2400 dpi - 216 x 297 mm - Hi-Speed USB - Bluetooth Ver. 1.2</ShortDescription>
<CurrencyCode>EUR</CurrencyCode>
<DimensionWidth>0.3300</DimensionWidth>
<SupplierId>100000048</SupplierId>
<LongDescription>Flatbed scanner - Letter - 2400 dpi x 2400 dpi - 216 x 297 mm - Hi-Speed USB - Bluetooth Ver. 1.2</LongDescription>
<Price>169.000</Price>
<CategoryName>Scanners</CategoryName>
<PictureUrl>HT-1082.jpg</PictureUrl>
<DimensionDepth>0.4100</DimensionDepth>
<QuantityUnit>EA</QuantityUnit>
</Product>
</Products>
output:
<?xml version="1.0" encoding="UTF-8"?>
<PurchaseOrder>
<PurchaseOrderNumber>8216000002</PurchaseOrderNumber>
<Items>
<Item>
<ProductId>HT-1082</ProductId>
<ProductName>Jet Scan Professional</ProductName>
<Category>Scanners</Category>
<Quantity>2</Quantity>
<Price>338</Price>
<Currency>EUR</Currency>
</Item>
</Items>
</PurchaseOrder>