とっちゃん@nyanco! です。
UiPathの「ワークフローファイルを呼び出し」というアクティビティでプロジェクトの管理がしやすくなった!というお話です。
このアクティビティを使うとプロジェクトを小分けにすることができるので、よく使うワークフローの使いまわしがしやすくなったりなど、ワークフローの管理が非常にしやすくなります。
単純に別ワークフローを呼び出すだけなら超簡単ですが、ワークフロー間で「変数」の受け渡ししようとした時に頭がこんがらがったので、自分なりに整理しておきます。
単純に別ワークフローを呼び出す
普通に呼び出すだけならとっても簡単です。
アクティビティ「ワークフローファイルを呼び出し」をドロップして、呼び出したいファイルパスを指定するだけ。
ファイル指定は、「自分のファイル(呼び出し元)」から見ての相対パスで呼び出せます。
今回の例は、「呼び出し元ファイル」と「呼び出し先ファイル」が同じディレクトリ(同じフォルダ内)にあるので、ファイル名「呼び出し先.xaml」のみでOKというわけです。
これで、このアクティビティがあるタイミングで別のワークフローが呼び出され実行されます。
ワークフロー間で「変数」の受け渡しをする時
「呼び出し元.xaml」と「呼び出し先.xaml」の間で「変数」の値を受け渡しさせたい場合は、変数のままでは受け渡しができないので「引数」というものを利用して受け渡しします。
「引数」は、ワークフロー間移動に必須な「箱」をイメージすると分かりやすかったです。
「変数」も「箱」のイメージなので、箱を入れる大きな箱が「引数」といった感じ。
ワークフローを「建物」と見立てると、「引数」は「建物」と「建物」の間を輸送する「引っ越し業者」のような感じ。(素人イメージなので、全く見当違いな例えかもしれませんが… ^^;)
例として今回は、「変数:count」を受け渡して、「受け渡し先」で「変数:count」の中身を変更して、その変更した内容を「受け渡し元」に返す、というようなプロジェクトを作成してみます。
あらかじめ、下記の二つのワークフローファイルを同じディレクトリに作成しておきます。
- 呼び出し元ファイル:「呼び出し元.xaml」
- 呼び出し先ファイル:「呼び出し先.xaml」
「呼び出し元.xaml」の設定
・「変数:count」を作成します。
変数の型は「Int32(数値型)」、スコープは「シーケンス」、規定値は「0」とします。
・アクティビティ「メッセージボックス」で変数の値を確認します。
count.ToString + "(今は「呼び出し元.xaml」です)"
※count.ToString は、変数の型を「Int32」から「String」に変更する意味。「Int32」のままだとメッセージボックスに表示ができないので。
実行すると、規定値の「0」が表示されました。
ここまでは呼び出し云々は関係ないので問題ないと思います。
・「変数:count」を格納する「引数:hiki」を作成します。
名前は引数と分かりやすいように「hiki」としましたが、なんでも良いです。
方向は、今回は変数を「渡す(入力)」と「もらう(出力)」とするので、「入力/出力」とします。
※実はこの設定はどれにしても問題なく動きました。アクティビティ「ワークフローファイルを呼び出し」の「引数を編集」でも同じ「方向」の設定があるので、そちらの設定が優先されるっぽい??
変数の型は「変数:count」と同じ「Int32」にしておきます。
・アクティビティ「ワークフローファイルを呼び出し」を追加して、呼び出すワークフローの「呼び出し先.xaml」を指定します。
さらに、「引数を編集」から以下のように設定します。
名前は先ほど作成した引数名「hiki」にします。
方向も先ほどと同じく「入力/出力」にします。
※ここを「入力」にすると、「入力」は呼び出したワークフロー「呼び出し先.xaml」に引数を渡すだけになるので、その後の「呼び出し元.xaml」に変数の受け渡しがされません。
値には受け渡したい値を入れるので、渡したい変数名である「count」とします。
「呼び出し先.xaml」の設定
・「呼び出し元.xaml」と同じ設定で「引数」を作成します。
・続いて「呼び出し元.xaml」からちゃんと「変数」の値を受けているか確認するため、アクティビティ「メッセージボックス」で「引数」の値を表示させます。
・ここで「呼び出し元.xaml」を実行してみると…
「呼び出し元.xaml」からの~
「呼び出し先.xaml」でも変数の値がちゃんと「引数」として受け渡されてますね!
・次に「呼び出し先.xaml」で変数(引数)の値を変更させます。
アクティビティ「代入」を使います。
「引数:hiki」に数値の「1」を加える意味で「hiki + 1」とします。
「呼び出し先.xaml」の設定
・最後に「呼び出し先.xaml」にアクティビティ「メッセージボックス」を追加して、受け渡しができているかを確認します。
・これで「呼び出し先.xaml」を実行すると…
「呼び出し元.xaml」からの~
「呼び出し先.xaml」からの~
「呼び出し先.xaml」で「+1」した値が「呼び出し元.xaml」に受け渡しがされていますね!
イメージ図としてはこんな感じです。
分かったようでまだ分かってない部分もありますが、一応は理解できました!
今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧
コメント