cancel
Showing results for 
Search instead for 
Did you mean: 

B1if Multiple Receivers for a B1 Object Call when Outbound = void

Former Member
0 Kudos

Dear all,

if I define SAP Business One as Outbound-System in a B1if Scenario, I can talk to multiple Receiver Systems (multiple SAP Business One Companies). For example I can create a new Business Partner in 5 different SAP Business One Companies.

In some cases however, my Outbound has to be void (for example in case of having a Synchronous Webservice Call as Inbound, the Outbound would be void). So I do the insert/update action DURING the Processing Phase, via a B1 Object Call. Inside the B1 Object Call I can define my Sysld (SAP B1 Company SLD).

My questions is what If I would like to create a record in more than one SAP B1 Company during the Processing via a B1 Object Call. How can I define more than 1 Sysld inside a B1 Object Call? Is this possible or would I need to create multiple B1 Object Call Atoms?

Thanks, David

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,



Finally it worked by retrieving the SysId* from a global table in a predecessor transform atom at run time when Outbound = void.


In the predecessor transform atom?.xsl

            <xsl:variable name="SID"select="document('/com.sap.b1i.vplatform.scenarios.design/vPac.Z.xxx/vTbl.xxx.xml')"/>


            <xsl:templatematch="/vpf:Msg/vpf:Body/vpf:Payload[./@Role=&apos;S&apos;]">

<!--<xsl:template name="transform"/>-->

<SysID>

<xsl:value-ofselect="$SID/table/row[./col[1]=$msg/xxx/Reveiver]/col[2]"/>

</SysID>

</xsl:template>


B1 Object Call:  SysId*: /vpf:Msg/vpf:Body/vpf:Payload[./@id='atom3']/SysID


This is really inconvenient compared with the old B1iSN8.8 where we can create multiple scenario instances instead

let's assume that if there are 10 receivers to be called in the Call Object atom at run time(it depends on the final receiver SysId), and if we want to stop one of receivers in product environment, how to do that?

as we know, in the old B1iSN8.8, We can just deactivate the instance that we want to stop.

Why it becomes so inconvenient when it comes to the new B1iSN9.0?


Jim

Former Member
0 Kudos

Hi,

I got answer from SAP support, for this case, we can created two sperated steps by using the "Put to internal queue" atom or use the call scenario step instead.

Step1. HTTP Sync-->Put To Internal Queue-->Void

Step2. Internal Queue-->B1 Object

Best Regards

Jim.Jin

Former Member
0 Kudos

Hi David,

I have the exactly same issue with you, I still haven't received any feedback from SAP yet.

I am trying to retrieve the SysId from a global table.


I think it would be extremely valuable to hear what SAP have to say about this.

BR

Jim