はじめに
この投稿は、RPA ツールの UiPath の実装例についての説明です。
※ 個人的に書き方を忘れてしまうことがあるので「備忘録」として投稿します。
UiPathのコミュニティ「UiPath Friends」が企画する「UiPathブログ発信チャレンジ2021サマー」の 19日目の投稿でもあります。
企画の内容は こちら 。カレンダーのURLは こちら です。
InvokeCode内で関数を定義したい
UiPathでフローを作成する際に、ちょっと凝ったことをしようとするとコードが長くなりがちです。そんな時に コードを呼び出し(Invoke Code) アクティビティ
を使用するとシンプルに実装できることがあります。
また、コードを呼び出し(Invoke Code) アクティビティ を使用して、フロー内に関数を作成することが出来ます。
メリットとして
- 繰り返し何度も呼び出せる
- 他のアクティビティに変数として渡せる(例:DataTable出力関数をログ出力アクティビティで使用)
があります。デメリットは「.NET寄りの知識なので、少しわかりにくい」「」ことでしょうか。
参考記事
以下の記事が参考になります。
書き方サンプル
コードの上部で匿名関数を定義して、それを呼び出します。
関数には2つの型があります。
- 1)Func型(Function形式で戻り値があるもの)
- 2)Action型(Sub形式で戻り値が無いもの)
1)Func型(Function形式で戻り値があるもの)
'// FUNC(戻り値あり)定義
Dim fncHoge As Func(Of Integer, Integer) = _
Function(in_NumberA As Integer) As Integer
Return in_NumberA * 2
End Function
'// 呼び出し例
Console.WriteLine(fncHoge(7))
2)Action型(Sub形式で戻り値が無いもの)
'// SUB(戻り値なし)定義
Dim subHoge As Action(Of Integer, Integer) = _
Sub(in_NumberA As Integer, in_NumberA As Integer)
Console.WriteLine(in_NumberA + in_NumberB)
End Sub
'// 呼び出し例
subHoge (3, 5)
どういう時に使うのか?
Func型(Function形式で戻り値があるもの)は色々使いみちがあるのですが、Action型(Sub形式で戻り値が無いもの)は、そんなに使いません。
過去に使ったことあるかなと思って探してみたら、以下で使ってました。
TreeNodeの階層型のデータを扱う際に「再帰的」に使っていましたが、現実的にはあまり使いません。
「内部でログ出力するだけ」のような関数なら使えると思います。
xamlファイル上の変数としても使用可能
この匿名関数は「InvokeCode内」で無くても、xaml内で変数としても作成可能です。
ただし、上記のように 変数の初期値として関数を定義する
方法だと残念ながら「未使用変数の削除」を実行すると変数が消えてしまうので、以下のように 代入アクティビティ、またはコードを実行アクティビティ内で定義
するほうが良いです。
終わりに
いかがでしたでしょうか。実装時の引き出しの一つとして、何かの役に立てば幸いです。
この記事が参考になったら、 LGTMをお願いします。閲覧ありがとうございました。