【UiPath】「UiPath Orchestrator 『キュー』の使用方法」を理解する【初心者】
UiPathの学習追体験記事です。
※あくまで学習中の脳内を記事にしたものなので、この記事で書かれてあることが”正しい”とは限りません。
参考:学習効率本5巻 「知識の自作」
0.動機

「UiPath RPA アソシエイト資格試験」を受けたい!
と思い、練習問題のプラクティステストを受けてみたが、正答率は半分にも満たなかった。徹底的にプラクティステストの復習をするしかない!
ということで、本記事では、プラクティステストで間違えた問題の復習の様子を書きつらねていきます。
まずは、間違えた問題の紹介。
キュー アイテムのプロパティが示された表のように設定されています。ロボットは2020年4月21日(2020-04-21)にこのキューからアイテムを処理しました。
…画像…
ロボットはどの順序でアイテムを処理しましたか。
説明:ドロップダウンリストからロボットがアイテムを処理した正しい順序を示す番号を選択してください。引用元:https://www.pearsonvue.co.jp/uipath
UiPath RPA アソシエイト資格試験 プラクティステスト
解説部分には、この問題で求めている知識が紹介されていた。内容は以下。※答えは明示されてない
トピック:UiPath Orchestrator キューおよびアセットの使用方法を理解し、説明する。
引用元:https://www.pearsonvue.co.jp/uipath
UiPath RPA アソシエイト資格試験 プラクティステスト

キュー?アセット?
今まで一度も使ったことない。けど、聞いたことはある。
「キュー」は、Youtubeで見たい動画をまとめるとときに使った覚えある。
「アセット」は、Unityで聞いた。意味的には、UiPathのライブラリに近いかな。
では、以下から、「キュー・アセット」の復習をしていく。
1.座学
書籍やネットの情報をもとに学習
検索
理解する対象に関する情報を書籍やネットで調べる。
今回の理解の対象である「キュー・アセット」については、UiPathアカデミーの以下の階層にあった。
UiPathアカデミー>UiPath Orchestratorコース>レッスン一覧>UiPath Orchestratorコース>アセットの活用・キューの活用
では、「キュー・アセット」の説明文をそれぞれ見てみる。
キュー
キュー :処理データを格納するコンテナです
キュー アイテム:例えば、Excel の 1 行分のデータが 1 つの処理単位としてまとめられ、キュー内に格納されるものです引用元:https://academy.uipath.com/jp/learningpath-viewer/1956/1/153416/16
アセット
「アセット」には、自動化プロジェクトで共有・再利用可能な情報を資産として格納できます
引用元:https://academy.uipath.com/jp/learningpath-viewer/1956/1/153416/16

キューもアセットも説明文を見た限り難しそうな印象はない。今まで、他のツールで触れてきたキューやアセットと似た機能にも思える。
学習ハードルはそこまで高くなさそう。
吟味
「キュー・アセット」の説明文を軸に考えを膨らませる。
キュー

キューに格納するもの(キューアイテム)は、どのようなものかを詳しく知りたいね。
UiPathアカデミーでキューアイテムについて探してみた。
例として、「Excelの1行分のデータ」が挙げられていた。

ふむふむ、なんとなくイメージつくかな~。はじめはExcelのデータを使ってキューを試してみると良さそうだ。
アセット

「格納」と聞くと、変数や引数が思い浮かぶ。アセットの場合も変数や引数と同じように”型”があるのかな。
また、どのレベルでデータのやりとりを行うのかな。変数であればアクティビティ間で、引数であればオートメーション間だった。そもそも、データのやりとりを行う機能なのかもちゃんと知りたい。
UiPathアカデミーでアセットについて探してみた。
疑問1つ目、変数や引数のように”型”があるか?
結論から言うと、あった。
Text (String 型)・Bool (Boolean 型)・Integer・Credentialの4つの型から選択できるようだ。

やはり、アセットにも”型”があるのか。”型”の種類を合わせて扱うことが重要になりそう。
疑問2つ目、どのレベルでデータのやりとりを行うのか?
明確な説明内容はなかった。が、URLの話題があったため、クラウド上でのやりとりが可能なのかもしれない(正直よく分からない)。

Unityのアセットは、Unityのアセットストアからインストールして使ってたな。もしかしたら、UiPathのアセットも似たような感じなのかも。
2.実践
実際に手を動かすことで理解を深める。
※キューの実践のみになります。
キューを使ってみる
Excelの1行データをキューアイテムとして、キューを使ってみる。
・キューの場所確認
「キュー」は、UiPathアカデミーのUiPath Orchestratorコースで紹介されていた。Orchestratorのどこかに「キュー」の表記があるはず。
マイフォルダーのDefaultを開くと、「キュー」を発見した。キューをクリックすると、
ロボットのときと同じように、一覧表が表示された。
一覧表右の「+」ボタンをクリックしてみる。
「キューを作成」画面が開いた。
適当に名前を設定して、「追加」をクリックしてみる。
キューが作成された。

