実際に使いながら3つのワークフローの違いを理解しよう

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
ワークフローを覚えよう

アクティビティ単体では1つの処理しか行えませんでしたが、ワークフローを使うことによって連続した操作の自動化が可能です。

特によく使用するシーケンスとフローチャートの違いについてはしっかりと覚えておくとよいと思います。

この記事の目標3つのワークフローについて理解し使い分けられるようになろう。

使用するアクティビティ・Sequence
・Flowchart
・State Machine
・Input Dialog

3つのワークフロー

3つのワークフローとは

アクティビティをつなぎ合わせて連続した操作とすることが可能なアクティビティをワークフローといいます。

クリックなどの操作ひとつひとつをアクティビティといいましたが、アクティビティ単体では自動化できる操作はひとつだけです。ワークフローは複数のアクティビティを内部に配置することによって、連続した操作を自動化することができます。

UiPathで用意されているワークフローは次の3つです。

    • シーケンス(Sequence)
    • フローチャート(Flowchart)
    • ステートマシン(State Machine)

ワークフローの種類

シーケンス

シーケンスアクティビティの検索結果

単純に上から下に直線的に遷移していくワークフローをシーケンスといいます。アクティビティを上から順に配置していくだけで簡単にワークフローを作成することができます。

別途説明しますが、シーケンス内で分岐条件である「If」アクティビティを使用することができますが、「Flow Switch」アクティビティなどの複雑な分岐アクティビティは使用することができません。

シーケンスは自動化したい処理が単純なフローである場合や分岐の少ない直線的なフローである場合に効果を発揮します。また他のワークフローから呼び出して使用することができるためシーケンスを使いまわすことができます。

デメリットとしては、シーケンスの画面幅が小さいため、アクティビティが増えるとデザイナーパネルが非常に見づらくなることでしょうか。
なおデザイナーパネルの「Collapse All」をクリックすることでアクティビティを概要表示に変えることができます。「Restore」にクリックで詳細表示に戻ります。

フローチャート

Flowchartアクティビティの検索結果

フローチャートは、アクティビティの配置後、アクティビティ同士をつなげていく事で複雑なワークフローを簡単に作成することができます。

フローチャートに配置したアクティビティはシーケンスとは異なりアクティビティの概要のみ表示されます。そのためアクティビティの内容を変更したい場合は、ダブルクリックして詳細表示後に内容を設定する必要があります。なおプロパティパネルからはいつでも変更可能です。

また「Flow Decision」や「Flow Switch」といったフローチャート内でのみ使用できる分岐条件アクティビティがあり、これらを使用することにより自由に遷移先を設定できます。
自動化したいワークフローに分岐が複数ある場合などにフローチャートを使用するとよいと思います。

ステートマシン

ステートマシンを配置したところ

公式ドキュメントでは「状態機械」と訳されていますが、日本語でも少し分かりづらいためここではステートマシンと表記します。ステートマシンは聞きなれない単語なのでここで詳しく説明します。

ステートマシンはフロー内に「State」というアクティビティを配置して開発していきます。ステートマシン上には「State」や「Final State」といったアクティビティ以外配置することができません。そのため、ステートマシン→State→アクティビティといった配置の内容になります。またステートマシンはパネル上の表示サイズを変更することが可能です。

「State」アクティビティとは、現在のワークフローの状態をチェックして、条件に沿った遷移先へ振り分ける分岐アクティビティのような役割をします。

なお「State」では次の遷移先に遷移せずに、自分自身を再度実行することも可能です。他にもアクティビティであるにも関わらず、State開始時やState終了時に他のアクティビティを実行することもできます。

上記の事から、ステートマシンは複雑ワークフローや特定の条件になるまで繰り返し処理を行いたい場合に向いています。

フローチャートと異なる点としては、「Flow Decision」や「Flow Switch」アクティビティといったフローチャート特有の分岐条件を使えない反面、遷移先や遷移条件を簡単に作成することができます。

先述の通り、ステートマシンは繰り返し処理を行うことを得意としており、特定の条件になるまで何度でも同じ処理を行います。またステートマシンを終了する場合は「State」の仲間である「Final State」を使用する必要があります。

