What happens to the In Progress item in a queue if it didnt get process?

Hi All

If due to some reason a transaction item in a queue could not process, then what happens to that item ?

Does Get Transaction Item fetch In Prog item or only New items ?


You mean QueueItem with Inprogess or New state. If item with New state then nothing will happen and if it is with Inprogess then it will be Abounded post 24 hours.

It will fetch items with New state only. If you want to read items with other state then use Get Queue Item activity.

Thanks @lakshman.

I think GetQueueItems will only give list of items with some specific state. But it wont get processed on by one as in Get Transaction Data activity in RE framework.

If the goal is to enable processing, you’ll want to change the status with SetTransactionStatus activity.

Important question: Are you using REFramework? If not, I recommend it. There may be a bit of a learning curve at first, but the resulting application is quite robust. Handling exceptions is one area that it really helps out.

Yes we are using REF.

SetTransactionActivity will just set the final status, not the state.

Add queue item:
→ creates a new transaction item; status new

Get transactionitem:
→ fetches the transaction item from a queue; status goes from newin progress

Set transactionStatus:
→ Completes the transaction; goes grom status in progress to either succes or failed
→ Depending on your queue retry settings it can also be set to retried and a copy of the queueitem is created again with status new

Failing to set the transactionstatus with the 3rd activity will leave the transaction item on in progress, untill it times out (24h default, but depends on server settings) changing into abandoned

You cannot manually alter the state of transactionitems (other than maybe API calls or direct DB access, better not to though)

With get Queue items you can queury the orchestrator for any list of queue items. Filtered by dats, refences or parts of it, and status. So you can fetch all of them, or only those that are in progress etc.
The REF framework though, does not use this by default. So if you want to catch in_progress queueitems youhave to query for them yourself, and process them accordingly.

You could do this by modifying the ‘get transaction item’ state of the REF, where you first query for a leftover in_progress item and treat it as new, and if none exist, do the regular get transactionitem. You have to be carefull though to pick up an unfinished item, to not create endless processing loops if there is a structural problem on why it didn’t finish in the first place, and to make sure your workflow can complete unfinished work of such an item.

Actually we are facing a concern in the Insight dashboard. Whenever an item is added into the queue it is reflected there.

In process state we are checking if we have got any email response for that particular item. If yes acknowledge else mark it as Pending. Thing is everytime the transaction item is marked as Success but the item will be added into the queue till the response is received.
So that many times the item is added in the Insight dashborad.