Execute a sequence of processes and if failed restart from the failed one

Hello,

I’m trying to implement a process that has 5 steps and are executed in a specific order. Each step is a different sub-process that the only prerequisite to start is the previous step execution to end successfully.
i.e. step 2 can run only if step 1 was executed successfully,
step 3 can run only if step 2 (and also step 1) was executed successfully (proper error handling will be used to assure “successfully”).
So, I was thinking to create 5 axml files with those steps and use invoke to execute them in correct sequence. But I want to synchronize them in a way that in case a step fails the next steps will not start and user will have the option to restart it from the failed step after proper application/data corrections.
Also, this process may run more than once per day so a second run should not interfier with the previous process run.
Does anyone knows if it is possible to do it with UiPath?

The problem here is, when you running the second time, there is should be some kind of configuration to be used to differentiate between re-run and a new run.

So are you using any configuration to differentiate between re-run and a new run?

For your first question -

Consider you have 5 sub processes.

Please save the status of each workflow in some config file. (Clear the status every time you start a new run).
For example:
WorkFlow1 Success
WorkFlow2 Success
WorkFlow3 Fail

When you start re-run,
Check the status of workflow, then trigger the workflow based on the flow decision.

Read the first workflow status,

In the First Flow Decision, If success (Do Nothing)
If Fail/New (Invoke The Work Flow 1)

In the Second Flow Decision, If success (Do Nothing)
If Fail/New (Invoke The Work Flow 2)

Follow the same for the next workflows too.

Thank you for your response @KarthikByggari.

I was hoping that there is an out of the box feature I’m missing. Also some feature in Orchestrator/Queues/transaction Items would be even better.(in my opinion).

In your solution the issue will be that :

  • it’s not a solution where users will be able to do everything from UI unless I develop something more complex (i.e. if they solve the current step and must continue to next they must open the configuration file and change the status from failed to success).
    -it can be used for one robot only.(syncing many robots with the same file is difficult even with shared storage)
    While writing, I was thinking to use an asset instead of a file but unfortunately it doesn’t support tables to help storing all values, but perhaps i can do it with text(but it doesn’t seem very easy).
    Transactions are something I already checked but user can not change the stored values, so it’s not helping to pass variables to next run(see below).

Regarding the differentiation I assume that an input variable can help but only for manual re-run and if i want to keep it simple only for the last failed execution(like using a Boolean for re-run). If it’s not a re-run a new config/control file will be created at the begging of the process using timestamp or a more complex id.

It’s a bit disappointing for me, the fact that something so simple (and must have in classic workload automation tools) is not a feature in RPA, but I understand.

Thank you for your help.

2 Likes