見出し画像

UiPathで .NET のライブラリ機能を使ってみる

この記事は、UiPath アドベントカレンダー 2022の6日目の記事です。

はじめに

 UiPathは簡単に.NETのライブラリを呼び出すことができます。ただ、ちょっとばかりメソッドを呼び出し(InvokeMethod)アクティビティがとっつきにくいので使ってない方もいらっしゃるかも。コードの呼び出し(InvokeCode)アクティビティと合わせて使い慣れると結構いろんなことができたり速度の向上が望めたりします。
 今回は、文字列の連結で爆速?のStringBuilderクラスを使って文字列連結を比較してライブラリを使用する効果を見てみたいと思います。

 .NETのライブラリの使用法の詳細についてはUiPath社が出している記事の説明をご覧ください。


今回比較すること

 文字列にひたすら、"UiPath" と "Friends" をくっつけていき時間を計測します(テストでは3万回)。各5回ずつ実行したが、秒単位では結果は同じであった。
① 代入で文字列を&でくっつける(図1)→ 20秒
② StringBuilderクラスをInvokeMethodで呼出して連結(図2)→ 19秒
③ InvokeCode内で文字列を連結(図3)→ 10秒
④ InovokeCode内でStringBuilderクラスで連結(図4)→  2秒
上記からわかること。アクティビティで繰り返しを実行する場合、誤差程度の違いしかなかった。InvokeCodeを使用すると、文字列ループだけでも相当速くなる、そして.NET開発で使用できる速度の向上策はそのまま適用できていた。

【結論】

 ということで、皆さんある程度ワークフローの記述に慣れてきたら、今度は InvokeCode に手を出してみるのはいかがでしょうか。
【余談】
ところで、InvokeMethodの一番嫌いなところは、引数の記述です。図2もAppend("UiPath") と書きたくなるのですが、引数(パラメーター)は「パラメーター」プロパティの参照ボタン[…]を押して、パラメーターダイアログボックスに上から順に第1,2…の順で指定します。いつも忘れて()の中に引数を書いてしまい、ジェネリックがどうのこうのというエラーが出てきてなんじゃなほい?ってなってしまいます。

引数(パラメーター)の指定

図1.代入で文字列を&でくっつける


図2StringBuilderクラスをInvokeMethodで呼出して連結


図3.InvokeCode内で文字列を連結


図4.InovokeCode内でStringBuilderクラスで連結

この記事が気に入ったらサポートをしてみませんか?