8
3

More than 3 years have passed since last update.

【UiPath】InvokeCodeアクティビティで関数を定義する

Last updated at Posted at 2021-07-19

はじめに

この投稿は、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内で変数としても作成可能です。

image.png

ただし、上記のように 変数の初期値として関数を定義する 方法だと残念ながら「未使用変数の削除」を実行すると変数が消えてしまうので、以下のように 代入アクティビティ、またはコードを実行アクティビティ内で定義 するほうが良いです。

image.png

終わりに

いかがでしたでしょうか。実装時の引き出しの一つとして、何かの役に立てば幸いです。
この記事が参考になったら、 LGTMをお願いします。閲覧ありがとうございました。

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3