Question
· Mar 23, 2020

How to manage <Delay> processes.

I am developing a BPL with a delay process. 

The problem I have is when a message is delayed I cannot see a job id so whilst a job is in halt status I cannot see how i can then cancel the message? It obviously doesn't show up in queues as it isn't active either. 

Am i missing something?

 

 BPL Halt

 

 

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

When the delay expires, Ens.Alarm will send a message back to the business process. You can query to find any messages that have been sent to Ens.Alarm but for which it hasn't sent a message back. This is based on the value of status: the status will be "Delivered" until Ens.Alarm sends the message back to the BP, at which point it will change to "Completed".

SELECT * FROM ens.messageheader WHERE status='Delivered' AND sourceconfigname='MyBPL' AND targetconfigname='Ens.Alarm'

As Eduard mentioned, it would be good to understand the use case as there may be another way to accomplish it.

I have a call to an ITK sender.

The target Operation may fail. 

it goes to a Wrapper object to send to an ITK

It is a sync request so want basically  the business process to continue on where there is an error but to be retrying any failed messages again in an hours time. Trying any E=RS on the operations caused the BP to not accept any more messages in I think due to the suspension.

Thanks on further testing it looks like E=S was added to a business  operation that called a sync request to another business operation as well as the one that was being called from the business  Process. As the BPL sync call is an a-syncronous call with a sync block after simply adding this to the business  operation that is called from BPL will do the job. Previously when this was tested the endpoint system was still down. This should be a more out of the box way to do the suspend queues.