27-12-23 08:03 AM
Good day Team, Trust you had a wonderful festive season so far.
I had a single Bot / VM on the BPC platform that manages about 18 processes of which some of them are dependent on each other. I have now been provided with a second Bot/VM, to share the load and am trying to create a sort of management process to control the scheduling under certain conditions and statuses.
Both bots are looking at the same Queue, but I am not sure how to synchronize the communications between the Bots, to determine what the status might be of a dependent process, like completed, deferred or busy etc.
Any ideas / Solution on how to make this happen? Unfortunately, we do not have access to BP Supervisor.
Kind Regards
Gavin
27-12-23 02:25 PM
@GAVIN.RUDLING - I'm just bumping your thread as I think it's a really good question that could benefit from community ideas. I'm also summoning some of our resident community experts to see if they have inspiration for you:
📞 @Nilesh Jadhav, @Neeraj Kumar, @Harish Mogulluri, @Denis__Dennehy, @Tejaskumar_Darji, @shreya.khot, @Michael ONeil
27-12-23 02:46 PM
Hi Michael, much appreciated.
Looking forward to seeing some of the suggestions that might be available.
Kind regards
Gavin
29-12-23 06:54 AM
Hi Gary,
Going through the scenario, I see that you want a confirmation if Process-1 has run or not before you trigger Process-2 which is dependent on first. This can be controlled by either creating a new process which calls these process step-by-step if everything is supposed to run on single bot or if you want to run the processes on multiple bots then you can use an excel or notepad which helps you to communicate the completion time of the processes.
Process-1 generates one file which Process-2 will initially look for & then only it will start launching applications to continue the next steps.
Let me know your thoughts on this.
29-12-23 08:37 AM
Hi Shreya, Thank you very much for responding.
I have done something similar, if I understand you correctly.
For explanation purposes I have the following:
On the BPC platform, I have 2 Bots
Bots: Prod1 & Prod4
Processes: Process 1 & Process 2 of which Process 2 is dependent on Process 1
Schedule Process, which runs on each Bot.
Queue: Queue_X
In my case, the Schedule Process is running on both Bots, Prod1 & Prod4 every 5 minutes, populating Queue_X, based on conditions and criteria kept in a collection in the schedule Process.
With my scenario, I require the schedulers to communicate with each other, just in case the Prod1 scheduler defers a process or throws an exception Prod 4 will know about this. I tried to use an Excel document on a shared drive to which both schedulers could write to, which is then used to update my collection. This scenario is my problem, and I was looking for an alternative. This is in testing and in the client's world I will not have access to a shared folder. I think Ideally, I would like to have 1 scheduler controlling 2 bots and not 2 instances of the same scheduler running, but I am not sure if it is possible.
When running with 1 Bot, there doesn't seem to be a issue, but with 2 I seem to miss some information somewhere. I think it's timing while extracting updates from the Excel to the collection. I am still not sure.
Kind regards
Gavin
02-01-24 02:59 PM
Hi Gavin,
Could you use a Blue Prism queue - either the actual work queue "Queue_X", or a separate "management" queue - to communicate between the two robots? If the messages are brief, you could put them in tags or status. If you need more extensive messages, you could store them in the item data. I'm not sure exactly what messaging you need, but it's just a thought.
Kind regards,
Andrew Pascal
02-01-24 07:37 PM
Hi Gavin,
Please check my attached solution, it might help you to achieve your goal however I am unclear about for below points.
· You have not mentioned about your process work and requirements clearly.
· You are calling process one by one, why do you need to know whether other bot has an error or not, it can be handled in the process only.
· Schedulers are just to trigger the process.
· Can you please add more clarity to help you in a better way.
Solution from my side.
· I have created 3 different processes as per my understanding, as per your requirements.
P
Do let me know if you need more information.
Thanks
Nilesh
------------------------------
Nilesh Jadhav
Project Leader(RPA).
ADP
India
------------------------------
03-01-24 09:03 AM
Hello, Gavin,
if you want to keep your excel approach you need to implement locking of the activity when writing to excel so that both bots won't write at the same time in the excel which would fail anyway. There is an option to get a Lock and in your processes to check whether the excel is locked or not and based on that you can either wait (in case it is locked) for certain time interval until is unlocked and then the second bot can write to the excel, of course, it needs to be locked again by second bot.
I am not sure if it is clear from what I described but check the documentation with the word Lock or Locking and you will find more details.
Regards
Zdenek
03-01-24 09:32 AM
There are a number of different solutions for this - you can maybe search other threads about having a parent process or getting best utilisation out of your robots.
There are also a few assets on the BP Digital Exchange related to this including this one created by BP themselves which has a good doc: Blue Prism Digital Exchange
The key concept is that the robots do not make the decision themselves by looking at what the other robot is doing, in the same way human workers in a back office admin centre are managed based upon workloads and SLAs rather than figuring out what to do amongst themselves. How robots are informed of what they should be working can be logic stored in a Parent Process the robots run (although Parent Processes can get unwieldy when you have many robots and many processes), or a Parent queue logic which is then checked between cases in some way, or something more complex depending on the complexity of your RPA estate.
There are also tools out there that can help with this, although they can be expensive, such as RPA Supervisor (now known as C TWO), also the Blue Prism product team has been working on a more advanced Schedular/Control room functionality that should do most of this type of logic - although it is a long time coming, they announced Active Queues was coming with version 5 back in 2015 or 2016 and then only ever delivered a small part of it, leaving out the smart/useful stuff (I suspect they will actually get to fix this with a great browser based control room schedular soon).
05-01-24 03:10 PM
Hi Gavin
A simple solution which worked for me with a similar scenario was to create a 'tracker' work queue item. 2 Processes used the same queue but process 2 would only be triggered if the queue contained a work item that was only completed if process 1 had been run that day and fully completed. Process 2 would run and an initial check of the queue for the tracker item from process 1 and if that work item was showing as pending or exception then process 2 would do nothing until the next scheduled run where it would check again.
Hopefully im understanding your scenario correctly.