REFramework change queue item status from InProgress to New

Hello,
I’m trying to understand how to change at the end of my process statement the queue status from Successful to New based on which day is today.
For example if I take queue item with column day of the week Monday, the robot shouldn’t process the queue item and move it to New again. Because depends on which day it is. I’m letting different queue items to be processed.
I see that set transaction status xaml file have only Successful or Failed status?
How to make the New status?
At least which activity contain the setting for selecting different status from Successful or Failed?

Thanks in advance!

@Veselin_Ganchev You can use Postpone transaction item activity to postpone the item to the day for which you want to process the item. This activity change the queue status from status (InProgress, failed, successful) into New status.

Please let me know if this works for you. Thanks !!

I don’t think you have access to a “Successful” queue item. Your “program” (flow/automation) only can turn

  1. new to In progress
  2. In progress to Failed/Successful
  3. maybe “failed” to retried (if you use retry with config.xlsx, but if you work with queue you would normally we set that to 0, and let orchestrator # of retires do this job.)

In case you handle retries with Orchestrator, then when item fails:
Orchestrator decides if retries or no (depending on #of retries reached or no),
if retries it will set the queue item to “Retried” and it creates an identical queue item with “new” status automatically, if not, it’ll mark it failed

I don’t think that you would have a way to re-access a Successful/Failed/Abandoned/In progress/Retried, queue items. You only can access “New” ones.

But there are workarounds… if you want redo same queue items, you could do it by editing SetTransactionStatus.xaml, just before it sets the status to “Successful”, you could create a “copy” of that queue item and re-add it, maybe with postpone as some1 above explained,

or maybe when it is “Successful” also in SetTransactionStatus.xaml, you can add it to an other queue call it “ItemsToReadd” or just a DataTable or whatever.

and somewhere at the end (EndProcess) develop/invoke a workflow that readds these queue items from the temporary/datatable q to original q, just by looping trough… you have to figure out at what point it would be wise to do this step…

1 Like

(Since I learnt something new) I have to change my answer. You can access all queue items, even processed ones.

For my current work, I needed to check if my queue was empty (because my dispatcher only dispatches if queue is empty) so I researched some activities, and developed a little Library.

Actually “Get Queue Items” activity can just help on that.
What it does is it can return a “list” of queue items
(basically as an IENumerable) and you can put it in a result variable.
image

It is very well configurable, you can select of you only want “NEW” or “In progress” or whatever items, you can set it, by checking the boxes what you want in property panel.

image

Also, you can filter by date for example
image

You can select top X queue item (so you can work in batches)
image

And there is more, but there is documentation, so I won’t include everything here.

So I just made a little library with functions like “IsEmpty” to check if my queue has something to process (check for “New”) and returns True/False as result. (and a few more other functions/activities/call whatever you want it)

For example my IsEmpty checks if queue is empty by requesting new items checking the count
: QItems.Count.Equals(0).

Similarly you can use this “Get Queue Items” to process your own stuff, but it’s not something that REFramework is “prepared” for, what you could do is, maybe secondary queue that you can use in your REFramework, but you can filter some queue items out from the original queue, with Get Queue Items, add them to the new queue, remove them from the old queue.
Something like that.

UiPath doesnt allow for this since in real life it would cause for an infinite loop of the item. However, you can add a postpone and add the time to Now. which would se the item status to New. Best to add a description to the item so you now it has already failed.

This is a 3 year old post that @Robert_Lovasz dug up.

@Robert_Lovasz instead of digging up an old post to reply to, you should create it as a new post in Tutorials.

you’re right, I just did not look at the date,

the top banner
“​UiPath Community 2023.10 Release - Recap”

and the fact that answer response is accepted as “Solution”

always makes me think its a fresh topic

and yes, I have plans to do some tutorials on my YT channel :smiley: just now my course/traineeship is ending, and we are in job search, so kind of busy, plus I got different YT and other projects, so UiPath is not first on my list :smiley: