Skip to Content
avatar image
Former Member

Block next calls to integration process

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.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

4 Answers

  • Best Answer
    avatar image
    Former Member
    Jul 21, 2009 at 07:23 PM

    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

    Add comment
    10|10000 characters needed characters exceeded

  • Jul 21, 2009 at 07:23 PM

    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

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      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 😊

  • avatar image
    Former Member
    Jul 22, 2009 at 04:15 AM
    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.

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Jul 28, 2009 at 06:38 PM

    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.

    Add comment
    10|10000 characters needed characters exceeded