ワークフローの作成方法

それぞれのワークフローはアクティビティとして用意されているため、アクティビティパネルからドラッグ&ドロップで作成することができます。

またmain以外の別ファイルとして作成する事もできます。その場合はDesignタブのNewから作成しましょう。なおシーケンスを作成する場合のみ、「Ctrl + N」というショートカットキーが用意されています。

ワークフローを実際に使ってみよう

ワークフローを実際に使ってみよう

ここではそれぞれのワークフローを実際に使って違いを確認してみましょう。

シーケンスのワークフローを使ってみる

アクティビティパネルで「Sequence」と検索しデザイナーパネルに配置します。

シーケンスアクティビティの配置

同じように、「Massage box」アクティビティを2つ、シーケンス内に配置します。
それぞれのメッセージボックスに「メッセージ1」「メッセージ2」と入力しましょう。

シーケンス内にメッセージボックスを2つ配置

完成したらF5を押して実行してみます。

メッセージ1というメッセージが表示され、OK押下後にメッセージ2というメッセージが表示されたと思います。
これによりシーケンスは、上から順にアクティビティが実行され、後続アクティビティがなくなった段階でワークフローが終了することが分かると思います。

フローチャート

アクティビティパネルで「Flowchart」(スペースなし)と検索しデザイナーパネルに配置します。

フローチャートアクティビティの配置

同様に「Flow Decision」と検索しデザイナーパネルに配置します。

Flow Decisionアクティビティの配置

「Flow Decision」のプロパティである「Condition(条件)」に半角で「1=1」と入力します。ここでは詳しい説明は避けますが、この条件の場合、必ずTrueのフローに遷移します。

Flow Decisionアクティビティの条件を設定

デザイナーパネル上の「Start」から「Flow Decision」に遷移線を引きます。

「Start」にマウスホバーすると表示される「凸」から「Flow Decision」にマウスドラッグすると遷移線が引かれます。もしくは「Flow Decision」アクティビティ上で右クリックし、「Set as a Start node」を選択する事でも遷移線を引くことができます。

Flow Decisionアクティビティへ遷移線を引く

メッセージボックスを2つデザイナーパネルに配置し、ダブルクリックして詳細画面からそれぞれ「メッセージ1」「メッセージ2」と設定しましょう。

パンくずリストからmainに戻り、「Start」の時と同様に「Flow Decision」の「True」の凸からメッセージボックスに遷移線を引き、同様に「False」の方から2つ目のメッセージボックスへ遷移線を引きます。

メッセージボックスアクティビティに遷移線を引く

保存後実行してみると、1つ目のメッセージのみ表示され2つ目のメッセージは表示されません。
このようにフローチャートは簡単に分岐先を指定することができ、またシーケンスと同様に後続アクティビティがなくなったときにフローが終了します。

ステートマシン

アクティビティパネルで「State Machine」と検索しデザイナーパネルに配置します。

ステートマシンアクティビティの配置

同様に「State」と検索しデザイナーパネルに配置します。

「State」をダブルクリックし詳細画面に入り、「Entry」部に「Input Dialog」アクティビティを配置します。その際、Titleに「”続けますか?”」、Labelに「”終了する場合は「1」を、続ける場合は「2」を入力してください。”」と入力しましょう。

Stateアクティビティ内にInput dialogを配置したところ

タイトルとラベルの設定が終わったら、プロパティOutputカテゴリ「Result」の入力部をクリックして、「Ctrl + K」を押して「result」と入力しエンターを押します。
詳細内容の説明はここでは避けますが、変数「result」というものを作成して、ユーザの入力値がこの「result」に設定されるようにしています。

Input dialogアクティビティのプロパティ画面

次に「State1」から遷移線を引き、自分自身(State1)に遷移するようにします。

State1アクティビティの遷移先を自分自身に設定

その後、条件「T1」をダブルクリックして、「Condition(条件)」に半角で「result = 2」と入力します。

条件T1をresult=2に設定

