Last updated on 2020年12月31日
UiPath のアクティビティって自分で作ることができるって知ってる?
えっそうなのニャ?
どうもこんにちは、エピックです。
UiPathには、標準でたくさんのアクティビティが用意されています。
また、追加で公式・コミュニティまたは他の企業からアクティビティを追加することもできます。
それらを利用することでほとんどの業務は自動化することができてしまいます。
一方で、独自の機能に対応させるためにカスタマイズしたアクティビティを作成したいということがあります。
例えば、「専用のAPIを利用したい」「独自のAIモデルを利用するためにより簡単にPythonを利用したい」等がそうでしょうか。
今回は、そのような要望をいただいたのでUiPathのアクティビティを開発する方法を記載してみたいと思います。
少し複雑なので、分かりづらい等あればコメントにてお願いします。
事前準備するもの
開発するにあたり次の2つのソフトウェアが必要になります。
UiPtah Studio/ Robotはすでに導入している前提となります。
- Microsoft Visual Studio
- NuGetPackageExplorer ※現在は不要です→追記参照
どちらのソフトウェアも個人利用であれば、無料で利用する事ができます。
リンク先のURLよりダウンロードしインストールをしてください。
※すみませんがインストール手順は省略します
開発の流れ
開発の手順は次のようになります。
- Visual Studio で処理コード(C#)を記述
- NuGetPackageExplorerで.dllファイルからNugetパッケージを作成
- UiPath Studioからインストール
コードの記述については、C#を利用します。
開発サンプル
今回開発するものがどのようなものか事前にお伝えします。
開発するアクティビティですが、2つの数字を受け取り平均(足して2で割る)を求める処理を行うアクティビティです。
Visual Studioでプロジェクトを作成する際、いくつかパラメータを設定するのですがこれらが実際のアクティビティの名称やパラメータに反映されます。
これらを意識して見てみてください。
Visual Studio で処理コード(C#)で記述
Visual Studio を起動します。
[ファイル] > [新規] > [プロジェクト] をクリックしプロジェクト作成画面を開きます。
左ペインから[Visual C#] を選択し、表示された中央のペインから[クラス ライブラリ (.NET Framework)] を選択します。
[名前] フィールドには、今回のプロジェクトの名前を入力します。
[Solution name] と書かれた箇所が開発後のグループ名(アクティビティをまとめた単位)となるのでわかりやすい名称をつけるように気をつけてください。
入力が出来たら、[OK] をクリックします。
プロジェクト開発画面が起動します。
右側の【Solution Explorer】には、今回の開発材料が一覧になって表示されているのを確認してください。
ここで、UiPathで利用可能なアクティビティを開発するために、追加で次の2つの参照を追加する必要があります。
- System.Activities
- System.ComponentModel.Composition
先程つけた名前と同一の名称のフォルダを選択し、右クリックをします。
[追加] > [参照の追加]を選択します。
Reference Mnager】の新しいウィンドウが開きますので、右上の検索欄に先程の2つの参照名をそれぞれ入力し、右側のチェックボックスにチェックを入れます。
まず、"System.Activities"を検索し、右側にチェックします。
次に、"System.ComponentModel.Composition"を検索し、右側にチェックします。
2つともチェックが出来たら[OK]を選択します。
と、準備が終わりましたので、ようやくコードの記述を行っていきます。
先程加えた参照を使えるようにしましょう。
次の画像のように、using・・・で参照を追加します。
using System.Activities;
using System.ComponentModel;
加えて開発するカスタムアクティビティはUiPathで利用可能な"CodeActivity"クラスに準拠していなければなりません。
そのため、それを明示しておきます。
次の画像のように"CodeActivity"を記述してください。
エラーとなると思いますが、必要メソッド(Execute())の実装不足であるため今は無視して問題ありません。
public class Class1 : CodeActivity
{
}
ようやく中身の記述です。
その前に簡単に記述方法を説明します。
UiPathのアクティビティは、インプットとアウトプットの引数(変数)とそれらを利用して行う処理から成り立っています。
それらを記述する必要がありますが、それぞれ記述する場所が決まっています。
まず、引数(変数)ですが、これらは"Class"〜"Execute"の間に、インプット・アウトプットどちらも記述をしてしまいます。
また、インプット・アウトプットを定義しているのはコードの"InArgument"と"OutArgument"という単語です。
処理については、"Execute()"の枠内に記述をします。
引数(変数)へアクセスするときは、getとsetを基本は利用します。
では、まず引数を記述します。
今回は、2つの数字を受け取りますので、2つの InArgument 、そして計算した結果を返すので一つの OutArgument となります。
// 1つ目の数字
[Category("Input")]
[RequiredArgument]
public InArgument<Int32> FirstNumber { get; set; }
// 2つ目の数字
[Category("Input")]
[RequiredArgument]
public InArgument<Int32> SecondNumber { get; set; }
// 平均の結果
[Category("Output")]
[RequiredArgument]
public OutArgument<Int32> ResultNumber { get; set; }
続いて、処理を記述します。
Execute() メソッドを定義し、その中に下記のコードを記述します。
protected override void Execute(CodeActivityContext context)
{
int firstNumber = FirstNumber.Get(context);
int secondNumber = SecondNumber.Get(context);
int resultNumber = (firstNumber + secondNumber) / 2;
ResultNumber.Set(context, resultNumber);
}
最終的なイメージは次のようになります。
コードの記述が完了したので、ビルドします。
[Build] > [Build “プロジェクト名”] をクリックします。
すると、開発したコードを反映した.dll ファイルがプロジェクトフォルダ内に作成されます。
これでVisual Studioでの作成は終了です。
.dllファイルからNugetパッケージを作成
NuGet Package Explorer(NuGetPackageExplorer.exe)を起動します。
起動後ポップアップが表示されるので、[Create a new package]を選択します。
パッケージ作成画面が表示されるので、まだ何を置かれていない右側の【Package contents】欄で右クリックをし、[Add Lib Folder]を選択します。
新しく [lib]フォルダが作成されるのを確認してください。
次に[lib]フォルダを右クリックして、[Add Existing File…] を選択します。
ここで、先程Visual Studioで開発した.dllファイルを選択してください。
[lib]フォルダ内に格納できたら、作成パッケージの名称を設定します。
[Edit] > [Edit Metadata] をクリックします。
【Package metadata】ペインが左側に表示されると思います。
多くの設定項目がありますが、基本必要な項目は一番上の【Id】となります。
アップデートを行う場合は、バージョンの変更も行います。
【Id】の入力が完了したら、保存をします。
このあとUiPath Studioでインストールを行うため、デフォルトの保存場所がわからない方は、名前を付けて保存でフォルダを指定してください。
これで、NuGet Package Explorerでの設定も完了です。
UiPath Studioからインストール
UiPath Studioへのインストールは、他のカスタムアクティビティのインストールと同様の方法で行うことができます。
UiPath Studioの上部ペインから、【パッケージを管理】をクリックします。
続いてパッケージソースの参照先を設定します。
参照先は、先程の NuGet Package Explorer で保存した先のパスを指定します。
(画像上は、ダウンロードフォルダを指定しています)
先程開発したファイルが表示されたら、選択し右側の[インストール]を選択します。
これでインストールが完了しました。
自分の開発したアクティビティが表示されていることを確認してみてください。
【追記】Visual Studio からパッケージを発行する
UiPathの公式サイトではNuGetPackageExplorerの利用が記載されていますが、こちらを利用しなくてもVisual Studioの機能のみで発行が可能です。
手順は次のようになります。
すべてVisual Studio内の操作です。
- プロジェクトを作成しコードを書く
- パッケージのプロパティを構成する
- プロジェクトをビルドする
- パックコマンドを実行する
プロジェクトを作成しコードを書く
プロジェクトを作成しコードを書いてください。
ここまでの内容は従来と変わりません
パッケージのプロパティを構成する
コードが書けたらパッケージを作成するためのプロパティを設定します。
上のパネルから【プロジェクト】を選択し、そのリストの一番下にある【〇〇のプロパティ】を選択します。
新しく開くタブの中にパッケージと言う欄があるのでそこを編集します。
また、【ビルドでNuGetパッケージを生成】というチェックボックスがありますがこちらをオンにしておけば次のパックコマンドを利用せずパッケージが作成されます。

設定が完了したら保存しましょう。
プロジェクトをビルドする
上のパネルから【ビルド】を選択し、そのリストの中にある【〇〇ビルド】を選択します。
ビルドする際は、DebugなのかReleaseなのか一応確認しておいてくださいね。
下のコンソールでコマンドが走り、問題がなければOKです。
パックコマンドを実行する
右側パネルのソリューションエクスプローラーからプロジェクトを選択します。
その状態で右クリックをし、リストから【パック】を選択します。
ビルド時と同じように下のコンソールでコマンドが走り、問題がなければOKです。
あとはプロジェクトのフォルダを開き、選択している対象のフォルダ(DebugなのかReleaseなのか)を確認すればNugetパッケージが見つかると思います。

こっちのほうが簡単ですね。
まとめ
今回は、UiPath Studioへ利用出来るカスタムアクティビティの開発について記事にしてみました。
コードの記述等難しいと感じられた方もいらっしゃったかもしれません。
けれど、UiPathを利用して自動化を行う場合、今回のように独自に開発をすることはほとんどありませんので安心してください。
それくらいUiPathは標準で優れています。
また、もし、RPAからはじめたけど、コードも書いてみたいという方はUiPathとのシナジーを考慮しC#の勉強を始めてみてはいかがでしょうか。
意外と面白いですね。
今回の内容で疑問点や質問がありましたらコメントへお願いします。
最後までお読みいただきありがとうございました。
では!