UiPathでは他プログラム言語でいう関数の呼び出しと同様に、シーケンス内で別のシーケンスを呼び出すことが可能です。
その際、呼び出すシーケンスに渡す値や戻ってくる値を「引数」と呼びます。フローチャートでも同様の処理が可能ですが、このページでは分かり易いように「シーケンス」または「処理」として記載します。
シーケンスについては、「シーケンスとは」を参照してください。
Contents
引数とは
処理を分割後に、処理を呼び出すときに渡す値、もしくは返ってくる値の事を引数と呼びます。
処理を分けずに作成することも可能ですが、処理を分割することによって以下のようなメリットがあります。
- 同じような処理を何度も作成する必要がなくなる
- 処理の変更が必要な時にひとつのシーケンスのみ修正すれば良い
- 一連のシーケンスが見やすくなる
- 各社でコアとなるシーケンスを作成しておけば皆で使いまわせる
引数の理解のためにまずは、シーケンスの呼び出し方法を説明します。
プロジェクトの準備
main.xamlとmessage.xamlを用意します。
デザイナーパネル上で「Ctrl + N」を押して新規にシーケンスを作成し、名称を「message」とします。
「Create」ボタンを押すと、デザイナーパネルに新たな「message」タブが表示されます。
またプロジェクトパネルを確認すると、「main.xaml」と「message.xaml」が作成されていることが確認できます。
「message.xaml」上にメッセージボックスを配置して「”引数を使いたい”」と入力しておきましょう。
「main.xaml」と「message.xaml」を作成できましたが、どちらも個々に存在しているため一方のシーケンスずつしか実行できません。
メインを実行したときに、同時にメッセージボックスも表示されるように設定したいと思います。
シーケンスの呼び出し
プロジェクトパネルからmain.xamlへmessage.xamlをドラッグ&ドロップします。
「Invoke message workflow」というアクティビティが追加され、このアクティビティに「message.xaml」が設定されているのが分かります。
この状態でmain.xamlを実行すると先程設定した「引数を使いたい」というメッセージが画面に表示され、正しく呼び出せていることが分かります。
またドラッグ&ドロップではなく、「Invoke workflow file」アクティビティを使用することで同様の操作を行うことも可能です。
両社の違いは表示名(DisplayName)が異なるだけで特に違いはありません。
この時点では値を渡す必要がないため引数を使用していません。
次の処理として、main.xamlからmessage.xamlへ値を渡し、それを表示する処理を行ってみたいと思います。
引数の使い方
呼び出される側の設定
呼び出されるシーケンス(重要!)の「Arguments」パネルから「Create Argument」をクリックして引数を作成します。(今回であればmessage.xaml)
クリックすると変数の作成画面に似た「Invoked workflow’s arguments」という画面が開きます。
入力項目の意味は以下の通りです。
NAME | 引数の名称を設定します。 |
Direction | 値を受け取るのか返すのかを設定します。 |
IN | 値を受け取る場合に使用します |
OUT | 値を渡す場合に使用します。 |
IN/OUT | 受け取る、返す、双方で使用します。 |
Property | 使用不可※1 |
Argument Type | 引数の型を設定します。変数と同様の型を使用することができます。 |
Default Value | デフォルト値を設定します。 |
※1 現状未使用です。今後のアップデートでプロパティ等渡せるようになるものと思われます。
今回は以下のように設定します。
Name | message |
Direction | In |
Argument Type | String |
Default Value | なし |
合わせてメッセージボックスの表示も「message」という変数に変更しておいてください。
呼び出す側の設定
続いてmain.xaml側の設定を行います。
「Invoke workflow file」アクティビティの「Import Argument」を押すと、「Invoked workflow’s arguments」画面が開き、message.xaml側で作成した引数が既に設定されています。「Value」に変数を設定することもできますが直接文字列を設定することもできます。ここでは直接文字列を書き込みます。
「Value」に「”引数で渡すデータ”」と設定してください。
なお、main.xaml側のArgumentパネルには作成した引数は表示されず、呼び出し先のArgumentパネルにのみ表示されます。
以上で引数の設定は完了です。
実行
main.xamlを実行すると、メッセージボックスが立ち上がり「引数で渡すデータ」と表示されると思います。
このように、別のシーケンスやフローチャートに値を渡すことにより、先述したプロジェクトの再利用が可能となります。
引数の補足事項
引数のDirection(方向)
引数の分かりづらい点として、「Direction(方向)」があります。
Directionは、値が入ってくるか、呼び出し元に返すかという設定ですが、
・呼び出し元から値を渡す場合:「IN」
・呼び出し先が値を受け取る場合:「IN」
と、どちらも「IN」が使用され混乱する一因だと思います。
これは引数を作成する際に、呼び出し先で引数を作成することによって、呼び出し元にも設定した内容が引き継がれます。(保存していないと反映されません)
このようにすることで、呼び出し元では値のみ設定することとなり、混乱する度合いが少なくなります。
引数の削除
変数と同様に、キーボードのDeleteボタンを押すか、右クリックのDeleteで引数を削除することができます。
引数の削除も、呼び出し先から削除することによって、呼び出し元も同時に削除されます。