How to get end time of a specific queue item

queue

#1

I want to generate a summary of a robot run. When getting all items from a queue it seems i can get start time by using item.StartTransactionTime. However i cannot find a way to get the end time (outside the orchestrator). item.lastprocessedon returns the same value as item.StartTransactionTime. Any ideas?


#2

@ovi perhaps you could point me in the right direction?


#3

Hi @tsl

The End time is not exposed. It cannot be retrieved outside of Orchestrator.

I will check with QA team if this is a bug and get back to you.

Thanks for your patience,
Viorela


#4

Hi @ovi

Thanks! The use case is that the process owner will often want to know an expected endtime of a process. To calculate this i need to get the endtime.


#5

Hi,

while waiting for UiPath’s response you could do it manually in the workflow. In the end of transaction handling just add:
(Now - startTime).ToString("mm\:ss")

br,
Topi


#6

Yes, that would be the workaround @Topi

Thank you!


#8

@topi @ovi
That’s what i used to do. However it does mean i have to store the information somewhere, which seems silly when it exists inside the orchestrator.

Also the workaround does not scale well. I want to run one workflow to generate a summary when all my robots are done with the same flow. Also i want to run one workflow to generate an expected final endtime before the bots run. i have a general dislike for storing the same information in multiple places :slight_smile:


#9

I’m not really seeing the point why you would need a separate process to create a summary.

For scaling you could have a setup where all the bots have some shared location, network drive for example. Then i.e. use Append Line to populate each transactions processing times to the same file. I’ve used CSVs for this and have not yet had any concurrency issues.


#10

@topi i can see how each bot could log to the same place and that would solve the issue. I would normally use a database of some sort for that. However it would effectively also duplicate the orchestrator queue which seems suboptimal. Furthermore i would need to adjust all my workflows to log in this way. With the solution i’m proposing i can run a workflow on any queue and it will tell me how everything went during the last run, how many items are left, and how long they will take to run. All this without adjusting any current workflows or using a log outside orchestrator. the only thing i need for it to work is that in the same way we have UiPathCore.QueueItem.StartTransactionTime we should also have UiPathCore.QueueItem.EndTransactionTime.


#11

@ovi

I will check with QA team if this is a bug and get back to you.

Any news on this?


#12

Hi @tsl

Yes, QA team logged an improvement for this, but since this is no blocker (there is an workaround for it) it will be released most probably in 18.4 version.