MENU

for Ideal Design

RPA

RPA:WinActor_サブルーチンの使い方 ~シナリオ構成の最適化を目指して~

RPA WinActor 業務改善 生産性向上 ビジネスデザイン データでビジネスをもっと面白く エンジニア

皆様WinActorでのシナリオ作り、順調ですか?
「同じことをしている処理を何回も作っているのだけれど、1回作って再利用する方法があればいいのに・・・」
「できてはいるんだけど、どうも効率の悪い構成のような気がして・・・」

なんて悩んでいる方もいらっしゃるのではないでしょうか。
実務で使うシナリオともなると、作っていくうちにどんどんノードが増えていき、フローチャートも長く複雑になっていくものです。
出来るだけシナリオ作成作業も効率よく進めたいですし、長かったり複雑なフローチャートだとパッと見たときわかりにくい。
修正したいときもその箇所を探すのが大変ですよね。
シナリオ作成自体に慣れてきたら、次のステップとして『簡潔化・最適化』を意識しながら作ってみましょう。
最適化の方法もいろいろあると思いますが、今回は「サブルーチン」という機能についてご紹介したいと思います。

 

★動画でもご紹介しています。

サブルーチンとは何か。

それは・・「特定のシナリオの処理をひとまとまりにまとめたもの」です。
メインのシナリオからいつでも呼び出して実行することができます。

なぜ「サブルーチン」を使うのか。

①同じ処理が繰り返し出てくるときに作成の手間が省ける
②処理が整理されてフローチャートが見やすい
③修正が必要なとき、修正範囲を最小限に抑えることができる
④ノード数を減らせるのでファイルサイズを削減できる
といったメリットがあるからです。

例えば下記のような流れの業務があったとして、その手順通りにシナリオを作ります。
赤かっこ同士、青かっこ同士はそれぞれ同じ内容のくくりであることを示しています。

サブルーチン前

このままでもシナリオ実行には何の問題もありませんが、サブルーチンを使うとこのようになります。

サブルーチン後

フローチャートが整理されて見やすくなりました。
作るときもサブルーチンを一つ置けばよいので簡単ですし、どこかを修正するときも見つけやすく修正箇所も少ない数で済みます。
このように同じ処理を何度も行うときなどに使うと便利です。

★POINT★
繰り返しと併用して使うときは注意が必要です。
サブルーチンの外にある<繰り返し>ノードに対する<繰り返し終了>ノードをサブルーチン内に設定するとエラー扱いになります。(※)
サブルーチン内の<繰り返し>に対する<繰り返し終了>は正常に処理することができます。

(※)実行を押下すると、シナリオ中にエラーが含まれていることを知らせるウィンドウが表示されます。
ログ出力画面で確認すると【「繰り返し終了」が「繰り返し」・「後判定繰返」ノードの中に配置されていません。】と表示されます。

繰り返し終了NGエラー

作り方

では実際にシナリオを作る中でどう作るかご説明します。
サブルーチンは「特定のシナリオの処理をひとまとまりにまとめたもの」であるということでしたね。
さきほど例に挙げた業務をまた例に使うことにします。

WAサブルーチン前

今回は、シナリオ中に2回出てくる部分をサブルーチン化します。

まずサブルーチンにしたいノード(今回の例では赤枠の2つと、青枠の4つのノード)を選んで右クリックからそれぞれグループ化し、メインシナリオの枠外へ出しておきます。
ノードを枠外へ出してからグループ化してもOKです。
※フローチャート後半に出てくる、同じ処理をしているノードは削除してください。

サブルーチン作成①-2

次に、枠外へ配置したグループを選択して右クリックから「サブルーチン化」をクリックします。
グループがサブルーチングループに変わりました。
サブルーチン化するとグループの背景の色が変わります。

サブルーチン作成②

もしくは、ノードパレットの<サブルーチングループ>ノードを選択し、メインシナリオの枠外へ配置、サブルーチン化したいノードをドラッグ&ドロップで<サブルーチングループ>内に配置する方法もあります。

