I have searched extensively and read multiple old posts - some going back years - of people asking this same question.
We need to be able to update the Status of a Queue Item directly. Simple as that. For my current use case I need to use Get Transaction and then Get Queue Items, filter the queue items for matching SpecificContent values (because Get Queue Items has no real filtering capabilities), and then mark all those Queue Items as In Progress.
A couple easy ways to solve this - allow passing a Queue Item Id to the Get Transaction activity, so it gets a specific Queue Item; or add the other statuses to the Set Transaction Status activity so it can be used to explicitly set whatever Status we want (including changing from New to In Progress).
Agree with this feature. Same as being able to filter with get queueitems based on specific content.
In your specific case: can you use the reference of the resulting matching queueitems to do a for each matching queueitem: get transactionitem with the same reference filter? (collect them in a new collection of transactionitems to use in a set transactionstatus from in progress to success/failed later in your process chain)
Still needlessly cumbersome, but at least a workaround?
Find other Queue Items with same values in SpecificContent
Mark those other Queue Items In Progress (then later successful)
At this point I have:
Get Transaction
Get Queue Items (all New)
For Each to find just the ones that match and put them into an Array
Loop and create new Queue Items with the Reference I want
Delete old Queue Items that don’t have a Reference
Loop and Get Transaction for each of the newly created ones with the Reference
At this point I have the Queue Items with the Reference correct and marked In Progress. Now I realize as I’m looping and doing Get Transaction I need to update the Array with the new Queue Item so that it works later when I try to Set Status to Success/Fail.
Sounds like a workaround at least.
Since these are clear short commings of the current queue activities / features and we can’t snap our fingers for them to be created, a worthy alternative could be to avoid orchestrator queues as a whole and use a separate datasource to manage the workload. (custom sql database, or hell, even datafabric can solve that (not sure what the licence model is currently). API usage also does not support any of your wishes unfortunately.
Just to give UiPath some info on the problems these missing features cause, this is what I have to do in order to get and process multiple queue items at the same time…
Get Transaction
Get Queue Items (all New)
For Each through New Queue Items, if values match then add to list MatchingQueueItems
Loop through MatchingQueueItems and Add Queue Item with the same information, setting the Reference to the Id of the original Transaction
Delete all now obsolete items based on MatchingQueueItems
Loop and Get Transaction with Reference filter to set all the newly created Queue Items to In Progress, also add each one back to MatchingQueueItems (so I can set them to Success/Fail later)