cancel
Showing results for 
Search instead for 
Did you mean: 

To End BPM Process

Former Member
0 Kudos

Hi

In my BPM there are 2 send asynchronous steps, one send is to write the file and other one is to send a call to sql server.

the two should execute in sequence.(2 send should trigger only when ack of the first send step is positive, if the ack is negitive i should end the process.).

I followed the below Blog

/people/michal.krawczyk2/blog/2006/06/22/xi-playing-with-the-file-adapters-acknowledgments and defined first send step ina block and handled deadline branch and exception branch.

the second step should be executed only if the ACK is positive.

So i placed the second send step after the block,

still the second is processing even if the ACK (from the first send step is Negitive)

Please suggest how can i do this.

Appreciate your Help.

Thanks Srinivas

Accepted Solutions (1)

Accepted Solutions (1)

former_member200962
Active Contributor
0 Kudos

In the BPM design the exception branch catches the exception not due to the negative ack received but due to the Deadline branch.

If the logic keeps on sending negative ack, then to avoid this situation the BPM was designed to stop processing when the deadline is reached.....hence if you see the deadline branch has a Control step (Action = Throw Exception).....now this exception will be catched by the Exception Branch and process will be cancelled......now you can also implement same logic.

You have to implement Exception Handling in this scenario....if you avoid it then the BPM will keep on receiving the ACKs and will not stop unless manually made to stop.

Can you do a check on your BPM in IR --> open your BPM and press F7....check if there is any message like Exception will not be catched?

Regards,

Abhishek.

Answers (3)

Answers (3)

Former Member
0 Kudos

Thanks for all your replies

VijayKonam
Active Contributor
0 Kudos

I do not think you should just place the second send after the block. You would have to define a condition and compare the ACK for positive condition and there you should place the second send. Otherwise, the send would work normally.

VJ

Former Member
0 Kudos

Hi Vijay,

How can i define a condition for the ack after the block.

Please explain me in breif.

Thanks

Srinivas

justin_santhanam
Active Contributor
0 Kudos

Srini,

If you don't want to process the next step, I believe you want to throw the BPM into error status.

If your answer is yes, then I would say - Don't catch the exception (I mean no exception branch).

I might be wrong at this stage of my suggestion- but I would say give a try and let me know if it works.

Thanks,

Raj.

VijayKonam
Active Contributor
0 Kudos

In the blog Michal mentions that if the Send step is the last step. but in your case as you have two sends, the BPM is not stopping after the first send I guess. However, I do not know how to capture the Transport ack in to a container element. May be you might have to research on that part. If you are able to do that, you can have switch and place the second step in that branch for the positive case.

VJ

justin_santhanam
Active Contributor
0 Kudos

Srini,

If the ACK is negative you shouldn't send the second step (Call SQL) correct?

~Raj

Former Member
0 Kudos

Yes Raj, if the ACK is negitive the second send step should not process

Thanks

Srinivas