cancel
Showing results for 
Search instead for 
Did you mean: 

Block next calls to integration process

Former Member
0 Kudos

Hi,

I have a BPM which makes 2 succesive calls to web service (synchronous).

If there is a problem in the calls to any of the 2 web services, I want to raise an error and stop all other calls to this BPM to go through.

Right now, if I make 1 call and the BPM is in error. When I make the second call, it still goes and tries to execute.

The problem is , the sequence of calls must be maintained so , if the first call fails , the second should wait until the first is resolved.

Is this possible ?

Thanks.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hey

Can't you set quality of service as EOIO on sender side and change that to BE in BPM (to make call synchronous)

Thanks

Aamir

Former Member
0 Kudos

This is what I've done... and I still have the problem.

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi Guys,

conclusion to all of this... is ...

Its really possible to do it in BPM but its a little tricky.

Here's a guide to the solution in case someone needs it.

You have a fork.

1 branch does an infinite loop of receiving messages and adds them to a multiline container element

the other branch processes the elements in the multiline container element.

The steps of the second branch must be set in a block which has "for each" set. This way the processing of each request is sequencial.

You must also put another loop arround all of it so you don't loose any messages.

An image would be worth a 1000 words here but I guess this would be a good start for those who need it.

Thanks again.

former_member200962
Active Contributor
0 Kudos
If there is a problem in the calls to any of the 2 web services, I want to raise an error and stop all other calls to this BPM 
to go through.

Can do this using the Sync Step in a block and then define an Exception Branch and then in this exception branch use a Control Step (Action-> Throw Alert).....then have another Control Step (Action> Cancel Process)....both Control Steps in the Exception Branch....

Now for the catch:

The problem is , the sequence of calls must be maintained so , if the first call fails , the second should wait until the first is resolved.

As Michal said this is not possible.....you cannot (rather no one can) design the BPM to wait for resolution of Step1 and then again excute the Step1 and then execute Step2.....this is the functionality of the BPM.....

Regards,

Abhishek.

MichalKrawczyk
Active Contributor
0 Kudos

hi,

>>>Is this possible ?

in short terms - no, not with a BPM

but as you know everything is possible just not in the easy way

you could do a SOAP call to XI with EOIO and from there to java proxy

which would make 2 WS calls

then the next SOAP call to XI would wait until the first one would get completed

Regards,

Michal Krawczyk

Former Member
0 Kudos

Hi Michal,

I don't understand the advantage to use the proxy...

Right now, I have an ECC system call BPM with EOIO ... the BPM does the 2 calls.

I would expect the fact that I set it with EOIO to block the next calls if one of the previous calls failed but this is not what happens... why is this ? Isn't this what EOIO means ? If it executes the second call even though the first failed... there is no more order ...

Thanks.

MichalKrawczyk
Active Contributor
0 Kudos

Hi,

>>>I would expect the fact that I set it with EOIO to block the next calls if one of the previous calls failed but this is not what happens... why is this ?

as you use a BPM with BPMs it's not that simple

you can believe me or some other people - your choice

Regards,

Michal Krawczyk

Former Member
0 Kudos

Its really not that simple...

but what I'm just trying to understand is what does the EOIO do if it doesn't stop next calls when a previous one fails.

Ok, it maintains receive and start sequence for the BPM but once your in the BPM... what I understand is ... the sequence is not really maintained.

I guess this also means that if 2 calls to the BPM are made one after the other . BPM for call 1 will start before BPM for call 2 but after that , the steps of BPM 2 could happen before BPM 1... this is not really strong . Is there no way to actually sequence the calls.

Former Member
0 Kudos

Michal,

I reread this and I'm not sure I understand ?

sunil_singh13
Active Contributor
0 Kudos

Hi Thierry,

Would it be possible to for you to introduce 1 minute delay in between (using wait step), in this way you can make sure that 2nd WS wont get called untill the 1 executes.

Thanks

Sunil Singh

former_member200962
Active Contributor
0 Kudos

it is not about making the second call wait......if the first sync call fails then the second should wait till the first failed call gets resolved.....you cannot guarantee for how long it will take to resolve the first call....and even if you gurantee you cannot run the BPM midway