パンくずリストから「main」に戻り、アクティビティパネルで「Final State」と検索し、デザイナーパネルに配置します。
「State1」から「Final State」に遷移線を引きます。
「T2」をダブルクリックして、「Condition(条件)」に半角で「result=1」と入力します。

FinalStateアクティビティへ遷移線を引く

これでワークフローの完成です。実行してみると、「2」を入力した場合は何度でも繰り返し入力画面が表示されますが、「1」を入力するとフローが終了します。

作成したフローの内容についてもう少し細かく解説します。

「State1」では、「Input Dialog」アクティビティでユーザに入力を求めています。また、「Entry」部に「Input Dialog」を配置しているため、この「State」に戻ってくるたびに「Input Dialog」アクティビティが実行されています。
条件は「T1」と「T2」の2つあり、ユーザの入力値が「2」の場合は再び「State1」に戻り、入力値が「1」の場合は、「Final State(処理終了)」へ遷移するようになっています。
※「State」にはデフォルトの遷移先が無いため、実際は「1」や「2」以外の文字が入力されないように設定しましょう。

ステートマシンを使用することにより、何度も同じ処理が繰り返し実行されることが分かりましたでしょうか。
またアクティビティを簡易表示、詳細表示と分けることで、デザイナーパネル内がすっきりとすることを実感できたと思います。

ステートマシンは分かりづらいため初めの段階では参考程度に覚えておくのが良いと思います。UiPathに慣れてきた段階で、プロジェクトテンプレートである、「Robotic Enterprise Framework」(UiPath StudioのStartタブ内)などから学習していきましょう。

今回使用したアクティビティ

ここでは今回使用した5つのアクティビティについて説明します。

Sequence

ワークフローのひとつであり、単純で直線的なフローを実行する場合に使用する。

シーケンスアクティビティの検索結果

プロパティ

新しいプロパティはないため省略します。

Flowchart

ワークフローのひとつであり、自動化したいフローに分岐条件が複数ある場合に使用する。

Flowchartアクティビティの検索結果

プロパティ

ValidateUnconnectedNodesチェックを入れた場合、遷移線でつながっていないアクティビティがあるとエラーとなります。
State Machineワークフローのひとつであり、自動化したいフローの規模が大きい場合や、特定の条件になるまで同じ処理を何度も繰り返したい場合に使用する。

State

「State Machine」とセットで使用し、「State Machine」内に配置して使います。「State」への遷移時や「State」から出る時に実行するアクティビティを追加できるほか、
自分自身も含め、自由に遷移先や遷移条件を設定することができます。また1つの遷移先だけでなく複数の遷移先を設定することも可能です。

ステートマシンを配置したところ

プロパティ

Entry対象の「State」に遷移してきたときに実行されるアクティビティを指定します。省略可能
Exit対象の「State」から出るときに実行されるアクティビティを指定します。省略可能。
Transition(s)次の遷移先を指定します。後続の「State」に遷移線を引くことによって自動で設定されます。また自分自身への遷移も指定可能です。

Input Dialog

ポップアップを表示してユーザに入力を求める。

プロパティ

IsPassword入力値をパスワードとして扱う場合にチェックを入れます。チェックを入れた場合、ユーザ入力値が伏せられて表示されます。なお「Show Password」にチェックを入れることによって伏せられたパスワードを表示することができます。
Labelポップアップのメッセージ部に表示する文字を指定します。
Optionsポップアップの表示形式を入力ボックスやラジオボタン、選択ボックスなどに変更することができます。このプロパティは文字列形式の配列変数のみ指定可能です。
Titleポップアップのタイトル部に表示する文字を指定します。
Resultユーザが入力した値を変数に格納します。

まとめ

UiPathで使える3つのワークフローについて説明しました。

実際にはシーケンスのみで全てのフローを自動化することもできるかもしれませんが、後から見直した時に何をやっている処理か分からなくなる場合が多くあります。また実際の開発では、フローチャートからシーケンスを呼び出したり、逆にシーケンスからフローチャートを呼び出したりする場合もあります。

シーケンスとフローチャートの使い方はしっかりと覚え、状況によって使い分けられるようにしましょう。

 

 

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。