UiPathでライブラリに引数を設定して呼び出す
前回の記事「UiPathでライブラリを直接呼び出す」の拡張編です。
UiPathのプロジェクトファイルに格納されたDLLに対して、引数を設定して呼び出す方法を紹介します。
開発のきっかけ
最近では当たり前ですが、昔はUiPathでカスタムライブラリを作成するには、
Visual StudioでDLLを作成し、Nuget ExplorerなどでDLLをnuget化して利用しかありませんでした。
UiPathでデバッグするにも、Immediate Panelがなかったり、現時点でもComやラムダ式をデバッグしたり
解析することができませんでした。
お約束事項(免責事項)
この記事は2020年6月時点の情報を基に作成しております。
記事の内容は私個人の見解であり、所属する組織の公式見解ではありません。
カスタムライブラリ
前回の記事で使用したサンプルのカスタムライブラリを使用します
ソース内容
前回のソースと同じものです。
今回は、Test2のメソッドを使用します。
using System.Windows;
namespace UiPathCustomLibrary
{
public static class TestClass
{
public static void Test1()
{
MessageBox.Show("Hello World");
}
public static void Test2(string message)
{
MessageBox.Show(message);
}
public static int Test3(int a, int b)
{
return a + b;
}
}
}
UiPathのプロジェクト構成
こちらも、前回と同様の構成を想定しております。
カスタムライブラリのサンプル(UiPathCustomLibrary.dll)はプロジェクト直下に格納しています。
UiPathの実装
基本的には、前回と同様の実装です。変更点は以下の3つです。
- 「6.変数追加」で引数用の変数
paramObj
を1次元配列のオブジェクトObject[]
で追加し、「7.変数の値を設定」で値を設定します。 - 「7.変数の値を設定」では、使用するメソッド名を「Test1」から「Test2」に変更します。
- 最後に、「10.処理の呼び出し」で引数を設定した呼び出しに変更します。
1. アセンブリ変数の作成
2. 型を変更
asmの型をBrowse for Types...
を選択します。
3. 型名
Type NameにSystem.Reflection.Assembly
を入力し、Asssemblyを選択します。
4. Assignの追加
Assign(代入)アクティビティを追加し、左辺にasm
を設定します。
5. Assignの値を設定
Assignの右辺に以下の値を設定します。
Assembly.LoadFile( _
Path.Combine( _
Environment.CurrentDirectory, _
"UiPathCustomLibrary.dll" _
) _
)
これで、DLLをロードすることができました。
6. 変数の追加
実行するメソッドの変数を追加します
- 名前空間(
usingName
) :String
- クラス名(
className
) :String
- メソッド名(
methodName
) :String
- 引数(
paramObj
) :System.Object[]
orObject[]
7. 変数の値を設定
変数に値をそれぞれ設定します。
- usingName = "UiPathCustomLibrary"
- className = "TestClass"
- methodName = "Test2"
- paramObj = {"Hello RPA World!"}
8. 実行結果の変数を追加
実行結果を設定する変数 resultObj
を追加し、変数の型をObject
に変更します。
9. Assignの追加
実行と実行結果を設定するAssignを追加します。
10. 処理の呼び出し
resultObjの値に、以下の値を設定します
asm _
.GetType( usingName + "." + className ) _
.GetMethod(methodName) _
.Invoke(Nothing, paramObj)
UiPathの実行
実行すると、Hello Worldのメッセージが表示されます。
(メッセージボックスが前面に表示されてない場合、画像の通り、タスクバーからUiPathRobotの無名のタスクをせんたくしてください。)
終わりに
本投稿では、メソッドに引数を設定して呼び出す方法をご紹介しました。
サンプルのカスタムライブラリで用意している Test3のメソッドや、引数の設定、実行結果の取得については、別投稿します。
もし、よければLGTMをお願いします。