본문 바로가기

IT/UiPath

Orchestrator에서 queueItem이 In Progress인 경우

UiPath를 사용하다 보면 QueueItem이 In Progress 상태인 경우를 볼 수가 있다. 이때 In Progress이면 Robotic Enterprise Framework로 Get Transaction Item을 쓰면 QueueItem을 가지고 오지 못해서 Null값이 반환된다. 

 

그럴때에는 Get QueueItems라는 액티비티를 사용 하면 된다. 

아래 그림 처럼 Get QueueItems에 가지고 올 Queue Name을 명시하고 속성(Properties)값에는 QueueItemStates 부분에 In Progress를 선택하면 In Progress항목들의 QueueItem들을 가지고 온다.

<Get Queue Items>
<Get QueueItems속성>

 

그 이후에는 For Each 문으로 써서 QueueItems항목에 QueueItem을 반복문으로 지연(postpone)시키면 된다. 원래는 24시간 뒤에 in progress가 없어지는 것이 원칙인데 개발자들은 24시간이 아니라 당장 해야 하니, Postpone Transaction Item의 QueueItem에서 Postpone에서 DateTime.Today().AddMilliseconds(1)로 기재한다. 그러면 오늘시간1초 후에 지연 시킨다는 의미이다. 그러면 In Progress부분이 다 New로 바뀌면서 Transaction Item을 가지고 올 수 있다.

 

<For Each 속성값은 UiPath.Core.QueueItem으로 지정>

 

<PostPone에서 1미리초 이후에 postpone시킴>