最近、仕事でUiPathを使用しています。
UiPathではさまざまな動作(アクティビティ)が始めから用意されていますが、 自分でアクティビティを設計しカスタムアクティビティとしてUiPath内で利用することができます。
今回はC#で作成した列挙型を読み込みUiPath内で使用してみます。
作成環境 #
- Windows10 Home
- Visual studio 2017 Community Edition
- UiPath Community Edition
列挙型の作成 #
C#で列挙型を作成し、クラスライブラリとしてビルドします。
名前空間はのちほどUiPath内で使用します。
namespace EnumTest
{
public enum Day {
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
};
}
作成したクラスライブラリをUiPathに取り込む #
作成したクラスライブラリ(.dll)をNuGetパッケージとしてUiPathに取り込みます。
下記のQiitaの記事が分かりやすいです。
名前空間をインポート #
NuGetパッケージをインストールしただけでは作成した列挙型を使用できないのでUiPathで名前空間追加します。
インポートタブをクリックします。

作成したクラスライブラリの名前空間を入力します。
途中まで入力するとクラスライブラリの名前空間が表示されるので選択します。

「インポートされた名前空間」にクラスライブラリの名前空間が表示されればインポート完了です。

カスタムアクティビティの列挙型を使用する #
UiPath内で使用する構文はVB.Netです。
列挙型の特定の要素を使用する #
「1行を書き込み」アクティビティを使用して、カスタムアクティビティの列挙型を出力画面に表示してみます。

「1行を書き込み」アクティビティのテキストプロパティに下記のコードを入力して出力してみます。
EnumTest.Day.Monday.ToString

列挙型の要素Mondayを出力できました。

列挙型のすべての要素を使用する #
「繰り返し (コレクションの各要素)」アクティビティと「1行を書き込み」アクティビティを使用して
すべての要素と対応する数値を出力してみます。
要素をd
、コレクション値に下記のコードを入力します。
[Enum].GetValues(GetType(EnumTest.Day))


「1行を書き込み」アクティビティのテキストプロパティに下記のコードを入力します。
d.ToString + " | "+ Convert.ToInt32(d).ToString

列挙型の要素名と対応する数値をすべて出力できました。

カスタムアクティビティをインストールしてもUiPathのインテリセンスに表示されないときは
名前空間のインポートが抜けてることが多いので気をつけてください。