Hi all, is there a way to skip an node when error happens? I mean when

Hi all,
is there a way to skip an node when error happens?
I mean when it is hung in red status?
I know i can add an exception flow to deal with green status.

I'm calling a web service which returns a xml and i use it to create a document.
before the web service, there is a task which is used to create the request soap.
and after the web service , the smart service "Appian Document from base64" will create a document.
an unexpected error could happen in all of these nodes,
and result in the process being stopped.

in this case, exception flow doesn't work and the node can not skipped.

Can someone help me, please?

Thank you very much...

OriginalPostID-72962

OriginalPostID-72962

  Discussion posts and replies are publicly visible

  • Part of process : a task node which is to create the request soap , a web service node which is to return an xml with field containing a document binary stream(in base64), a smart service node "Appian Document from base64" which is to create the document using the returned stream.
  • Ideally, if a node fails, then there is a reason behind it that requires fixing. For e.x. if the WS fails, then you need to rectify the service before the processes down the flow can execute. There is a good chance you may have a step down the flow that depends on this data. If you skip this step (let's say) then you may end up passing bad data throughout the flow.

    Now, in terms of solution, I have heard some discussions of using a timer (in parallel) and if the service executes successfully, it terminates the timer, if not, then the timer will move forward with some 'indicator' to say that the node had failed. I personally don't think this is a good design and have never used such an approach.
  • I second Sathya on this. If the node fails ideally the process should not move ahead until the erroneous node is fixed. However I do not deny the fact that there could be situations where in errored node is not of much significance.

    If I have got your use case right, then the reason you want the process to move forward irrespective of the either of the nodes (Create Request Soap --> Web Service Call --> Create the Doc) resulting into an error means that the rest of the flow you need to carry out does/might not depend on the creation of that document from the XML received from the web service. In that case, one can have an AND gateway one flow takes you to the document creation (Create Request Soap --> Web Service Call --> Create the Doc) which if you want could be a sub process carried out Asynchronously and the other flow(s) which you want to proceed irrespective of the errors occuring in the flow mentioned above.

    Having a timer set is also an option (I would prefer to keep it as the last option) which will trigger if the node errors out, but this timer needs to be set on all the nodes which you think might error out.
  • Sathya/Shrutij, out of interest what would be your approach? We have a webservice which occasionally times out. Currently Appian sends us an alert to the administrators which is great, trouble is we have no idea is someone has managed the error when we look at our alerts so having a way of flagging this to create a task which is a better way of managing it. Do you advise simply using the alerts or would you advise doing this another way eg the alert scanner component or some other way?
  • If I have got your question right -
    I personally feel that the requirements/use-cases trigger which approach needs to be used.
    For example -
    We should be fine with just relying on the alerts (if not a task), if the process is designed to pick all the data each time, thereby giving the adminstrator a chance to fix the erroneous record before the process is run again.
    By all data I mean those records/data for which the webservice is not run before or has errored out.
    I would further add, next time the process model is run and if the erroneous data is not picked up again, then after the webservice errors/times out a task directed to the administrator group would be good so that the admin is well aware that the data needs to be fixed and then the process instance/node needs to be started and run again manually.

    I would follow the approach of creating a task for the admin to look into the error and then having an escalation set if it is not answered in a stipulated time period, this is if and only if the failed process holds significant importance for the business.
    It would also depend on how well the administrators react to alerts.

    Apologies, but I have not used the alert scanner smart service in the projects to talk much on it. But yes, we can have a Process Model running daily at a particular time, scanning through all the alerts and picking the ones which require attention. Though there is no extra data that is returned by this smart service which cannot be found on the alert and the drilled down process instance, this can be useful if the process model with the erroneous node is run a multiple times daily, resulting into loads of alerts each day.
  • We can also have the Send/Receive Messages to handle this kind of situation. Once the node errors out a Send Message node would help which would send the relevant data resulting into error. We would then have a receive node reading this message which will then trigger a task for the admin to work on it which would then flow into calling the webservice again.