cancel
Showing results for 
Search instead for 
Did you mean: 

BPM auto kill

hannes_defloo
Advisor
Advisor
0 Kudos

Hello fellow PI/BPM experts!

At a customer its required to build a ccBPM that ends the previous BPM who is processing a message with the same correlation ID.

The idea was to send a "Kill"-message at the start of the BPM to the same BPM class, and later in the BPM have a fork that waits a Kill-message (with the correct correlation) and ends the BPM.

However it seems that the BPM is always picking up his own Kill-message. Also when I put a wait step after sending the first Kill-message. So messages seem to be queued and are waiting for a BPM to pick it up.

Note that only = is possible in correlations, so a != on a timestamp or something similare doesnt seem possible.

We are on PI7.0 SP15.

Any ideas to solve this?

Thanks, Hannes

Edited by: Hannes Defloo on Aug 28, 2008 11:51 AM

Discovered the deliverey modes setting for BPM, see

But then when there is no other BPM listening the Kill-message is not recieved and the queue is stuck.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Maybe this will help:

1. first message goes into BPM1 (the one that should be killed)

2. second message goes into BPM1, which first forwards the message to BPM2, then kills BPM1

3. BPM2 forwards the message to new instance of BPM1, since the first instance got deleted

It seems a little bit strange, but it just might do the trick.

hannes_defloo
Advisor
Advisor
0 Kudos

Hello Iddo,

Thanks for the help, however I also found a way doing it with a single instance of a bpm.

- recieve step 1: async, invoicedocument, set correlation

- block: to put a deadline branch

- set variable to 1

- loop (until variable =0)

- fork, with neccessairy branches = 1

- branch1: recieves invoicedocument with the correlation set, if such a document is recieved, the loop is restarted

- branch2: normal logic (still to be implemented, will sent the invoicedocument to other systems), afterwards send a positive acknowledgement and set variable to 0 to stop the loop.

When sending several messages (with same content) only one bpm instance is created. So it seems that a recieve step with correlation has priority over creating a new bpm instance.

Krgs, Hannes