Question
· Jan 23, 2019

BPL <call> element with async='False'

Hello, we have a couple of BPL processes. This works with a limited amount of messages but we run into issues when we process thousands of messages in a session. One BPL calls a Validation BPL process with async='False' and there is a response defined. The timeout is two seconds and that seems to be plenty of time for the validation process. I expected the calling process to wait for a response but that is not happening. The documentation says: A <call> element with async='False' and a <response> block defined suspends execution of its business process thread until the called operation completes.

<call name='Validation' target='ST 837 Validation' async='0' timeout='2' xpos='200' ypos='350' >
<request type='EnsLib.EDI.X12.Document>
<assign property="callrequestvalue="requestaction="set" />
</request>
<response type='CREPOS.TXNSET999>
<assign property="context.valStatusvalue="$$$ISOK(callresponse.valStatus)action="set" />
</response>
</call>
<if name='Check VAL Status' condition='context.valStatus' xpos='200' ypos='450' xend='200' yend='700' >
<true>
<call name='Good Transaction Handling' target='837 Good ST' async='1' xpos='335' ypos='600' >
<request type='EnsLib.EDI.X12.Document>
<assign property="callrequestvalue="requestaction="set" />
</request>
<response type='Ens.Response/>
</call>
</true>
</if>
 

The Good Transaction Handling gets called later after another message had already invoked the calling process again that was not suspended as expected.

Discussion (1)1
Log in or sign up to continue