REF framework and Orchestrator queue

Hello Team,
I am new to UiPath and using REF.
I am facing challenges in working with orchestrator queue in RE Framework and my workflow is as follows-

  1. Add rows of HTML table to Queue- this spans multiple pages. I have used Dispatcher workflow to accomplish this.
    2.In REF, under Process workflow I have to fetch the orchestrator queue items and click on each item(row) and perform set of activities.

Question is- How do I do Step 2? I am able to get the queue item using (in_itemid) in process workflow but how do I span multiple pages and click on the item on HTML page? Since queue items are not retrieved in order, I do not know where would my item be in the table.

Awaiting for the response,
Thanks,
Shruthi

@Shruthi15 Welcome to the community!

Use a click activity and try clicking (on a key value like invoice number, ticket number etc.) on an item in the HTML table & observe the selectors. You should be able to see some value in the selector that uniquely identifies that row\item. Replace that value with a variable and have the item id from the orchestrator queue assigned to that variable before the click activity.

Thanks for the response @Devarajan_Sundaresan.

I did follow your steps along with-

  1. Element exists with aaname replaced with queueitemid
    2.While loop/ if loop under element exists β†’ True- Click on item(selector- aaname replaced), False->Click on next page

However element exists is not identifying the item and looping over False condition.
Unfortunately I am not finding any unique selectors other than idx, in-turn that is not supposed to be used.

Any answers/ thoughts are highly appreciated

When you click the item manually does your browser url have that item as part of it?
If most of your url is say static and when you click the item the next page is a dynamic addition to the url
ex: http://abc.com/items/123
Then in this case you dont need to search for the item in the table rather just create the url
β€œhttp://abc.com/items/”+in_itemid and use NavigateTo activity.

But then this is entirely based on the page logic.

@Shruthi15 - I am not clear why you used element exists! Anyway, let’s solve one problem at a time. Coming back to the work item and selectors, can you please share a screen snap shot of the selector and the URL when you click an item in the HTMl table.

Nope- Browser does not have the itemid attached to it.

The browser url remains unchanged throughout the process

The next step is to share the selector screenshot.
Ill prefer the UiExplorer screenshot with the right pane expanded.

We can work to see if we can get a stable selector and to begin with manually change the item value to a random one before actually pulling from Orchestrator.

This logic looks good. but may need some additions.

I used element exists because - The HTML table spans over several pages and if I use queueitem on click activity, (ie; aaname replaced by queueitem) it throws an error as could not find an element. Possibly because item is in different page.

Due to security reasons I am unable to share the snapshot.
The selectors that is being captured by default includes- idx, tableCol, parentid, tag attributes

In UIExplorer I can find aaname, parentname,and others.

1 Like

@nadim.warsi is it possible to do without the screenshot? Due to security reasons I am unable to do so.

Ok, Does your element exist work if you use a static selector for an item on say 3rd page?
Does it evaluate to True?

Yes it does, if I do not replace the queueitem and manually provide aaname

Then i guess you need to compare your selector when using the queueitem.
Could be a space or something.
Have you printed the item value and checked if its as expected?

I have used - Element exists activity(aaname replaced), output stored in variable out β†’ while condition until out is False(out=True is’nt entering while condition)->within while I have used if condition to check if out is True then click on item , else click on next page icon(->)

While debugging I get a value in QueueItem variable, looks like it is being captured. I just posted my logic as well.

Ok So,

  1. Item not found(repeat)
    out=false
    While = true
    If =false
    Click on next page

  2. Item Found
    out= true
    while=false
    Seq not executed β†’ will it click the item?

I guess you need to use a different variable in the while say a flag=false and if out=true then inside the IF you set the flag to true so that the while will exit. additionally when item is found you must go back to 1st page so click page1 should be there.

Thank you so much @nadim.warsi. Looks like this is working fine so far.

I have one more question- How do I handle the selector when I do not have anything stable apart from idx?

Great!
Does your selector fail because of the idx? In some application idx values are generated with wild card and they are stable.

@nadim.warsi It does not fail. However I am relying on idx for iterating over HTML table rows by incrementing idx count value while adding items to Queue.
I did extensive research and used following methods but did not work-
Data Scraping, Screen scraping- Not scraping the required data
Get visible text- Throwing Capture error
Get Attribute, Fulltext and Text- Dependent on idx

Currently I am using Get attribute method, depending on idx and adding items to queue.
Any alternative way on this is much appreciated.

Ok so this is your dispatcher process.Well the scraping result could be due to the application itself. How about the OCR process?

Without knowing the application there is very less option to research.