Skip to Content
0

B1if - Is there a possibility to setup transaction time limit

Feb 06 at 02:11 PM

85

avatar image
Former Member

Hi All,

I have a question about long http connection in integration scenarios. Is there a possibility to setup time for scenarios’ timeout? For example – there is a scenario that has http inbound. This scenario has B1 Call atom. If this scenario step last for more than 1minute then the transaction should be cancelled. It’s important because if external system waits for 1 minute and there is no response, it closes connection with timeout error but B1if still process the transaction. In the end B1if adds object in SAP but external system doesn’t know that. It would be great to have a possibility to setup transaction time limit.

Kind Regards,

Szymon Lipnicki

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

2 Answers

avatar image
Former Member
Feb 08 at 09:51 AM
0

Hello Szymon,

I think that a transaction limit (timeout) cannot help here. The issue is that the call to SAP Business One that takes too long. There are no compensating transactions in place in the API.

Have you considered splitting the synchronous scenario step into several steps?

  • Step one makes the synchronous call and hands over the message to an internal queue.
  • Step two with internal queue inbound makes the call to SAP Business One.
  • (When the call is successful, an event is generated in SAP Business One by the B1i user. You can pick up the event (setting the B1i filter accordingly) and use it to report the result back to the calling system.)

Best regards,

Annemarie

Share
10 |10000 characters needed characters left characters exceeded
avatar image
Former Member Feb 09 at 05:37 PM
0

Hi Annemarie,

Thanks for your reply.

I gave B1 Call atom as an example because most of the time, DI API long connection to SAP is the reason of step's long processing time. Step one from your list is not too safe because website gets response that message was received. If there will be exception in Step two then we have a problem because message is lost and website doesn't know that. We can have custom error handling but if any error happen in that scenario that we have no possibility to send information to website.

Another example. If the step with http inbound is stuck in message queue for any reason then new http call will wait for its turn. In this situation Transaciton timeout would be very helpful.

Cancelling such a step with B1 Call could be possible but when DI Single Transaction is switched off.

I asked this question because of issues with SAP Customer Checkout. One of the POSes send BPs to SAP. The connection is long, and when users synchronized BPs again the same client is duplicated in SAP B1..

Kind Regards,

Szymon Lipnicki

Share
10 |10000 characters needed characters left characters exceeded