How can I query queue elements via API and filter by values in specfic content

Hello, I want to query a queue via api because the “getQueueItems” is limited to 100.
I managed to query a specific queue and use the “reference” field as a filter. I know that the reference field is intended for other purposes, e.g. to enable unique values.
But this allowed me to limit the number of elements received to certain values.
Now I think it would be better if I could filter for values in the specific content. e.g. field “city” contains “New Orleans” to find all people with an address in this city.
Is this generally possible? If so, please provide an example.

Hi @martinN

To get the Queue Items other than 100 limitation check below post for your reference

Hope this may help you

Thanks,
Srini

@martinN

You can filter specific content using api…

If only count is issue then api also has only 1000 limit

If using get queue iems you can get and then use linq to filter specific content

For api filter look at this

Cheers

Thanks for the answers, but I think I wasn’t specific enough. The API point is not QueueItems in my query. Because this is exactly where the limitation is.
My approach is this: I first get the queue ID via a query. (it’s an Int64!)
Then I would like to query via the endpoint “/odata/QueueDefinitions(”+intQueueID.ToString+“)/UiPathODataSvc.Reports”.
My first query currently looks like this:
“/odata/QueueDefinitions(”+intQueueID.ToString+“)/UiPathODataSvc.Reports”+ _
“?$filter= ((QueueDefinitionId eq “+intQueueID.ToString+”)”+ _
" and ((contains(Reference,‘“+in_QueueItemReference+”’))))" + _
“&$expand=Robot&$orderby=EndProcessing desc”
This query works fine and I get all data I want.
But using the “Reference” field has many disadvantages. Therefore I would like to query via SpecificData.
Here is the problem:
But if I change the filter and want to filter via SpecificData as suggested, there is an error 400 → bad request.
For your information, my query looks like this:
“/odata/QueueDefinitions(”+intQueueID.ToString+“)/UiPathODataSvc.Reports”+ _
“?$filter= ((QueueDefinitionId eq “+intQueueID.ToString+”)”+ _
" and ((contains(SpecificData,‘"KEY":"“+in_strValue+”"’))))" + _
“&$expand=Robot&$orderby=EndProcessing desc”
I think the error is in the second to last line. Does anyone see a typo?

just to get it clear

  • The Get Queue Items limit of 100 we can handle and also retrieve the other items
  • The corresponding REST API also has a limit which we handle similarly (skip / top for paging)

we assume: Export and not report

API Call / Odata Filtering:
when filtering over all queue items and some queue items do not have this specific content field, then we risk a 404. We encountered also the same for defensive AND conditions as the with AND conjuctions checks are not stop on the first failing conditions (~ Vb.Net AND, AndAlso)

A defensive approach could be a contains / IndexOf check on the Specific Data

  • Contains(SpecificData,‘“city”:“New Orleans”’)

Also we can check if the nested filter expand technique can help

Get Queue Items Activity Call / Filtering:

  • we can implement a post processed filtering with a LINQ