Skip to Content
avatar image
Former Member

BPM error handling

Hi,

I've read many messages on this forum regarding BPM error handling but am still a little confused.

In my scenario the BPM is quite simple. All it does is Call web service (synchrous) then transform and then call another web service synchronous.

Now , If any call to the two web services fails , I would like to be able to restart the two calls... now if they fail again, I would like to be able to restart the two calls again... until they work. But each time the restart would be done manualy in the BPM monitoring transactions.

The way I understand the error handling

if I put my synchronous send steps and transformations in a step and catch the exception they throw , I can send myself an alert and then throw another exception which I dont handle. This way , since that exception is not handled , it will set the process in error and I can restart the process later.

However , how can I set it up so that when I restart the bpm , both calls are done again and the same exception handling happens.

Now , when I restart, it seems only what comes after the block and the exception is executed. If I put the sync send calls in the exception handling branch, that will allow me to run the send steps once after an exception...

Thanks.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • Jul 20, 2009 at 08:36 PM

    Hi,

    >>>All it does is Call web service (synchrous) then transform and then call another web service synchronous.

    sorry in case you use sync communication you cannot restart anything - so no need to do anything else

    Regards,

    Michal Krawczyk

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member
      Even if I don't throw the exception and its a System error on the synchonous call, the BPM is in error but the next call will 
      go through...
      I don't know what the point of EOIO was in that case ?

      Even having an Exception branch is enough....you need not compulsorily have anything in it.....so when an exception occurs in your Sync step the control goes to the Exception Branch of the Block....but since there is no step defined in the branch nothing happens.....and the Control then passes to the next branch as in a normal flow.....

      Since the Exception branch is defined the BPM will not wait/ stop/ error-out if any thing goes wrong in the Sync Send step.....it will continue....this is the normal behavior....an error entry will however be shown...if you want that your process stops if the Sync Send fails then have a Control Step (Action--> Cancel Process) in the Exception Branch

      Regards,

      Abhishek.

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

    Hi,

    thanks for all your replies.

    So , I've got it working... my conclusion is as follows. If you catch the exceptions in your BPM (that is , you create your own and set it in the step as an exception) , then the queue will not be stopped. Even if you throw your own exception.

    The only exceptions that stop the queue are the ones thrown by default by PI...

    If you ask me , this is really lacking in PI. We should be able to throw catch the exception , do some handling , and then throw another exception which blocks the Q.

    Thanks again.

    Add comment
    10|10000 characters needed characters exceeded