This is my XSLT. I made only a few modifications to a part of the XSLT that was originally created using graphic mapping. However, only the header is being generated, and the lines are not included. How can I resolve this issue? To include multiple order lines under a single customer order number, would it be better to set the generated document to single or multi? Currently, it is set to multi. Thank you.
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="2.0" xmlns="">schema.infor.com/.../2" xmlns:expath-zip="">http://expath.org/ns/zip" xmlns:fn="">www.w3.org/.../xpath-functions" xmlns:dns="">schema.infor.com/.../2" xmlns:saxon="">http://saxon.sf.net/" xmlns:expath-file="">http://expath.org/ns/file" xmlns:xsi="">www.w3.org/.../XMLSchema-instance" xmlns:xsl="">www.w3.org/.../Transform" xmlns:exslt-random="">http://exslt.org/random" xmlns:exslt-common="">http://exslt.org/common" xmlns:exslt-math="">http://exslt.org/math" xmlns:xs="">www.w3.org/.../XMLSchema" xmlns:math="">www.w3.org/.../math" xmlns:map="">www.w3.org/.../map" xmlns:infor="">http://infor.com/infor-custom" exclude-result-prefixes="xs xsl fn expath-file expath-zip exslt-common exslt-math exslt-random map math saxon xsi "> <xsl:output method="xml" encoding="UTF-8" indent="no" byte-order-mark="no"/> <xsl:strip-space elements="*"/> <xsl:template match="/"> <xsl:if test="/*:SyncIBCT_SO"> <xsl:element name="ProcessSalesOrder"> <xsl:namespace name="xs" select="'">www.w3.org/.../> <xsl:if test="/*:SyncIBCT_SO/@languageCode"> <xsl:attribute name="languageCode"> <xsl:value-of select="/*:SyncIBCT_SO/@languageCode"/> </xsl:attribute> </xsl:if> <xsl:if test="/*:SyncIBCT_SO/@releaseID"> <xsl:attribute name="releaseID"> <xsl:value-of select="/*:SyncIBCT_SO/@releaseID"/> </xsl:attribute> </xsl:if> <xsl:if test="/*:SyncIBCT_SO/@systemEnvironmentCode"> <xsl:attribute name="systemEnvironmentCode"> <xsl:value-of select="/*:SyncIBCT_SO/@systemEnvironmentCode"/> </xsl:attribute> </xsl:if> <xsl:if test="/*:SyncIBCT_SO/@versionID"> <xsl:attribute name="versionID"> <xsl:value-of select="/*:SyncIBCT_SO/@versionID"/> </xsl:attribute> </xsl:if> <xsl:copy-of select="/*:SyncIBCT_SO/*:ApplicationArea" copy-namespaces="no" /> <xsl:if test="/*:SyncIBCT_SO/*:DataArea"> <xsl:element name="DataArea"> <xsl:element name="Process"> <xsl:element name="AccountingEntityID"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:AccountingEntity)"/> </xsl:element> <xsl:element name="LocationID"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:ERPandSOfficeLocation)"/> </xsl:element> <xsl:element name="ActionCriteria"> <xsl:element name="ActionExpression"> <xsl:attribute name="actionCode"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:ActionCode)"/> </xsl:attribute> </xsl:element> </xsl:element> </xsl:element> <xsl:element name="SalesOrder"> <xsl:element name="SalesOrderHeader"> <xsl:element name="DocumentID"> <xsl:element name="ID"> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:ERPandSOfficeLocation"> <xsl:attribute name="location"> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:ERPandSOfficeLocation/text()"/> </xsl:attribute> </xsl:if> </xsl:element> </xsl:element> <xsl:element name="AlternateDocumentID"> <xsl:element name="ID"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:CustomerOrder)"/> </xsl:element> </xsl:element> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:OrderDateTime"> <xsl:element name="DocumentDateTime"> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:OrderDateTime/text()"/> </xsl:element> </xsl:if> <xsl:element name="CustomerParty"> <xsl:element name="PartyIDs"> <xsl:for-each select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:CustomerID"> <xsl:element name="ID"> <xsl:value-of select="infor:cast-to-normalizedstring(.)"/> </xsl:element> </xsl:for-each> </xsl:element> </xsl:element> <xsl:element name="SupplierParty"> <xsl:element name="PartyIDs"> <xsl:for-each select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:ERPandSOfficeLocation"> <xsl:element name="ID"> <xsl:value-of select="infor:cast-to-normalizedstring(.)"/> </xsl:element> </xsl:for-each> </xsl:element> <xsl:element name="Location"> <xsl:attribute name="type"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:LocationType)"/> </xsl:attribute> <xsl:for-each select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:ERPandSOfficeLocation"> <xsl:element name="ID"> <xsl:value-of select="infor:cast-to-normalizedstring(.)"/> </xsl:element> </xsl:for-each> </xsl:element> </xsl:element> <xsl:element name="DistributedCharge"> <xsl:element name="Calculation"> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RateNumeric"> <xsl:element name="RateNumeric"> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RateNumeric/text()"/> </xsl:element> </xsl:if> </xsl:element> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RateNumeric"> <xsl:element name="UnitAdjustmentAmount"> <xsl:attribute name="currencyID"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:CurrencyID)"/> </xsl:attribute> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RateNumeric/text()"/> </xsl:element> </xsl:if> <xsl:for-each select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RateNumeric"> <xsl:element name="UnitAdjustmentBaseAmount"> <xsl:attribute name="currencyID"> <xsl:value-of select="infor:cast-to-normalizedstring(ancestor::node()[1]/*:CurrencyID)"/> </xsl:attribute> <xsl:value-of select="./text()"/> </xsl:element> </xsl:for-each> <xsl:for-each select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RateNumeric"> <xsl:element name="UnitAdjustmentReportAmount"> <xsl:attribute name="currencyID"> <xsl:value-of select="infor:cast-to-normalizedstring(ancestor::node()[1]/*:CurrencyID)"/> </xsl:attribute> <xsl:value-of select="./text()"/> </xsl:element> </xsl:for-each> <xsl:element name="CalculationMethodCode"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:CalculationMethods)"/> </xsl:element> </xsl:element> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:PlannedDeliveryDate"> <xsl:element name="RequestedShipDateTime"> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:PlannedDeliveryDate/text()"/> </xsl:element> </xsl:if> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RequiredDeliveryDateTime"> <xsl:element name="RequiredDeliveryDateTime"> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RequiredDeliveryDateTime/text()"/> </xsl:element> </xsl:if> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:PlannedDeliveryDate"> <xsl:element name="PromisedShipDateTime"> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:PlannedDeliveryDate/text()"/> </xsl:element> </xsl:if> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RequiredDeliveryDateTime"> <xsl:element name="PromisedDeliveryDateTime"> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RequiredDeliveryDateTime/text()"/> </xsl:element> </xsl:if> <xsl:element name="UserArea"> <xsl:element name="Property"> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:NameValue"> <xsl:element name="NameValue"> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:NameValueType"> <xsl:attribute name="type"> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:NameValueType/text()"/> </xsl:attribute> </xsl:if> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:NameValueName"> <xsl:attribute name="name"> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:NameValueName/text()"/> </xsl:attribute> </xsl:if> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:NameValue/text()"/> </xsl:element> </xsl:if> </xsl:element> </xsl:element> <xsl:element name="Classification"> <xsl:element name="Codes"> <xsl:for-each select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:Classification"> <xsl:element name="Code"> <xsl:value-of select="infor:cast-to-normalizedstring(.)"/> </xsl:element> </xsl:for-each> </xsl:element> </xsl:element> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:OrderDateTime"> <xsl:element name="OrderDateTime"> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:OrderDateTime/text()"/> </xsl:element> </xsl:if> </xsl:element> <xsl:for-each select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:SalesOrderLine"> <xsl:element name="SalesOrderLine"> <xsl:if test="*:LineNumber"> <xsl:element name="LineNumber"> <xsl:value-of select="*:LineNumber/text()"/> </xsl:element> </xsl:if> <xsl:element name="AlternateLineNumber"> <xsl:value-of select="infor:cast-to-normalizedstring(.)"/> </xsl:element> <xsl:element name="Item"> <xsl:element name="ItemID"> <xsl:element name="ID"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:ItemID)"/> </xsl:element> </xsl:element> <xsl:element name="Classification"> <xsl:element name="Codes"> <xsl:for-each select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:Classification"> <xsl:element name="Code"> <xsl:value-of select="infor:cast-to-normalizedstring(.)"/> </xsl:element> </xsl:for-each> </xsl:element> </xsl:element> </xsl:element> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:Quantity"> <xsl:element name="Quantity"> <xsl:attribute name="unitCode"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:QuantityUnit)"/> </xsl:attribute> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:Quantity/text()"/> </xsl:element> </xsl:if> <xsl:element name="UnitPrice"> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:Price"> <xsl:element name="Amount"> <xsl:attribute name="currencyID"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:CurrencyID)"/> </xsl:attribute> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:Price/text()"/> </xsl:element> </xsl:if> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:Price"> <xsl:element name="BaseAmount"> <xsl:attribute name="currencyID"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:CurrencyID)"/> </xsl:attribute> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:Price/text()"/> </xsl:element> </xsl:if> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:UnitPriceperQuantity"> <xsl:element name="PerQuantity"> <xsl:attribute name="unitCode"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:QuantityUnit)"/> </xsl:attribute> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:UnitPriceperQuantity/text()"/> </xsl:element> </xsl:if> </xsl:element> <xsl:element name="DistributedCharge"> <xsl:element name="Calculation"> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RateNumeric"> <xsl:element name="RateNumeric"> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RateNumeric/text()"/> </xsl:element> </xsl:if> </xsl:element> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RateNumeric"> <xsl:element name="UnitAdjustmentAmount"> <xsl:attribute name="currencyID"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:CurrencyID)"/> </xsl:attribute> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RateNumeric/text()"/> </xsl:element> </xsl:if> <xsl:for-each select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RateNumeric"> <xsl:element name="UnitAdjustmentBaseAmount"> <xsl:attribute name="currencyID"> <xsl:value-of select="infor:cast-to-normalizedstring(ancestor::node()[1]/*:CurrencyID)"/> </xsl:attribute> <xsl:value-of select="./text()"/> </xsl:element> </xsl:for-each> <xsl:for-each select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:RateNumeric"> <xsl:element name="UnitAdjustmentReportAmount"> <xsl:attribute name="currencyID"> <xsl:value-of select="infor:cast-to-normalizedstring(ancestor::node()[1]/*:CurrencyID)"/> </xsl:attribute> <xsl:value-of select="./text()"/> </xsl:element> </xsl:for-each> <xsl:element name="CalculationMethodCode"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:CalculationMethods)"/> </xsl:element> </xsl:element> <xsl:element name="LineSourcing"> <xsl:element name="SupplierParty"> <xsl:element name="Location"> <xsl:element name="UserArea"> <xsl:element name="Property"> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:NameValue"> <xsl:element name="NameValue"> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:NameValueType"> <xsl:attribute name="type"> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:NameValueType/text()"/> </xsl:attribute> </xsl:if> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:NameValueName"> <xsl:attribute name="name"> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:NameValueName/text()"/> </xsl:attribute> </xsl:if> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:NameValue/text()"/> </xsl:element> </xsl:if> </xsl:element> </xsl:element> </xsl:element> </xsl:element> </xsl:element> <xsl:element name="PricingAmount"> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:AmountPrice"> <xsl:element name="UnitBaseAmount"> <xsl:attribute name="currencyID"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:CurrencyID)"/> </xsl:attribute> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:AmountPrice/text()"/> </xsl:element> </xsl:if> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:AmountPrice"> <xsl:element name="UnitBaseBaseAmount"> <xsl:attribute name="currencyID"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:CurrencyID)"/> </xsl:attribute> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:AmountPrice/text()"/> </xsl:element> </xsl:if> <xsl:if test="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:AmountPrice"> <xsl:element name="UnitBaseReportAmount"> <xsl:attribute name="currencyID"> <xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:CurrencyID)"/> </xsl:attribute> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/*:IBCT_SO/*:AmountPrice/text()"/> </xsl:element> </xsl:if> </xsl:element> </xsl:element> </xsl:for-each> </xsl:element> <xsl:value-of select="/*:SyncIBCT_SO/*:DataArea/text()"/> </xsl:element> </xsl:if> <xsl:value-of select="/*:SyncIBCT_SO/text()"/> </xsl:element> </xsl:if> </xsl:template> <xsl:function name="infor:cast-to-normalizedstring"> <xsl:param name="input"/> <xsl:value-of select="fn:translate(fn:string($input),'

	', '   ')"/> </xsl:function></xsl:stylesheet>