How To Get Queue Items Based On Output Data Field

Hi,

I’m looking for some way to get Queue Items from Queue by filtering a value in Output Data fields. Like MovedAt field in below screenshot:

image

I want to get queue all queue items where MovedAt field value < 30 minutes from current time.

Get Queue Items don’t have option for this purpose.

Thanks in advance.

1 Like

Hi @ashokkarale ,

There is no direct method to filter using the queue specific data. But you can get the queue items and then use a if condition where you can check the required condition.

Cheers

1 Like

Hey @ashokkarale

You can please do an API request for the same,

odata/QueueItems

Filter can be done in the above endpoint and also the output count can also be controlled.

Hope this helps.

Thanks
#nK

1 Like

@ashokkarale
Let us share some info as we had implemented a similar case in the past

Options:

  • Get Queue Items
    • do some initial filterings
  • ORC Rest API
    • do some filterings and include an initial check on OutputData containing the MoveAt key

In both cases a postprocessing (essential / LINQ /…) will do the details)

With the Rest API we do have options for advanced filtering. But the Output property will cause a failure when involved in filtering and other items do not have. Unfortunately, the AND operator checks all filter conditions (same topic as we do have the AndAlso operator in VB)

Strategies (General)

  • Only items with the status successful can have an output. So we can use this status as a filter option
  • others, your case specifics maybe can be mapped on the creation date
  • order when

Strategies ( REST )

  • filter on the status and the existence of MovedAt within the OutputData provided JSON string
  • order when possible (see below part paging)
  • reduce the data with the select option when possible

Paging (Get Queue Items)

Paging (REST)

  • we retrieve within a first call the count
  • in subsequent calls we used skip/take in relation to the previous retrieved count

Summary:

In our case, we decided on the rest API as we were able to use it more flexibly. Before the implementation, we prototyped our ideas with the help of swagger

1 Like

@ppr, @Anil_G , @Nithinkrishna Thank you for the detailed information.

Could you please confirm if there is any limit for API to retrieve the QueueItems like Get Queue Items have 100 at a time?

1 Like

Hey @ashokkarale

Yes of course, it has a limit of 1000 records per request.

But yes you can use Paging feature using the SKIP & TOP odata querying for getting more than 1000 as mentioned by @ppr

Hope this helps.

Thanks
#nK

Hi @ashokkarale ,

100 is the limit for Get queue items and as @Nithinkrishna mentioned 1000 is limit for API. API has pagination option. The same way in Get queue items you have a skip option where you can have a count of number of items retrieved and skip them accordingly in a loop.

cheers

1 Like

Thank you @Anil_G & @Nithinkrishna

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.