5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UiPathのカスタムアクティビティの配置場所について(アクティビティ開発者・UiPath開発者・Robot向け)

Last updated at Posted at 2018-10-17

これまで数回 UiPathのカスタムアクティビティを作成してきて、その作成したカスタムアクティビティを社内で共有しようと思ったとき、どのように共有するのがよりよいかをあらためて考えてみました。

全体像

image.png

このように「Visual Studioでアクティビティを開発するヒト」と「UiPath Studioで、そのアクティビティを使ったUiPathのシナリオを開発するヒト」そして「そのシナリオをRobotから使うヒト」がいるわけですね。

今回はこれら3つのアクターがカスタムアクティビティのnupkg を共有するために、今回は、.NET系のヒトたちがライブラリを共有するためのサイト、https://www.nuget.org/ を使用してみました。JavaでいうMavenのセントラルリポジトリみたいなもんですね。

全体像(NuGetサイト追記)

NuGetサーバ( https://www.nuget.org/ )を追記した全体像は以下の通り。
image.png

Visual Studioでアクティビティを開発するヒト

図中の上のヒトです。カスタムアクティビティをVisual Studioで開発しながらUiPath Studioでデバッグしている工程では、NuGet のサイトを用いるのではなく単純に、Visual Studio(正確にはnuget.exe)がnupkgを配置する場所をUiPath Studioが参照すればよいわけですね。
image.png
この場合は、Visual Studio の パッケージマネージャ設定 で、ローカルのnupkgが出力されるパスを指定すればUiPath Studioもそこを参照してくれる、ようになっているのでした。

image.png

参考:パッケージマネージャのローカルリポジトリの追加

したがってカスタムアクティビティの開発者はこれで十分ですが、他のアクターとのnupkgの共有のために、リリースしたいnupkgを NuGetのサイトに公開します。

NuGetサイトへnupkgを公開する

NuGetサイトでのnupkg公開には、NuGetサイトのアカウントの作成と、そのアカウントでnupkgをアップロードする際に必要なAPIキーが必要です。

やってみます。https://www.nuget.org/ へアクセスし、右上の「Sign in」を選択
image.png

下図ではMicrosoftアカウントでログインしようとしていますが、まあ、何でもイイのでアカウントを作成してください
image.png

アカウントを作成したら、右上部分から 「API Keys」を選択してAPI キーの管理画面に遷移します
image.png

Createを選ぶと、キーを作成する画面になります。

キーの名前や、そのキーで出来ること(packagesのPushができればじゅうぶん)、Globパタンで「*」(どのパッケージもアップできるって意味。制限することも可能) などを記述して、Create ボタンをクリック
image.png

キーが作成できました。このキーは、いま、この画面でしかコピペできないので、どこかにひかえておきましょう。
image.png

早速アップロードしてみましょう。カスタムアクティビティはまあ何でもよいんですが、ずっと記事に使ってるカスタムアクティビティ を使用します。

NuGetサイトへのアップロードは、nupkgファイルのある場所に移動して、下記のコマンドで行います。

Z:\git\Path\Utils> dotnet nuget push kino.UiPath.Utils.Activities.0.1.30.nupkg 
                     -k [取得したAPIキー] 
                     -s https://api.nuget.org/v3/index.json    (実際は一行で)
info : kino.UiPath.Utils.Activities.0.1.30.nupkg を 'https://www.nuget.org/api/v2/package' にプッシュしています...
info :   PUT https://www.nuget.org/api/v2/package/
info :   Created https://www.nuget.org/api/v2/package/ 12900 ミリ秒
info : パッケージがプッシュされました。

うまくいったようです。アップが完了するとほどなくして(10〜30分くらい??結構かかる)、NuGetのサイトの Manage packages画面で、

image.png

こんな感じに確認することが可能です。

検索も可能になってるはずです。
image.png

以上でアップロードは完了しました。改めて図示するとこんな感じですね。
image.png

UiPath Studioで、そのアクティビティを使ったUiPathのシナリオを開発するヒト

つづいて、UiPath Studioでカスタムアクティビティをつかったシナリオを開発するヒトです。このアクターは、UiPath Studioが直接 NuGetサイトのフィードを参照してくれれば良いのですが、直接は参照してくれないっぽい1ので、https://www.nuget.org/ よりnupkgをローカルにダウンロードし、それが展開される場所を UiPath Studioが参照するようにします。

具体的には以下の通り。

まずはNuGetサイトからのGetですが、任意のディレクトリで、下記のコマンドを使用します

C:\Temp> nuget install kino.UiPath.Utils.Activities -Source https://api.nuget.org/v3/index.json
Feeds used:
  https://api.nuget.org/v3/index.json

Installing package 'kino.UiPath.Utils.Activities' to 'c:\Temp'.
  GET https://api.nuget.org/v3/registration3-gz-semver2/kino.uipath.utils.activities/index.json
  OK https://api.nuget.org/v3/registration3-gz-semver2/kino.uipath.utils.activities/index.json 675ms
... 割愛

Successfully installed 'kino.UiPath.Utils.Activities 0.1.30' to c:\Temp
Executing nuget actions took 1.72 sec

c:\Temp>

こうすると、 c:\Temp> にnupkgが配置されると同時に
image.png

C:\Users\ユーザ名\.nuget\packages にも、nupkgが展開されます。
image.png

実はC:\Users\ユーザ名\.nuget\packagesこちらのディレクトリは、次のアクターのRobotも参照している場所のようなので、UiPath Studioにはこのディレクトリを参照するよう設定します。

UiPath Studio >> Activitiesペインの Manage Packages(段ボールアイコン) >> 右クリックで Configure Sources を選択

image.png

追加(プラス)アイコンをクリックして、C:\Users\ユーザ名\.nuget\packages を参照先として追加してOKをクリック。
image.png

Package管理画面から、ローカルに展開されたカスタムアクティビティを参照できるようになりました。
image.png

改めて図示するとこんな感じです。
image.png

今後NuGetサイト上のカスタムアクティビティが更新されたばあいは 再度 nuget install コマンドでローカルのファイルを更新して、それからPackage管理画面を開いてください。そこからUpdateすることが可能です。

カスタムアクティビティとそのシナリオをRobotから使うヒト

さて最後は「カスタムアクティビティとそのシナリオをRobotから使うヒト」です。さきほど少し書きましたが、C:\Users\ユーザ名\.nuget\packages はUiPath Robotがデフォルトで参照しているディレクトリでした。従って「アクティビティを使ったUiPathのシナリオを開発するヒト」と同様、NuGetサイトから nupkgをダウンロードして、展開しておくだけで良さそうです。手順は同じで、任意のディレクトリで下記のコマンドを実行します。

C:\Temp> nuget install kino.UiPath.Utils.Activities -Source https://api.nuget.org/v3/index.json

図示するとこう。
image.png
参考:UiPathのカスタムアクティビティの配布について(Orchestrator接続なし版)

UiPathのnupkgについては、Orchestratorナシの場合は手動でローカルの所定の場所へ、OrchestratorアリのばあいはOrchestratorから配布してもらいましょう。

##まとめると

おつかれさまでした。

カスタムアクティビティのnupkgをどう取得・配置すればよいかについて整理しました。まとめると

  • 「Visual Studioでアクティビティを開発するヒト」→ 開発時は、Visual/UiPath Studio がローカルでnupkgを共有する。配布はNuGetサイトへ
  • 「UiPath Studioで、そのアクティビティを使ったUiPathのシナリオを開発するヒト」→nuget.exeでnupkgをinstallしたのち、UiPath Studioが、所定のディレクトリC:\Users\ユーザ名\.nuget\packagesを参照する
  • 「そのシナリオをRobotから使うヒト」→nuget.exeでnupkgをinstall すれば、Robotが参照している場所に自動的に展開される

という事になりそうです。今回はネット上のNuGetサーバを用いましたが、社内開発みたいな公開したくないアクティビティはイントラ内にNuGetのサーバを構築すればイイってことですかね。

そういえば、UiPathのカスタムアクティビティの配布について(Orchestrator接続あり版) でOrchestratorに接続したロボについて書きましたが、そのパタンではOrchestratorサーバ自体がNuGetサーバになって、Robotはそこからカスタムアクティビティを取得しました。仕組みとしては近しい感じです。。

ちなみに、UiPath Studio 2018.3からは、Package管理画面 に https://www.nuget.org/ が設定されているようなので、UiPath Studio 開発者はカスタムアクティビティの取得が少しは楽になりそうですね。(ロボットが https://www.nuget.org/ を参照してて自動ダウンロードしてくれるかは未確認。。)

2018/10/19追記
https://www.nuget.org/ が設定されている、と書きましたが正確には自分で追加したのかも、、、。しかも追加したURLは https://api.nuget.org/v3/index.json でした。ただ、2018.2系ではこのURLの追加は出来なくて(エラーになる)、2018.3系から直接参照できる、ってのは変わりません。。

2018/10/19追記 ここまで

ソース

##関連リンク

記事目次

  1. 2018/11/12追記 うえにも少し書きましたが、UiPath Studioの2018.3からは、NuGetのプロトコルをそのまま読めるようになった(?)みたいで、Orchestratorに繋いだStudioは、OrchにデプロイしたカスタムアクティビティをStudio上で直接取得できるようになりました。Orchに接続しているロボは直接Orchのフィードを受けていましたが、それと同様の挙動になったって事ですね。さらには、UiPathのカスタムアクティビティの配布について(Orchestrator接続あり版) では、コマンドを使ってカスタムアクティビティをOrchestratorにデプロイしましたが、2018.3のOrchからはアップロードするGUIが追加されましたね、、。(メニューにライブラリという欄が追加されました。)

5
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?