はじめに

今回は、RPAの開発案件でも頻繁に利用する「Invoke Workflow」アクティビティについてご紹介します。

「Invoke Workflow File」アクティビティとは?

2つのXamlファイル間で、変数の受け渡しをするアクティビティです。図にすると以下の通りです。

どう使うか

アクティビティをクリックすると、上部に①テキストボックス(”Workflow path, Text must be quoted.”と記述)、下部に②「Edit Arguments」ボタン、③「Import Arguments」ボタンが表示されます。

①には、変数を受け渡しをしたいXamlファイルのパスを記入します。

パスが記入されたファイルは、InvokeWorkflow Fileによって呼び出されるファイルになります。呼出し元のXamlファイルのInvokeWorkflow Fileアクティビティまで処理が実行されると、呼び出し先のファイル内で実装した処理が実行されます。

呼び出し先ファイルの画面下部の「Arguments」リンクをクリックすると、引数※を新規作成する画面が出てくるので、使用する引数を作成しましょう。
※Xamlファイル間で変数を共有することはできないため、共有したい変数を引数に設定します。

引数を作成後、呼び出し元のXamlファイルで③のボタンを押下すると、呼び出し先で作成した引数が、自動で「InvokeWorkflow File」アクティビティにインポートされます。

その後②のボタンを押下し、呼び出し元から渡したい変数、呼び出し元で受取りたい値を格納するための変数を、「Value」列にセットします。
※インポートしていれば誤ることはありませんが、「Name」、「Direction」、「Type」列にセットする値は2ファイル間で共通にしないとエラーが発生します。

また、「Direction」列では、変数を呼び出し先へ渡すか・受け取るかを「In/out」で設定しますが、「In/out」の設定方法につまづく方が多かったので、以下に覚え方を記載します。

In、Outの起点は呼び出し”元”

  • In:入り口
    引数は呼び出し元から、呼び出し先へ渡される。
  • Out:出口
    引数は呼び出し先から、呼び出し元へ渡される。

「InvokeWorkflow File」アクティビティの使い方の説明は以上です。

いつ使うか

主に処理を切り分けたい時に使用します。

RPAで自動化させたい業務の量が多い場合、UipathのXamlファイル内で実装する「Sequence」アクティビティ、「IF」アクティビティのネストが深くなり、ロボットの可読性が低下します。

「InvokeWorkflow File」アクティビティで別のロボットへ処理を切り出すことで、1つ当たりのXamlファイルが担当する処理が減り、ロボットの可動性が高くなります。

例えば、1つのXamlファイルに100個の処理が記述されたロボットの場合、テストは毎回100個の処理を実行する必要がありますが、1~10、10~20、20~25、25~35のように100個の処理を複数のロボットに分割して記述した場合、テストは修正箇所に応じたロボットのみとなります。

結果、エラーの原因を特定・改修しやすい!といったメリットもあります。

まとめ

覚えることは何点かありますが、「InvokeWorkflow File」アクティビティを使いこなすことができれば、ロボット開発の心強い味方になります!

機会があれば、どんどん実業務に取り入れていきましょう!