Hello, I’m a new consultant, and I’ve been with the company for only a month. I’ve been assigned by my supervisor to create a SalesOrder in LN using BODs. I've been going through the developer documentation and tutorials, such as "Importing CSV Files via EC" (omitted), and have tried to implement it. However, despite not receiving any error messages, I can’t see any SalesOrder data created in LN. Could you please help?
Here are the steps I followed:
- Created a schema for the CustomBOD object from the CSV using FileTemplate.
- Used Document Flow to read the CSV file from the shared folder and generate Sync.CustomBOD.
- Mapped to the OriginalBOD using the Graphic Mapper.
- Connected Document Flow to LN Application.
I suspect the mapping might be the issue, but I’m unsure where to start in fixing it.
Please help me; I just want to go home.



Thank you so much for any guidance you can provide.
<?xml version="1.0" encoding="UTF-8"?>
<!--
Mapping: TESTSO2_1
Description: sync->process
Version: 2
Created by: chorong lee
Created on: 2024-11-01 07:49:01 UTC
Last updated by:
Last updated on:
Input: Sync.CSV_SalesOrder
Output: Process.SalesOrder
Product Version: Infor ION 2024.10.01
XSLT Code Generator: V2
Copyright © 2024 Infor. All rights reserved.
The word and design marks set forth herein are trademarks and/or registered trademarks of Infor and/or its affiliates and subsidiaries.
All rights reserved. All other trademarks listed herein are the property of their respective owners.
www.infor.com
-->
<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="/*:SyncCSV_SalesOrder">
<xsl:element name="ProcessSalesOrder">
<xsl:namespace name="xs" select="'">www.w3.org/.../>
<xsl:if test="/*:SyncCSV_SalesOrder/@languageCode">
<xsl:attribute name="languageCode">
<xsl:value-of select="/*:SyncCSV_SalesOrder/@languageCode"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="/*:SyncCSV_SalesOrder/@releaseID">
<xsl:attribute name="releaseID">
<xsl:value-of select="/*:SyncCSV_SalesOrder/@releaseID"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="/*:SyncCSV_SalesOrder/@systemEnvironmentCode">
<xsl:attribute name="systemEnvironmentCode">
<xsl:value-of select="/*:SyncCSV_SalesOrder/@systemEnvironmentCode"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="/*:SyncCSV_SalesOrder/@versionID">
<xsl:attribute name="versionID">
<xsl:value-of select="/*:SyncCSV_SalesOrder/@versionID"/>
</xsl:attribute>
</xsl:if>
<xsl:copy-of select="/*:SyncCSV_SalesOrder/*:ApplicationArea" copy-namespaces="no" />
<xsl:if test="/*:SyncCSV_SalesOrder/*:DataArea">
<xsl:element name="DataArea">
<xsl:element name="Process">
<xsl:copy-of select="/*:SyncCSV_SalesOrder/*:DataArea/*:Sync/*:TenantID" copy-namespaces="no" />
<xsl:copy-of select="/*:SyncCSV_SalesOrder/*:DataArea/*:Sync/*:AccountingEntityID" copy-namespaces="no" />
<xsl:copy-of select="/*:SyncCSV_SalesOrder/*:DataArea/*:Sync/*:LocationID" copy-namespaces="no" />
<xsl:for-each select="/*:SyncCSV_SalesOrder/*:DataArea/*:Sync/*:ActionCriteria">
<xsl:copy-of select="." copy-namespaces="no" />
</xsl:for-each>
</xsl:element>
<xsl:element name="SalesOrder">
<xsl:element name="SalesOrderHeader">
<xsl:element name="DocumentID">
<xsl:element name="ID">
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:BusinessPartner)"/>
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:OrderType)"/>
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:CustomerOrder)"/>
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Number)"/>
</xsl:element>
</xsl:element>
<xsl:element name="AlternateDocumentID">
<xsl:element name="ID">
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:CustomerOrder)"/>
</xsl:element>
</xsl:element>
<xsl:element name="CustomerParty">
<xsl:element name="PartyIDs">
<xsl:for-each select="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:BusinessPartner">
<xsl:element name="ID">
<xsl:value-of select="infor:cast-to-normalizedstring(.)"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
<xsl:element name="Location">
<xsl:element name="Address">
<xsl:element name="FormatCode">
<xsl:attribute name="listID">
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Address)"/>
</xsl:attribute>
</xsl:element>
<xsl:if test="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Address">
<xsl:element name="BuildingNumber">
<xsl:value-of select="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Address/text()"/>
</xsl:element>
</xsl:if>
<xsl:if test="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Address">
<xsl:element name="StreetName">
<xsl:value-of select="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Address/text()"/>
</xsl:element>
</xsl:if>
<xsl:if test="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Address">
<xsl:element name="Floor">
<xsl:value-of select="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Address/text()"/>
</xsl:element>
</xsl:if>
<xsl:if test="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Address">
<xsl:element name="PostOfficeBox">
<xsl:value-of select="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Address/text()"/>
</xsl:element>
</xsl:if>
<xsl:if test="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Address">
<xsl:element name="CityName">
<xsl:value-of select="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Address/text()"/>
</xsl:element>
</xsl:if>
<xsl:for-each select="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Address">
<xsl:element name="CountrySubDivisionCode">
<xsl:value-of select="infor:cast-to-normalizedstring(.)"/>
</xsl:element>
</xsl:for-each>
<xsl:element name="CountryCode">
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Address)"/>
</xsl:element>
<xsl:element name="PostalCode">
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Address)"/>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:element>
<xsl:element name="SupplierParty">
<xsl:element name="Location">
<xsl:for-each select="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:SalesOffice">
<xsl:element name="ID">
<xsl:value-of select="infor:cast-to-normalizedstring(.)"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:element>
<xsl:element name="ExtendedAmount">
<xsl:attribute name="currencyID">
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Currency)"/>
</xsl:attribute>
</xsl:element>
<xsl:if test="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:PlannedDate">
<xsl:element name="RequestedShipDateTime">
<xsl:value-of select="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:PlannedDate/text()"/>
</xsl:element>
</xsl:if>
<xsl:element name="UserArea">
<xsl:element name="Property">
<xsl:element name="NameValue">
<xsl:if test="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:OrderType">
<xsl:attribute name="type">
<xsl:value-of select="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:OrderType/text()"/>
</xsl:attribute>
</xsl:if>
</xsl:element>
</xsl:element>
</xsl:element>
<xsl:element name="ExtendedPretaxAmount">
<xsl:attribute name="currencyID">
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Currency)"/>
</xsl:attribute>
</xsl:element>
<xsl:element name="SubTotalAmount">
<xsl:attribute name="currencyID">
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Currency)"/>
</xsl:attribute>
</xsl:element>
<xsl:element name="OrderTypeCode">
<xsl:attribute name="listID">
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:OrderType)"/>
</xsl:attribute>
</xsl:element>
<xsl:element name="CurrencyCode">
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Currency)"/>
</xsl:element>
</xsl:element>
<xsl:element name="SalesOrderLine">
<xsl:element name="LineNumber">
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Item)"/>
</xsl:element>
<xsl:element name="Item">
<xsl:element name="ItemID">
<xsl:element name="ID">
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Item)"/>
</xsl:element>
</xsl:element>
<xsl:element name="SerializedLot">
<xsl:element name="Lot">
<xsl:element name="LotIDs">
<xsl:for-each select="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Item">
<xsl:element name="ID">
<xsl:value-of select="infor:cast-to-normalizedstring(.)"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
<xsl:for-each select="/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Item">
<xsl:element name="SerialNumber">
<xsl:value-of select="infor:cast-to-normalizedstring(.)"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:element>
</xsl:element>
<xsl:element name="Quantity">
<xsl:attribute name="unitCode">
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Quantity)"/>
</xsl:attribute>
</xsl:element>
<xsl:element name="SalesOrderSchedule">
<xsl:element name="Quantity">
<xsl:value-of select="infor:cast-to-decimal(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Quantity)"/>
</xsl:element>
</xsl:element>
<xsl:element name="ItemConfiguration">
<xsl:element name="ConfigurationComponent">
<xsl:element name="Item">
<xsl:element name="ItemID">
<xsl:element name="ID">
<xsl:value-of select="infor:cast-to-normalizedstring(/*:SyncCSV_SalesOrder/*:DataArea/*:CSV_SalesOrder/*:Item)"/>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:element>
<xsl:value-of select="/*:SyncCSV_SalesOrder/*:DataArea/text()"/>
</xsl:element>
</xsl:if>
<xsl:value-of select="/*:SyncCSV_SalesOrder/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:function name="infor:cast-to-decimal">
<xsl:param name="decimal-input"/>
<xsl:choose>
<xsl:when test="$decimal-input castable as xs:decimal">
<xsl:value-of select="xs:decimal($decimal-input)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="fn:error(fn:QName('infor.com/errors','incompatible-input'),fn:concat('The input provided ($''',$decimal-input,''') cannot be cast to decimal.'))"/>
</xsl:otherwise>
</xsl:choose>
</xsl:function>
</xsl:stylesheet>