はじめに
今回は、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」アクティビティを使いこなすことができれば、ロボット開発の心強い味方になります!
機会があれば、どんどん実業務に取り入れていきましょう!