When we create the sample scenario given in forum u2018B1PO2B1SOu2019 using B18.8 and try to send a Purchase Order to Headquarters it gives the following error
com.sap.b1i.xcellerator.XcelleratorException: XCE001 Nested exception: com.sap.b1i.bizprocessor.BizProcException: BPE001 Nested exception: com.sap.b1i.xcellerator.XcelleratorException: XCE001 Nested exception: com.sap.b1i.xcellerator.XcelleratorException: XCE001 Nested exception: java.lang.RuntimeException: Invoke of: GetBusinessObjectFromXML Source: SAPbobsCOM.Company.88.0 Description: Invalid XML file
I am pasting the XSL file below. It would be really nice if someone could help me out on this one.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:b1ie="urn:com.sap.b1i.sim:b1ievent" xmlns:b1im="urn:com.sap.b1i.sim:b1imessage" xmlns:bfa="urn:com.sap.b1i.bizprocessor:bizatoms" xmlns:jdbc="urn:com.sap.b1i.adapter:jdbcadapter" xmlns:rfc="urn:sap-com:document:sap:rfc:functions" xmlns:sim="urn:com.sap.b1i.sim:entity" xmlns:targetxsl="http://TargetXSLPrefixAlias" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" bfa:force="" sim:force="" b1im:force="" jdbc:force="" rfc:force="" b1ie:force="">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:param name="b1i.s.stp.Country" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Country'][1]/@Value"/>
<xsl:param name="b1i.s.stp.CompanyLanguage" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Company Language'][1]/@Value"/>
<xsl:param name="b1i.s.stp.ForeignLanguage" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Foreign Language'][1]/@Value"/>
<xsl:param name="b1i.s.stp.CompanyCode" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Company Code'][1]/@Value"/>
<xsl:param name="b1i.s.stp.CreditControlArea" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Credit Control Area'][1]/@Value"/>
<xsl:param name="b1i.s.stp.SalesOrganization" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Sales Organization'][1]/@Value"/>
<xsl:param name="b1i.s.stp.DistributionChannel" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Distribution Channel'][1]/@Value"/>
<xsl:param name="b1i.s.stp.Division" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Division'][1]/@Value"/>
<xsl:param name="b1i.s.stp.Plant" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Plant'][1]/@Value"/>
<xsl:param name="b1i.s.stp.SubsidiariesCustomerNumber" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Subsidiaries Customer Number'][1]/@Value"/>
<xsl:param name="b1i.s.stp.SubCustomerNumberInHQ" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Sub Customer Number In HQ'][1]/@Value"/>
<xsl:param name="b1i.s.stp.HQVenderNumberInSub" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='HQ Vender Number In Sub'][1]/@Value"/>
<xsl:param name="b1i.s.stp.SubsidiaryIdentifier" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Subsidiary Identifier'][1]/@Value"/>
<xsl:param name="b1i.s.stp.ManagementReportStartTime" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Management Report Start Time'][1]/@Value"/>
<xsl:param name="b1i.r.stp.Country" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Country'][2]/@Value"/>
<xsl:param name="b1i.r.stp.CompanyLanguage" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Company Language'][2]/@Value"/>
<xsl:param name="b1i.r.stp.ForeignLanguage" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Foreign Language'][2]/@Value"/>
<xsl:param name="b1i.r.stp.CompanyCode" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Company Code'][2]/@Value"/>
<xsl:param name="b1i.r.stp.CreditControlArea" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Credit Control Area'][2]/@Value"/>
<xsl:param name="b1i.r.stp.SalesOrganization" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Sales Organization'][2]/@Value"/>
<xsl:param name="b1i.r.stp.DistributionChannel" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Distribution Channel'][2]/@Value"/>
<xsl:param name="b1i.r.stp.Division" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Division'][2]/@Value"/>
<xsl:param name="b1i.r.stp.Plant" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Plant'][2]/@Value"/>
<xsl:param name="b1i.r.stp.SubsidiariesCustomerNumber" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Subsidiaries Customer Number'][2]/@Value"/>
<xsl:param name="b1i.r.stp.SubCustomerNumberInHQ" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Sub Customer Number In HQ'][2]/@Value"/>
<xsl:param name="b1i.r.stp.HQVenderNumberInSub" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='HQ Vender Number In Sub'][2]/@Value"/>
<xsl:param name="b1i.r.stp.SubsidiaryIdentifier" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Subsidiary Identifier'][2]/@Value"/>
<xsl:param name="b1i.r.stp.ManagementReportStartTime" select="/b1im:B1IMessage/b1im:Header/b1im:System/sim:PropertyList/sim:Property[@Key='Management Report Start Time'][2]/@Value"/>
<xsl:param name="TargetDocType" select="/b1im:B1IMessage/b1im:Header/b1im:System/*[local-name()='PropertyList']/*[local-name()='Property'and @Key='TargetDocType']/@Value"/>
<xsl:param name="BillTo" select="/b1im:B1IMessage/b1im:Header/b1im:System/*[local-name()='PropertyList']/*[local-name()='Property'and @Key='BillTo']/@Value"/>
<xsl:variable name="b1i.msg.SndSysId" select="/b1im:B1IMessage/b1im:Header/b1im:Sender/sim:SysId/@Id"/>
<xsl:variable name="b1i.msg.SndSysType" select="/b1im:B1IMessage/b1im:Header/b1im:Sender/sim:SysId/@SysTypeId"/>
<xsl:variable name="b1i.msg.SndObjectId" select="/b1im:B1IMessage/b1im:Header/b1im:Sender/sim:ObjectType/@Id"/>
<xsl:variable name="b1i.msg.RcvSysId" select="/b1im:B1IMessage/b1im:Header/b1im:Receiver/sim:SysId/@Id"/>
<xsl:variable name="b1i.msg.RcvSysType" select="/b1im:B1IMessage/b1im:Header/b1im:Receiver/sim:SysId/@SysTypeId"/>
<xsl:variable name="b1i.msg.RcvObjectId" select="/b1im:B1IMessage/b1im:Header/b1im:Receiver/sim:ObjectType/@Id"/>
<xsl:variable name="b1i.msg.Task" select="/b1im:B1IMessage/b1im:Header/b1im:System/@Task"/>
<xsl:variable name="b1.task" select="/b1im:B1IMessage/b1im:Body/b1im:Payload[@ObjectRole='A']/b1ie:B1IEvent/@Task"/>
<xsl:template match="/">
<xsl:apply-templates select="b1im:B1IMessage/b1im:Body/b1im:Payload[./@ObjectTypeId='Z.B1.8.8_MyPO']"/>
</xsl:template>
<xsl:template match="b1im:B1IMessage/b1im:Body/b1im:Payload[./@ObjectTypeId='Z.B1.8.8_MyPO']">
<xsl:variable name="RefNo" select="BOM/BO/Documents/row/NumAtCard"/>
<BOM>
<BO>
<Adminfo>
<Object>
<xsl:choose>
<xsl:when test="$TargetDocType='Draft'">112</xsl:when>
<xsl:otherwise>17</xsl:otherwise>
</xsl:choose>
</Object>
<xsl:if test="$b1.task='U'">
<QueryParams>
<DocEntry>
<xsl:value-of select="$RefNo"/>
</DocEntry>
</QueryParams>
</xsl:if>
<Version>2</Version>
</Adminfo>
<Documents>
<xsl:for-each select="BOM/BO/Documents/row">
<row>
<xsl:if test="$b1.task='I'">
<DocObjectCode>17</DocObjectCode>
<CardCode>
<xsl:value-of select="$b1i.s.stp.SubCustomerNumberInHQ"/>
</CardCode>
</xsl:if>
<DocDueDate>
<xsl:value-of select="DocDueDate"/>
</DocDueDate>
<NumAtCard>
<xsl:value-of select="DocEntry"/>
</NumAtCard>
<Comments>Based on Subsidiary PO#<xsl.value-of select="DocNum"/>.</Comments>
<Address>
<xsl:choose>
<xsl:when test="$BillTo='Customer'">
<xsl:value-of select="//b1im:Payload[@ObjectTypeId='B1.8.8_SO' and@ObjectRole='SA']/BOM/BO/Documents/row/Address"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="Address"/>
</xsl:otherwise>
</xsl:choose>
</Address>
</row>
</xsl:for-each>
</Documents>
<Document_Lines>
<xsl:for-each select="BOM/BO/Document_Lines/row">
<row>
<ItemCode>
<xsl:value-of select="ItemCode"/>
</ItemCode>
<Quantity>
<xsl:value-of select="Quantity"/>
</Quantity>
</row>
</xsl:for-each>
</Document_Lines>
</BO>
</BOM>
</xsl:template>
</xsl:stylesheet>
Edited by: Ajialukkal on Jan 13, 2011 1:14 PM