キュー内のトランザクションデータを削除する方法

Orchestratorに登録されたキューにトランザクションデータを追加する方法は分かりましたが、Studio開発用ソフトから一つのキュー内のトランザクションデータ全てを削除するActivityはご存知でしょうか?
具体的な事例を用いて教えて頂けますと幸いです。

こんにちは。

Studio上でトランザクションのステータスを「成功・失敗」にするではなく「削除」ですよね、、。

Studioからの実行ではないのですが、少なくともOCのAPIを呼び出すことで、QueueItemを「削除済み」にすることは可能です

HTTPのDELETEの /odata/QueueItems({Id}) がそれに該当します。。
くわしくはOCのSwaggerのAPI仕様をご確認いただければ。。
https://docs.uipath.com/orchestrator/lang-ja/reference#api-references

直接的な回答でなくてすいません。。

Orhcestrator http request activityを使うという方法でしょうか?

システムに疎いもので、プロパティのJSONペイロードとエンドポイントの相対パスとは具体的に何を指すのでしょうか?先ほどお示しいただいたURLのどこが以下2つに該当するのでしょうか?

RelativeEndpoint - ベースの Orchestrator URL を基準にして要求を作成するエンドポイントです。

JSONPayload - 指定した Orchestrator エンドポイントに送信する JSON 形式の情報です。JSON はインデントしてはいけません。このフィールドでは、文字列、文字列変数、または文字列式のみサポートされています。

こんにちは。

Orhcestrator http request activityを使うという方法でしょうか?

そうですね。

ちょっと確認してみました。
「キューアイテムを取得」「トランザクション アイテムを取得」それぞれで得られるqueueItemで挙動が違うので、ちょっと下記に整理して書きますね。


「キューアイテムを取得」で取得したqueueItemについて

■「キューアイテムを削除」アクティビティを実行
(裏では POST /odata/QueueItems/UiPathODataSvc.DeleteBulk が呼ばれる)
→ 削除済み になる

■「Orchestrator への HTTP 要求」アクティビティで、
エンドポイントの相対パスに “/odata/QueueItems(”+queueItem.Id.ToString+")"
メソッドはDELETE
(JSONペイロードは からっぽ)
→ 削除済みになる

「トランザクション アイテムを取得」で取得したqueueItem について
どちらもアクティビティも、そのままでは削除できなかった
なので「トランザクションのステータスを設定」アクティビティでステータスを「Successful(成功)」にしたのち、

■「キューアイテムを削除」アクティビティ
→ エラーにはならないが、ステータスは「成功」のまま
(電文上 「いくつかの項目は更新されていません。 理由: アイテムは既に別のユーザーによって変更されています.」という戻り値になってました)

■「Orchestrator への HTTP 要求」アクティビティ
→ 削除済みになる


というわけで、まとめると
「ステータスが成功であるトランザクションアイテムについて「Orchestrator への HTTP 要求」アクティビティで削除済みにすることはできる」
となりそうですね。
(実行中がダメなだけで、成功以外が削除可能か、は未確認です)

シンプルな回答でなくてすいませんがよろしくおねがいします。

1 Like