cancel
Showing results for 
Search instead for 
Did you mean: 

Parent/ Child Queue

SamLima
Level 7
does anyone have a process implemented Parent/ Child Queue?
I need to observe and compare my work with best way to create P/C relationship


------------------------------
Sam Lima
------------------------------
1 BEST ANSWER

Helpful Answers

Hi @SamLima,

I have created a sample process​ exhibiting a basic parent-child queue relationship for you. In order to run this process successfully you need to place the input files somewhere in your local machine which are shown below and also setup the environment variable for the input directory as well:

33388.png

Once this has been set up, ensure that you have the following queues set up in your environment:

33389.png
Then you can run the process. All these artifacts are provided in the attach zip file for your reference. Do let me know in case of any queries.






------------------------------
----------------------------------
Hope it helps you out and if my solution resolves your query, then please mark it as the 'Best Answer' so that the others members in the community having similar problem statement can track the answer easily in future

Regards,
Devneet Mohanty
Intelligent Process Automation Consultant | Sr. Consultant - Automation Developer,
Wonderbotz India Pvt. Ltd.
Blue Prism Community MVP | Blue Prism 7x Certified Professional
Website: https://devneet.github.io/
Email: devneetmohanty07@gmail.com

----------------------------------
------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
Hope this helps you out and if so, please mark the current thread as the 'Answer', so others can refer to the same for reference in future.
Regards,
Devneet Mohanty,
SS&C Blueprism Community MVP 2024,
Automation Architect,
Wonderbotz India Pvt. Ltd.

View answer in original post

10 REPLIES 10

Hi @SamLima,

I have created a sample process​ exhibiting a basic parent-child queue relationship for you. In order to run this process successfully you need to place the input files somewhere in your local machine which are shown below and also setup the environment variable for the input directory as well:

33388.png

Once this has been set up, ensure that you have the following queues set up in your environment:

33389.png
Then you can run the process. All these artifacts are provided in the attach zip file for your reference. Do let me know in case of any queries.






------------------------------
----------------------------------
Hope it helps you out and if my solution resolves your query, then please mark it as the 'Best Answer' so that the others members in the community having similar problem statement can track the answer easily in future

Regards,
Devneet Mohanty
Intelligent Process Automation Consultant | Sr. Consultant - Automation Developer,
Wonderbotz India Pvt. Ltd.
Blue Prism Community MVP | Blue Prism 7x Certified Professional
Website: https://devneet.github.io/
Email: devneetmohanty07@gmail.com

----------------------------------
------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
Hope this helps you out and if so, please mark the current thread as the 'Answer', so others can refer to the same for reference in future.
Regards,
Devneet Mohanty,
SS&C Blueprism Community MVP 2024,
Automation Architect,
Wonderbotz India Pvt. Ltd.

Thank you so much @devneetmohanty07, Could you please explain Mark Parent Queue Items As Completed page?

and what is this expression ?

33390.png


------------------------------
Sam Lima
------------------------------

Here I am checking if any of the pending child items are available having the current parent key text included inside them or not. Ideally, if a blank collection is returned it means that we do not have any pending child items related to my current parent item and hence I can mark my parent item as completed.

------------------------------
----------------------------------
Hope it helps you out and if my solution resolves your query, then please mark it as the 'Best Answer' so that the others members in the community having similar problem statement can track the answer easily in future

Regards,
Devneet Mohanty
Intelligent Process Automation Consultant | Sr. Consultant - Automation Developer,
Wonderbotz India Pvt. Ltd.
Blue Prism Community MVP | Blue Prism 7x Certified Professional
Website: https://devneet.github.io/
Email: devneetmohanty07@gmail.com

----------------------------------
------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
Hope this helps you out and if so, please mark the current thread as the 'Answer', so others can refer to the same for reference in future.
Regards,
Devneet Mohanty,
SS&C Blueprism Community MVP 2024,
Automation Architect,
Wonderbotz India Pvt. Ltd.

what is this expression?
33396.png



------------------------------
Sam Lima
------------------------------

This is a filter expression, here basically if let say I have a collection called 'Child Item Keys' with a column called as 'Key Name' . So here I am checking if that column has the value of the current parent item key anywhere or not within it.

Suppose, the current parent key item is 'Test1' and the child item keys has following values:

'Test 1 - 1'
'Test 2 - 3'
'Test 3 - 1'
'Test 3 - 2'
'Test 3 - 3'

Then, only 'Test 1 -1' would be returned as it contains the keyword 'Test 1' within it

------------------------------
----------------------------------
Hope it helps you out and if my solution resolves your query, then please mark it as the 'Best Answer' so that the others members in the community having similar problem statement can track the answer easily in future