★POINT★
サブルーチンは複数作ることができますので、どういった処理をしているグループなのかわかるように名前を変えておくことをおすすめします。
今回は一つ目のサブルーチンを「Excelから商品名・数量取得」、二つ目のサブルーチンを「システムへ入力」としています。

続いて、メインシナリオの処理を行いたい場所にノードパレットの<サブルーチン呼び出し>ノードを配置します。

サブルーチン作成③

では<サブルーチン呼び出し>ノードのプロパティを設定します。

”サブルーチン名”の右側のプルダウンから、ここで処理したいサブルーチン名を選択します。
複数サブルーチンがあるとき、名前を変えておくとどのサブルーチンを選べばいいかわかりやすくなります。

サブルーチン作成⑥

設定は以上です。
あとはシナリオを作っていき、またこの処理が出てきたら<サブルーチン呼び出し>ノードを配置するだけです。
<サブルーチン呼び出し>ノード一つを置くだけでいいので作業の手間が省けます。

シナリオを実行したときの動き方としては、メインシナリオで<サブルーチン呼び出し>ノードへ進むと、サブルーチンへいき、サブルーチン内の処理を行います。
サブルーチン内の処理を終了したらメインシナリオに戻って来て続きの処理を行います。

サブルーチン作成⑦

おまけ ‐関連機能ついて‐

◆<サブルーチン終了>ノード
 サブルーチンの途中でサブルーチン内の処理を終わらせたいときに使います。

サブルーチン終了

◆サブルーチンインポート機能
サブルーチンは単体で他のシナリオファイルからインポートし組み込むことができます。
同じ処理をインポートによって使いまわすことでシナリオ作成時間を短縮することができます。

サブルーチンのインポート

◆タブ追加
サブルーチンが複数あるとき、同じ画面に置いておくと分かりづらいので、追加したタブにサブルーチンを移して整理します。
その際はタブ名をサブルーチン名と揃えるとわかりやすくなります。
①フローチャート画面の「タブ追加」をクリックしタブを追加

タブ追加①

②タブに移動させたいサブルーチンを選択し、「ノードのタブ間移動」をクリック⇒移動先のタブを選択
※サブルーチンを右クリックから「ノードのタブ間移動」⇒移動先のタブを選択でも可能です。

タブ追加②

◆ローカル変数の設定
サブルーチン内だけで使える値の設定やサブルーチン終了後に返す値を設定することができます。

・返り値の設定
<サブルーチン終了>ノードで終了したときの返す値を設定することができます。<サブルーチン終了>ノードのプロパティで設定しなければ変数の値は変更されません。

返り値

・引数の設定
サブルーチンのプロパティでローカル変数を設定してから<サブルーチン呼び出し>ノードのプロパティで引数を設定します。
サブルーチン内では引数として設定した値が反映します。

ローカル変数

★用語解説★
・返り値:サブルーチン終了から返す値
・引数(ひきすう):サブルーチンを実行する際に引き渡す値
・ローカル変数:サブルーチン内でのみ使用される変数のこと。サブルーチン内で変数の値が変わっても、サブルーチンを抜けたときに値が元の値に戻ります。
※WinActor上での表現のため、一般的な意味合いと異なることがあります。

◆監視ルールからの呼び出し
サブルーチンは<サブルーチングループ呼び出し>ノード以外に、監視ルールからも呼び出すことができます。
監視ルール一覧は特定のウィンドウが表示されたときにさせる動作を設定できる画面で、ここ<サブルーチン>を呼び出し実行させる設定を行うことができます。

監視ルールから呼び出し

おわりに

サブルーチンについて簡単ですがご説明させていただきました。
初めのうちは、処理の流れがあちこちに飛んでしまうのに困惑されるかもしれませんが、使い方次第で作業工程を大幅に短縮できる便利な機能なので、ぜひ習得しておきたいところです。

以上、最後までお読み頂きありがとうございました!
動画でもご紹介しておりますのでよろしければご覧ください。
動画はコチラ⇒⇒「サブルーチンの使い方」
また次回お楽しみに!