Skip to content

【UiPath】カスタムアクティビティを開発する

Posted in ノート

Last updated on 2022年8月9日

UiPath のアクティビティって自分で作ることができるって知ってますか?

標準でさまざまな利用目的に合わせてアクティティビティが用意されているため必要性は低いのですが、実は自分で作ることができます。

今回はちょっとマニアックな内容となりますがUiPathのアクティビティを開発する方法を説明していきます。


開発だぜ(渋声)

誰・・・


事前準備するもの

開発するにあたり次の2つのソフトウェアが必要になります。

UiPtah Studio/ Robotはすでに導入している前提となります。

どちらのソフトウェアも個人利用であれば、無料で利用する事ができます。

リンク先のURLよりダウンロードしインストールをしてください。

※ インストール手順は省略します


開発の流れ

開発の手順は次のようになります。

  1. Visual Studio で処理コード(C#)を記述
  2. NuGetPackageExplorerで.dllファイルからNugetパッケージを作成
  3. 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.ComponentMode

先程つけた名前と同一の名称のフォルダを選択し、右クリックをします。

[追加] > [参照の追加]を選択します。

【Reference Mnager】の新しいウィンドウが開きますので、右上の検索欄に先程の2つの参照名をそれぞれ入力し、右側のチェックボックスにチェックを入れます。

まず、”System.Activities”を検索し、右側にチェックします。

次に、”System.ComponentModel”を検索し、右側にチェックします。

2つともチェックが出来たら[OK]を選択します。

※ 画像は System.ComponentModel.Compositionとなっています。

と、準備が終わりましたので、ようやくコードの記述を行っていきます。

先程加えた参照を使えるようにしましょう。

次の画像のように、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内の操作です。

  1. プロジェクトを作成しコードを書く
  2. パッケージのプロパティを構成する
  3. プロジェクトをビルドする
  4. パックコマンドを実行する

プロジェクトを作成しコードを書く

プロジェクトを作成しコードを書いてください。

ここまでの内容は従来と変わりません


パッケージのプロパティを構成する

コードが書けたらパッケージを作成するためのプロパティを設定します。

上のパネルから【プロジェクト】を選択し、そのリストの一番下にある【〇〇のプロパティ】を選択します。

新しく開くタブの中にパッケージと言う欄があるのでそこを編集します。

また、【ビルドでNuGetパッケージを生成】というチェックボックスがありますがこちらをオンにしておけば次のパックコマンドを利用せずパッケージが作成されます。

設定が完了したら保存しましょう。


プロジェクトをビルドする

上のパネルから【ビルド】を選択し、そのリストの中にある【〇〇ビルド】を選択します。

ビルドする際は、DebugなのかReleaseなのか一応確認しておいてくださいね。

下のコンソールでコマンドが走り、問題がなければOKです。


パックコマンドを実行する

右側パネルのソリューションエクスプローラーからプロジェクトを選択します。

その状態で右クリックをし、リストから【パック】を選択します。

ビルド時と同じように下のコンソールでコマンドが走り、問題がなければOKです。

あとはプロジェクトのフォルダを開き、選択している対象のフォルダ(DebugなのかReleaseなのか)を確認すればNugetパッケージが見つかると思います。

こっちのほうが簡単ですね。


最後に


今回は、UiPath Studioへ利用出来るカスタムアクティビティの開発について記事にしてみました。コードの記述などRPAのよさから離れてしまった感が否めません。実際はこんなにコードを書くことは無いのであくまで参考としていただければと思います。

最後までお読みいただきありがとうございました。

では!