2019.04.15
前回は、Queue(キュー)とTransaction(トランザクション)を使用するにあたり、UiPath Orchestratorの登録方法をご説明しました。
*Orchestratorの登録がまだの方は、【UiPath OrchestratorのQueue(キュー)とTransaction(トランザクション)について】を参考に登録してみてください。
今回の記事では、Orchestrator のQueue(キュー)とTransaction(トランザクション)についてご紹介いたします。
はじめに…
使用するデータ型
トランザクションアイテム:QueueItem型
トランザクションアイテムデータ:
例)String型の中身を取り出す場合は…
“トランザクションアイテムの変数名.SpecificContent(“カラム名”).ToString”
まず始めに、データを収納する場所である“キュー”をWeb(UiPath Orchestrator)上で作成し、そのキューの名前を使って、ロボットがキューにアイテムを収納していきます。
UiPath Orchestrator > キュー > 追加
キュー新規作成後(Orchestrator > キュー)↓
キュー新規作成後(Orchestrator > キュー > トランザクション)↓
キューに追加したいDataTableをForEachRowアクティビティで、各行ごとに繰り返し、一行ずつキューアイテムとしてキューに格納する。
今回は、デスクトップ上にあるfruitsTable.xlsxファイルを読み込んで、キューに追加↓
アクティビティ > 使用可能 > Orchestrator > キュー > キューにアイテムを追加
-プロパティ-
キュー名:①で作成した新規キューの名前
アイテム情報:各行の格納したい列を値として指定。
名前:Orchestratorに表示されるカラム名
方向:キューに対して値を入力するため“入力”
型:値のデータ型
値:キューに格納する値
キューに追加したトランザクションアイテムを取得する。
取得したトランザクションアイテムのステータスは、“実行中”となる。
<取得されるアイテムの順番>
このアクティビティで取得できるトランザクションアイテムは、未処理のアイテムのみ。未処理のアイテムが複数ある場合は、追加された順に取得される。
アクティビティ > 使用可能 > Orchestrator > キュー > トランザクションアイテムを取得
-プロパティ-
キュー名:取得したい(Orchestratorで設定されている)キューの名前
トランザクションアイテム:QueueItem型の変数
分岐の条件として、トランザクションアイテムをキューから取得できたか否かを判断する。
取得できなかった場合→処理終了
取得できた場合→⑤へ
例)“③で取得したトランザクションアイテムの変数 Is Nothing“
アクティビティ > 使用可能 > プログラミング > コレクション > コレクションに追
加
-プロパティ-
TypeArgument:QueueItem型
コレクション:QueueItem型のリスト変数(あらかじめ作成しておく)
項目:③で取得したトランザクションアイテムの変数
※コレクションに追加したアイテムは、“ForEach”アクティビティで取り出しが可能。
今回は、コレクション内のアイテムをExcelファイルに出力。
-プロパティ-
TypeArgument:QueueItem型
コレクション値:QueueItem型のリスト変数
アクティビティ > 使用可能 > Orchestrator > キュー > トランザクションのステータスを設定
-プロパティ-
ステータス:トランザクションアイテムのステータスを指定(成功/失敗)
トランザクションアイテム:③で取得したトランザクションアイテムの変数
※トランザクションのステータスは、“成功”と“失敗”の設定のみですが、“実行中”のアイテムに限り、“進捗”は独自で設定することができます。例)“遅れ気味”
ステータスを“成功”に変更した場合、実行が完了したという認識となり、設定した進捗は画面から消えます。
シナリオ実行中のキュー画面(Orchestrator > キュー)↓
シナリオ完了後のキュー(Orchestrator > キュー)↓
シナリオ完了後のトランザクション画面(Orchestrator > キュー > トランザクション)↓
トランザクションの詳細表示画面
(Orchestrator > キュー > トランザクション > 詳細を表示)↓
これで、キュー内のトランザクションアイテムがすべて処理できました。
今回作成したシナリオを載せておくので、参考にしてみてください。
今回は、キューとトランザクションについて、どのようなデータが収納することが可能で、どのようなデータ型でアイテムが取得出来るのか、シナリオの書き方も含めご紹介させていただきました。
記載したシナリオは、取得したトランザクションアイテムのリストデータを、Excelに書き込むという単純な処理です。
そのため、ロボット2台で並行処理した場合と、ロボット1台で処理した場合の処理時間は、あまり変わりませんでしたが、処理が沢山ある場合、または処理するデータが多い場合は、処理時間が大幅に削減することができるため、とても便利な機能と言えます。
まだキューとトランザクションに触れていない方は、是非試してみてください。