Regards,
Devneet Mohanty
Intelligent Process Automation Consultant | Sr. Consultant - Automation Developer,
Wonderbotz India Pvt. Ltd.
Blue Prism Community MVP | Blue Prism 7x Certified Professional
Website: https://devneet.github.io/
Email: devneetmohanty07@gmail.com

----------------------------------
------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
Hope this helps you out and if so, please mark the current thread as the 'Answer', so others can refer to the same for reference in future.
Regards,
Devneet Mohanty,
SS&C Blueprism Community MVP 2024,
Automation Architect,
Wonderbotz India Pvt. Ltd.

 

Ernest1
Level 5

@devneetmohanty07 , Thanks for sharing the sample process. It's very helpful. However, I'd like to ask if we can give some advice on a situation where we have three queue sets connected together. For example:

1. I have many clients
2. I have many cases for each client
3. I have many transactions for each case.

The key element is the Case, which should be done in some way in another system, but it is necessary to check if all transakctions exist that are assigned to this case by ref no.

I would have no problem with this if I would like to handle together point 1 and 2 or 2 and 3 or if it were possible to add another collection to the one Item in the Queue, but I think it is not possible.

Do you have any idea or could you advise something to handle this in an efficient way.

I will be grateful for any tips

Many thanks

M

Hi @Ernest1 ,

Whenever I've dealt with any problem where there is a dependency involved, my general rule of thumb is to start from the lowest atomic level possible, which in this case would be the transactions for each case. Now, the point of your approach should be to first see how many transactions you have in your other system first. So let say you got 500 transactions, what I would do is create 500 items in my Queue A for all these 500 items. Now, each of these transactions definitely should have a case which should be identifiable in some system or a business configuration file or in some database I assume that you should add as the Item key for each item in Queue A.

My next point of approach would be that I simply create another queue called Queue B let say and I will add all the unique cases that I can get from your source to this queue. Here, my Item key would be the name of the client and I will also assign the name/ID of the case as a field value within the queue item.

Ideally, this should be more than enough for you since when you process one item in Queue A, you will know which is the parent item in Queue B, so in your processing workflow, you first pick the first available item in Queue B, fetch case ID/number, use an action to get the next available item based on item key as the case ID from queue B which will return you next available item from queue A and then you process it and the mark the current item from queue A as completed. You again will check if there is any more pending item left from Queue A (if yes, you pick the next available item from queue A based on item key as the case ID from queue B and repeat, if no, you mark the current queue B item as completed and check if you have the next available item from Queue B (if yes, you repeat the steps I mentioned earlier or you go to the finalization steps where you may send out a process report and you can easily get the unique list of clients if needed from the item keys of your processed items in queue B)

I usually prefer to have a separate reporting process altogether when I go for parent-child architecture as it gives me freedom to choose how my reporting needs will get fulfilled. Here, you can see if any cases or transactions are not in exception or in some other state than completed for each of your unique clients and accordingly you can make decisions based on your process rules

---------------------------------------------------------------------------------------------------------------------------------------
Hope this helps you out and if so, please mark the current thread as the 'Answer', so others can refer to the same for reference in future.
Regards,
Devneet Mohanty,
SS&C Blueprism Community MVP 2024,
Automation Architect,
Wonderbotz India Pvt. Ltd.

@devneetmohanty07 , thank you for your answer. Do I understand correctly that in such case you suggest to build a solution with the A-Transactions queue as Child (Iterm Key like: Transaction ID + Case ID) and the B-Cases (Item Key like: Case ID + Client ID)?

In my solution I did something like this:
A-Transactions queue as Child (Item Key like: Transaction ID + Case ID + Client ID) and the B-Clients as a Parent (Item Key like: Client ID). Additionally, to retrieve all transactions for one Case from the queue (child queue), I added the Case ID to each Item as a tag. In fact, in my process Client ID = Input File Name

Of course, I will analyze your proposal. Thank you.

I have one more question. Blue Prism templates are prepared to:

1. get an item from the queue
2. perform a task in system A
3. perform a task in system B
4. Mark an item in the queue as Completed /or Exception.

However, it seems to me that a much faster solution may be to switch to system B when all Items in system A are Completed.
Have you ever used such a solution?
The point is that switching between systems may rise the risk of automatic logout or disconnection of system B or A when a task is performed in system A or B respectively.

for example it could look like this:
1. get an element from the queue
2. execute the task in system A and get the next element from the queue.
After executing all the elements, repeat the same actions for system B, i.e. like this:
3. get an element from the queue
4. execute the task in system B and get the next element from the queue.
After executing all the elements from the queue, go to the steps that end the process.

I will be grateful for any suggestions

Many thanks,

Ernest1