#そもそもRPAでそれってどうなの?
と、言ってしまうと身も蓋もないけれども。
VB.NETプログラミングをそこそこ習熟した人であれば、時と場合によっては使えるかもしれないテクニック。
たとえば。
現在、消費税は8%なのだけど、UiPathで消費税を計算させるのは割と冗長になる。
将来的な税率変更に備えて、たとえば「TaxRate = 1.08」みたいな変数を初期化して使うことはできる。
でも消費税を計算するところでは、
CInt(価格 * TaxRate)
みたいなAssignをボコボコ置くわけで。
ましてや、将来、複数税率になるかもしれない、なんて話もある。
その時に毎回、IFアクティビティで分岐して処理するのはWorkflow的に美しくない。
正攻法でいえば別Workflowに切り出して、Invoke Workflowしても良いのだけど、オーバーヘッドが今度は気になる。
ではどうするか。
#ラムダ式使えばいいじゃん
たとえばこんな感じで変数の型を指定する。
Func< まで入力すればずらーっと候補は出るので、あとは引数のInt32とBoolean、戻り値のInt32を設定すればいい。
これで何ができるか。
具体的にAssignする内容は以下のようになる。
これだけだと「何が何だか」状態。右辺の内容は、
Function(price, highRate) CInt(price * IF(highRate, 1.1d, 1.08d))
こんな感じ。引数1(price)が税抜き価格、引数2(highRate)が税率高いほうかどうかの設定。
これが何に使えるか。
Assignアクティビティで一発で、かつ明瞭簡潔に「税込み金額」が計算できる。
こんな感じ。
・・・RPAを「プログラミングレス」なツールとして見た場合は邪道も甚だしいけど、時と場合によってはWorkflowがスッキリするかもしれない、ということで。
VB.NETにどっぷり踏み込んだことのあるUiPathユーザーの方は、ネタの引き出しとして使ってみてください、という話でした。