【UiPath】「制御フローアクティビティの機能」を理解する【初心者】
UiPathの学習追体験記事です。
※あくまで学習中の脳内を記事にしたものなので、この記事で書かれてあることが”正しい”とは限りません。
参考:学習効率本5巻 「知識の自作」
0.動機

「UiPath RPA アソシエイト資格試験」を受けたい!
と思い、練習問題のプラクティステストを受けてみたが、正答率は半分にも満たなかった。徹底的にプラクティステストの復習をするしかない!
ということで、本記事では、プラクティステストで間違えた問題の復習の様子を書きつらねていきます。
まずは、間違えた問題の紹介。
Main.xaml から ProcessInvoices.xaml ワークフローを呼び出すため、[ワークフローファイルを呼び出し]を配置しました。Main.xaml から invoices_DT という名前のデータテーブルをProcessInvoices.xamlに渡す必要があります。
どのアクションを実行すべきですか。
引用元:https://www.pearsonvue.co.jp/uipath
UiPath RPA アソシエイト資格試験 プラクティステスト
解説部分には、この問題で求めている知識が紹介されていた。内容は以下。※答えは明示されてない
トピック:制御フローアクティビティ、シーケンスやフローチャートなどのワークフロータイプの使用方法およびそれらの機能を説明する。
引用元:https://www.pearsonvue.co.jp/uipath
UiPath RPA アソシエイト資格試験 プラクティステスト

シーケンスやフローチャートは、UiPath Studio使うとき、ほぼ1回以上は使うよね。当たり前のように使っているけど、改めて、どのような機能があるのか確かめたい。
では、以下から、「制御フロー」の復習をしていく。
1.座学
書籍やネットの情報をもとに学習
検索
理解する対象に関する情報を書籍やネットで調べる。
今回の理解の対象である「制御フロー」については、UiPathアカデミーの以下の階層にあった。
UiPathアカデミー>UiPath Studio開発 初級コース>レッスン一覧>制御フロー
では、「制御フロー」の説明文をそれぞれ見てみる。
制御フロー
制御フロー (制御構造) とは
制御フロー (制御構造) とは、処理を実行する流れを定めたものです
代表的なものとして「順次構造」・「分岐構造」・「反復構造(ループ)」があります引用元:https://academy.uipath.com/jp/learningpath-viewer/1954/1/153406/16

うんうん、順次構造がシーケンスで分岐構造がフローチャートで……みたいな話だよね。
吟味
「制御フロー」の説明文を軸に考えを膨らませる。

ざっと見た感じ、1つのアクティビティで細かい場合分けはできなさそう。

細かい場合分けは、複数のアクティビティを組み合わせることで、実現できるのかな。この辺は、プログラミングの知識が必要になってきそうだ。
2.実践
実際に手を動かすことで理解を深める。
フローチャートで色々試す
今回は”分岐”をメインに学習していくため、フローチャートを使っていく。
・分岐
まずは、分岐に挑戦。
とりあえず、「フロー条件分岐」アクティビティを「フローチャート」アクティビティ内に置く。
このままだと、なにを基準に分岐するのか分からない。
「フロー条件分岐」アクティビティのプロパティを見てみる。
「条件」の欄があった。ここに条件式を記入することで分岐を作れるのだろう。
ざっと、以下画像のようにワークフローを作成した。
変数flowが100を上回る場合と下回る場合の分岐を作る。
100を上回った場合は、Trueの方に、
下回った場合は、Falseの方に進む。
変数flowに110を代入するようにして、実行してみる。
上記画像のように、True側のメッセージボックスが実行された。
変数flowに90を代入するようにして実行してみる。
上記画像のように、False側のメッセージボックスが実行された。

分岐は、「フロー条件分岐」アクティビティを使うことで実現できるんだね。「フロー条件分岐」アクティビティを見たところ、分岐はTrueFalseの2方向しかないみたい。3方向以上に分けられないのかな。
以下画像のように、分岐を増やしてみた。
変数flowに90を代入して実行すると、
二つ目の分岐でTrueの方に進んだ。

ふむふむ、「フロー条件分岐」アクティビティを複数使うことで、複雑な分岐構造を作成できるんだね。
ちなみに、1つ目と2つ目の「フロー条件分岐」をFalseになるように設定して、実行したところ、
上記画像のようになった。
・戻る
フローチャートで前のアクティビティに戻れるかやってみた。
結論から言うと戻れた。
上記画像のように、3つ目の「フロー条件分岐」から「代入」アクティビティを通って、1つ目の「フロー条件分岐」に戻るワークフローを作成した。
実行すると、
1つ目の「フロー条件分岐」に戻り、True側のメッセージボックスが実行された。
ちなみに、2つ目の「代入」アクティビティをコメントアウトして、どの「フロー条件分岐」アクティビティでもFalseになるように設定したところ、
無限ループが起きた。

制御フローの「フローチャート」アクティビティ内で「フロー条件分岐」アクティビティを使うことで、分岐構造を作れたり、前のアクティビティに戻って実行を続けたりも可能なんだね。
3.まとめ
制御フローに着目して、学習を行ってみた。今回の学習で理解したことを自分の言葉でまとめてみる。
・「フローチャート」アクティビティ内では、「条件分岐」と「戻る」ができる。

コメント