cancel
Showing results for 
Search instead for 
Did you mean: 

Usu AUTOMATEC to kick off a process using a Pool

ChiragSurati
Level 4
Is it possible to kick off a process and run on a pool? I'm able to run it via a single resource but I have not had luck when using it on a pool.
4 REPLIES 4

AmiBarrett
Level 12
To my understanding, pools are only managed on the controller-level, whereas AutomateC is designed for targeting specific individual systems. If you want AutomateC and pooling to work, you need to toss out the built-in pool that Blue Prism provides and come up with your own internally-managed pool. For example, we have a replacement piece of controller software that polls the bots in our ""pool"" to see which one can take on work. The next one available in that list is the one that is sent the command via AutomateC. Presumably, you could do the same using stages in Blue Prism, as long as it has a way of knowing which systems are available and which aren't. For this, you can run a query against the BPAResource table where AttributeID matches whichever resource group you have it configured for (these values should be listed in BPAResourceAttribute). So if you have a resource group named ""Pool"" (Note: Not a pool named pool), and BPAResourceAttribute shows that ID to be 3, you could querey against BPAResource where status = ready and AttributteID = 3. If you go that route, I /highly/ recommend doing some organization of your machines. Otherwise, if every listed machine is in the same group, your code will start targeting dev machines as well. We've got separate groups called retired, local, debug and pool which we are able to discern pretty easily between. As a side note, you can take it a step further and start getting creative with that particular kind of model. While a Pool (as defined internally by Blue Prism) will only let a single process run once within it, a custom pool (as outlined above) will let you run it as many times as you want. So if you have a queue with an unusually large work load, that can quickly get divided across multiple bots. You can then go a step further and configure each process to check if a stop was requested. Once that's in, you can halt the process on some (but not all) working bots and spin up another process that also needs to get worked. You could also add in a custom priority order and have it figure out which queue needs to get the most focus.

JasonEtchason
Level 3
amibarrett,   Can you elaborate on how to assign resources to a named ""Resource Group"" that is NOT a BP resource pool? It sounds like you are suggesting this is somehow referenced using dbo.BPAResourceAttribute, but it looks like this just defining flags for a bit field that provides resource state information.  

AmiBarrett
Level 12
We keep all of our resources in a basic Resource Group in Blue Prism. We do not assign them to a Pool in Blue Prism - we only create the pool with our controller.  I'm attaching an image with two screenshots - One of our groups, and another of our pool config. In dbo.BPAGroup, you can find the list of resource groups and their associating IDs. In this case, the treeid for ""Controller"" = 5 (we'll call the GUID value simply GUID). In dbo.BPAGroupResource, we can query where [groupid] = GUID, and pull the list of values in column [memberid]. These values will match column [resourceid] in dbo.BPAResource (which we'll call GUID2). Basically, we have our controller use that logic to figure out which systems are in the relevant group and treat that internally as a pool. Provided column [status] in dbo.BPAResource is ""Ready"" and we can't find any sessions in dbo.BPASession where [enddatetime] = null and [runningresourceID] = GUID2, then we know that the resource is available to have work assigned to it. We go a couple steps further with our monitoring, and use remote commands either via powershell or tasklist to check if the listener is running, or that the intended account for that system is actually logged in, along with pinging to see if the system is up. If any of these fail, we send an alert via e-mail.

John__Carter
Staff
Staff
cvs0115 - automatec /run ""my process"" /pool ""my pool"" /user ""my name"" mypassword