Need solution on Design/Best Approach

All - I have a situation where struggling to get help with best approach of doing it. I ll try to put in simple words here, please provide some best approach/solutions for this scenario.

An excel containing Identification number (ID NUM) column and value. It has multiple rows for ID 001, ID 002, ID 003, … ID 16. E.g, if the sheet contains 1000 rows, there will be 500 num of ID 001 and some 250 records of ID 002 and some 700 records of ID 005 etc… ( its not so mandatory that all 16 ID NUM should be present). I can upload all those 1000 rows in to one queue say “ID Num Queue”

Issue here is, one bot can perform only one ID NUM record. E.g if BOT 01 is performing one record of ID 001 record, the BOT 02 should not perform another record of ID 001. similarly the same for other ID NUM as well. Ideally, the queue has mixed records of ID 001 … ID 016. and how can i process all 1000 records in parallel with some 5 bots. please help me in designing this approach.

image

Thanks,
KK

3 Likes

I’m thinking you could add a dt variable (we will call it TempTable) with two rows, ID and Machine Name. As soon as BOT 01 begins to work on ID 001, it adds the ID 001 and Machine Name to TempTable. Quick summary:

  1. Read excel into dt
  2. For each on dt: Does ID exist in TempTable2 (filter dt)? If so, next record and repeat step 2 again. Otherwise, go to step 3.
  3. Filter dt on first ID to TempTable
  4. Add ID and Machine Name (Environment.MachineName.ToString) to TempTable2

Create a rule that only allows the bot to work on this ID if the machine names match.

3 Likes

Is the processing time consistent rows that have the same ID NUM value (ex: all records of ID 001 take roughly 30 - 60 seconds to complete)?

Since entries with the same ID Number cannot be worked on simultaneously, I would treat each batch of entries with the same ID Number as a single queue item. Each Excel sheet can have up to 16 batches, each one with its own estimated process time. These 16 batches are then queued and processed simultaneously by some 5 bots
You could create new Excel sheets for each batch. There might be a better way about this as well

From here, you can choose different queuing strategies and test to see which one is the most efficient (or calculate this). Since Orchestrator uses a First-In-First-Out (FIFO) system, the order in which you put the batches into the queue will be the order that the bots process the batches. I suspect ordering by anticipated process time will be the best

3 Likes

you mean to say, i need to do a process of separating all those ID num in to separate excel sheets and then upload each sheet in 16 different queues? - if am not wrong - is it best practice to create 16 queues? or any thing else could do?

on reading the queues - i need to assign 5 different bots for each queue? can you explain much detail about the FIFO system while working on batches? it would help better way.

1 Like

Good thought, Can you please explain in detail? but, on running… how this can be handled dynamically?

1 Like

Can you share the .xaml?

@bcarp - Figuring out the way to start the development on this new request.

You would still have 1 queue on Orchestrator but that queue would only contain up 16 queue items, where each item is a “batch.” Having 16 different queues would be problematic in this case

The underlying principle here is that you want all the records with the same ID to be processed together. When Bot 1 processes a record with ID 001, Bot 1 should continue to process all records with ID 001. Since that is the case, it would be easier to treat all the records for ID 001 as one queue. You may be able to upload a datatable to the Orchestrator queue (Bulk Upload Option to load the Queue) as well. I’m not familiar with this, however