ん、キューはあくまでデータを保管する箱みたいなものだよね。これだと、中身なしの箱ができあがっただけ、どうやって、中身を入れていくのだろう。
一覧表の右の3点ボタンをクリックすると、
「アイテムをアップロード」があった。クリックしてみる。

「キューアイテム」となるものをここからアップロードするのだろう。
「ファイル(CSV)」とある。

「CSVファイルしかアップロードできない」ということ?
せっかくなので、CSVファイルをアップロードしてみる。内容は、以下画像。
1行1行独立しているデータを作成した。

格納される場合は、「野球」「ベースボール」がいっしょになるはずだね。
実際にアップロード。
「トランザクションを表示」から内容を確認してみる。
アップロードしたファイルの内容が表示されるわけではないみたいだ。
一覧表右側の3点ボタンをクリック。
「詳細を表示」をクリックしてみる。
2行目のデータが格納されていた。

固有データの欄に、アップロードしたCSVファイルの一行データが含まれている。しかし、出力データと分析データは「null」だ。この部分は、どう変化していくのだろう。
「キューアイテムを編集」を見てみた。
出力データや分析データと関係ありそうな部分はない。

キューにデータを格納する方法は、なんとなく分かった。でも、これだと格納しただけで、データになにも変化はないよね。どうやって、格納したデータを処理しているのだろう。
・ディスパッチャーを試す
UiPathアカデミーによると、キューアイテムの処理を「トランザクション」と言うらしい。この「トランザクション」の設定方法が分かれば、キューアイテムを処理できるはず。
………
自力でなんとかしようと思ったが、うまくいかず。UiPathアカデミーの説明通りに進めてみる。
UiPathアカデミーの解説によると、「ディスパッチャー」と「パフォーマー」を活用することでキューアイテムを操作している。
まずは、「ディスパッチャー」を試してみる。
※UiPathアカデミーの説明通りのため詳細は割愛。
ワークフロー作成↓
上記のワークフローを実行することで、キューに値が格納される。
UiPath Orchestratorに移動し、キューを確認。
新しくキューが作成されていた。
キューの中身を確認。
各データが格納されていた。

ディスパッチャーは、キューにデータを格納するワークフローのことだね。このデータを処理する流れを知りたい。
・パフォーマーを試す
UiPathアカデミーでは、ディスパッチャーとパフォーマーをセットで解説している。
パフォーマーの機能に、キューアイテムを処理する流れがあるのかもしれない。
解説動画を見た限り、パフォーマーの機能で重要なのは、おそらく、「トランザクションアイテムを取得」アクティビティ。
とりあえず、「トランザクションアイテムを取得」アクティビティを使ってみる。
フローチャート内に「トランザクションアイテムを取得」アクティビティを設置。
キュー名とトランザクションアイテムを設定。
キュー名は、Orchestratorで作成したキューの名前。
簡単な条件分岐を作成。
データがある場合とない場合で分岐。
ありの場合は、「データあり」とメッセージ。
なしの場合は、「データなし」とメッセージ。
処理済みのデータのステータスを変更する。
「トランザクションのステータスを設定」アクティビティで処理済みデータのステータスをSuccessfulに変更する。そして、「トランザクションアイテムを取得」アクティビティに戻る。
未処理のデータが残っている場合は、上記の流れを繰り返し、すべて処理済みになった段階で「データなし」とメッセージが送られる。
キューに格納されているデータは以下。
ヘッダーを抜いて、9個のデータがある。
格納されているデータをOrchestratorで確認してみる。
ステータスが「新規」となっているデータが9つある。
では、実行してみる。

う~む、初心者には、ちょっと難しい。。
要するに、作成したワークフローを実行すると、キューに格納されているデータが呼び出され、そして、処理される。で、その処理済みかどうかをOrchestratorで確認できるってことだよね。
フロー条件分岐のデータありの処理に移行した。
「OK」をクリック。
Orchestrator のキューの状況を見てみる。
「成功」が1つ、「進行中」が1つとなっている。
トランザクションを確認してみる。
9つのデータの内、成功が1つ、進行中が1つとなっている。他はすべて「新規」。

「OK」をクリックしたことで、呼び出した1つのデータの処理が終わり、ステータスが「成功」に変わったんだね。
現在、呼び出された状態のデータが「進行中」のステータスに変わったってことだね。
ってことは、残りの「新規」は処理待ちってことか。
さらに、処理を進める。
最後のデータを処理する。

最後のデータの処理が完了したら、「データなし」の分岐に進むはずだね。
「データなし」の条件分岐に移った。

キューアイテムの処理方法は、ある程度分かったかな。
基本的には、
処理=「トランザクションアイテムを取得」アクティビティを使う
と考えた方が分かりやすそうだ。
3.まとめ
Orchestratorのキューに着目して、学習を行ってみた。今回の学習で理解したことを自分の言葉でまとめてみる。
・キューにデータを出し入れする作業が、ディスパッチャーとパフォーマーの役割
・ディスパッチャーは、「キューを追加」アクティビティが主体
・パフォーマーは、「トランザクションアイテムを取得」アクティビティが主体

変数や引数のクラウド版って感じかな。
コメント