LoginSignup
6
6

More than 5 years have passed since last update.

UiPathで匿名関数を使う

Last updated at Posted at 2018-12-04

そもそもRPAでそれってどうなの?

と、言ってしまうと身も蓋もないけれども。
VB.NETプログラミングをそこそこ習熟した人であれば、時と場合によっては使えるかもしれないテクニック。

たとえば。
現在、消費税は8%なのだけど、UiPathで消費税を計算させるのは割と冗長になる。
将来的な税率変更に備えて、たとえば「TaxRate = 1.08」みたいな変数を初期化して使うことはできる。
でも消費税を計算するところでは、

CInt(価格 * TaxRate)

みたいなAssignをボコボコ置くわけで。
ましてや、将来、複数税率になるかもしれない、なんて話もある。
その時に毎回、IFアクティビティで分岐して処理するのはWorkflow的に美しくない。
正攻法でいえば別Workflowに切り出して、Invoke Workflowしても良いのだけど、オーバーヘッドが今度は気になる。

ではどうするか。

ラムダ式使えばいいじゃん

image.png

たとえばこんな感じで変数の型を指定する。
Func< まで入力すればずらーっと候補は出るので、あとは引数のInt32とBoolean、戻り値のInt32を設定すればいい。

これで何ができるか。
具体的にAssignする内容は以下のようになる。

image.png

これだけだと「何が何だか」状態。右辺の内容は、

Function(price, highRate) CInt(price * IF(highRate, 1.1d, 1.08d))

こんな感じ。引数1(price)が税抜き価格、引数2(highRate)が税率高いほうかどうかの設定。

これが何に使えるか。
Assignアクティビティで一発で、かつ明瞭簡潔に「税込み金額」が計算できる。

image.png

こんな感じ。

・・・RPAを「プログラミングレス」なツールとして見た場合は邪道も甚だしいけど、時と場合によってはWorkflowがスッキリするかもしれない、ということで。
VB.NETにどっぷり踏み込んだことのあるUiPathユーザーの方は、ネタの引き出しとして使ってみてください、という話でした。

6
6
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
6
6