on 02-06-2018 2:11 PM
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
Hello Szymon,
Based on your description, seems the most uncertainty is from DI transaction.
Then I think there are 2 things which may be helpful.
1. DI Single Transaction
2. A DI Proxy parameter named ORPHANED
BTW, you may try the following code when unexpected behavior occurs
<xsl:message terminate=”yes”>!Error display </xsl:message>
Best regards,
Huan Yang
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Huang Yang,
Thank you for your reply. I don't know why I didn't receive a notification about your message.
Because the problem is related to SAP Customer Checkout, I think that I can't change this setting in scenario steps. All Customer Checkout scenarios have DI Single Transaction switched off.
ORPHANED option should be a good solution. I forgot about this setting. I'll check it.
Thanks for your help.
Kind Regards,
Szymon Lipnicki
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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?
Best regards,
Annemarie
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
101 | |
12 | |
11 | |
6 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.