How to use queue by Using 3 Bot on a single flow

Hi Team,

I have a RE Framework that is used by three bots.
I have a master file with 2000 row items in it that I want to load into the queue.

So here’s my question: I only want to process 100 items each day from the queue.

@Shivam_Rana

Daily add only 100 items to the queue and save the end row number in assets …

and in dispatcher you can read the asset value and start adding the next 100 starting from the next row

cheers

@Shivam_Rana
As Anil suggested to make asset and assign value one get value in every transaction and increament as well after every transaction in here

you will put condition also here over asset value. Suppose your job running after every 15 mints then asset will safe your value.
->Here one more thing you need to check date as well so you will reset after 100

Hi Anil ,
Thank you for your response.

If possible Could you please give me more detailed explanation also if i get step by step solution then it would be great.

Awaiting for your response.

Hi Raja.

Thanx for the quick answer.
Can you please share the step by step solution with screenshot.

Thank you in advance

@Shivam_Rana

  1. Create an asset count and initialize it with 0
  2. In your dispatcher before adding items read the asset value and store in a variable
  3. Read the data of 2000 or any number of rows into datatable
  4. Use if condition to check if all data is already added or there is some more data to be added to queue dt.RowCount.Equals(Cint(assetCount))
  5. On then side all rows are proceeded nothing to add and on else side use assign with dt = dt.Skip(assetcount).Take(100).CopyToDataTable this will skip the items already processed by reqding value from asset and take the next 100
  6. Use bulk add or loop and add the 100 or how many every remaining items to the queue.
  7. After adding use set asset and set the asset value to Cint(assetcount) + dt.RowCount(now dt.rowcount will be 100 or less depending on how many items have been added

This way every time only 100 are added and as count is maintained we can skip those rows from datatable and add the next set to the queue

Hope this helps

Cheers

1 Like

Hi @Shivam_Rana

Try this

  1. Create a counter variable to keep track of the number of items processed each day. This variable will be incremented with each item processed.
  2. Retrieve the daily limit: Determine the maximum number of items you want to process each day, in this case, 100 items.
  3. Modify the Get Transaction Data state: In the Get Transaction Data state of the RE Framework, adjust the logic to retrieve transactions from the queue. Instead of retrieving all available items, retrieve only up to the daily limit of 100 items.

Thanks!!

1 Like

Hi Anil,

dt.Skip(assetcount).Take(100).CopyToDataTable - this like shows error

@Shivam_Rana

My bad it should be dt.AsEnumerable.Skip(assetcount).Take(100).CopyToDataTable

Missed .AsEnumerable

Cheers

1 Like

Also i have 1 more addition question -

when execution begins , bot will add the 100 row item to the queue.

Lets suppose i have 3 bot and i want one of my bot to add those 100 item to the queue rest two will only process the queue item.

How can i achieve this?

@Shivam_Rana

Did you give assetcount as the output of get asset?

For the later case…have a flag in the input argument…and set true when you want to add queue items and false for the remaining…and use a if condition around your dispatcher or the queue addition part and give the argument as the condition

Cheers

Thank you very much. I am now able to add 100 items to the queue and increase the value of an asset by using the set asset activity.

It would be great if you could explain the three bot scenarios in more detail, such as how one bot can put an item to the queue while the others process the queue item.

@Shivam_Rana

I hope you are adding the queue items in the initlaize state…

Add an input argument bool_control to the main.xaml and datatype as boolean…

Now…use a if condition and give the condition as bool_control

On the then side add the workflow which you are using to read excel and add queue items

And on the else side do nothing

And when you start the job set the bool_control to true for one bot and false for other bots

Or you can set a queue based trigger and give the input argument as false for that

And create a time trigger and give the value as true

So that the time trigger adds queue items and queue trigger will trigger bot but will only process the queue items but not add

Cheers

Cheers

Thanks anil it worked :blush:

1 Like

@Shivam_Rana

Happy Automation :slight_smile:

Cheers

1 Like

@Anil_G

I have created the workflow as suggested by you and it worked really good.

But i have one more ask let say in my input file i have a column name Priority if its value is yes then we have to upload those item first in queue and if its value is blank then they will upload after yes value item.

How can we do that by using your flow ?
Awaiting for your response :smile:

@Shivam_Rana

Sort the datatable…on that column and get all the yes columns to top…

Cheers

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.