I want to develop 2 processes wherein my transaction item is Queue item.
Process 1 (Bot 1): Process the data and move the transactions to Action Center which requires Human Validation (Output I need from Action Center: To create a new Queue item) which is to be performed by Bot 2.
Process 2 (Bot 2): Only process that data which is coming from Action Center.
How can I develop the above process?
Also, Is there any way to do the task in 1 Bot only? If so, How?
You can do in one bot using the wait and resume task
If you want to do in two bots…then after the first bot add the unique task id to the second queue and run the second queue to check the task id is completed or not …and then if not completed postpone the item …if completed process it
If I do it in 1 Bot and use “Wait for Form Task and Resume” activity it will pause my execution.
I want the Bot to run all the transactions simultaneously.
Secondly, when the user validates any transaction in Action Centre it should process that transaction first.
Indeed it is, you can use the parallel wait activity and it will wake up any time any of the actions it is waiting for are complete.
Use caution however, I cannot remember how many threads the documentation says you can have, I think maybe 1000 but in my experience more than 100 causes problems. It makes too many API calls at onces and the Orchestrator starts rejecting them as a DDOS attack,
An activity to wait for multiple at once would be welcome.
As mentioned by @Jon_Smith we can use parallel for each activity so that it processes parallely and waits…
And in the second approach…if you want the bot to start soon after the validation is done then have the trigger of the bot multiple times in the day…so that the transactions added to second queue will be picked up faster if completed
Ah there you go, Anil quoted the documentation I was referring to. You see there it saying a job can have 1,000 triggers but the way its worded suggests you can have use a parallel for each with 1,000 items in it, all waiting.
That won’t work however. When your bot wakes all 1,000 threads will wake and send an API request to the orchestrator to ask the status of the item they are waiting for (job, queue item or task). Sending 1,000 separate API calls at once will cause the orchestrator to refuse them causing your bot to fail. I suggest keeping it less than 50 to be safe although 100 is ok.
I am trying out a way to develop it but I got stuck at the middle. I have a one question here. The validation part is based on UI Interaction. Will the Orchestration Process Works if has UI interaction involved?
What you must consider is that the robot will suspend when you do the wait activity.
This means the processes is basically all allocated to memory and the details sent to the orchestrator. Then the robot stops. Its then available for other tasks so another job might now run, this could kill the application you were using or also fail because it was left open.
Once the thing the process was waiting for is complete the Orchestrator will wake up the job and start it again by sending all those details it had in memory and the process will continue where it was bookmarked. This could even be on a different robot and machine unless you force it to be the same one.
Obviously the browser or application you had open can not be relied upon to be in the same state as when you left it as it might even be a different machine.
You should finish using the application before you suspend (so close it down) and then once you wake up open it up again and get back to where you were.