LoginSignup
2
7

More than 5 years have passed since last update.

UiPathのカスタムアクティビティの配布について(Orchestrator接続あり版)

Last updated at Posted at 2018-10-11

さて前回までで、単体のRobotからカスタムアクティビティを利用するために、どこにそのカスタムアクティビティのnupkgを配置すればよいかについてしらべました。そのnupkgは個別にRobotの端末に配置する必要があったわけですが、今回はOrchestratorに接続しているRobotはどうすればよいかを整理します。

対象のシナリオ

いままでと同様、下記のカスタムアクティビティを使用しているシナリオ CustomActivityTest を使用します。
image.png

全体像

構成がややこしくなってきたので図で整理。Visual Studioでカスタムアクティビティ(ActivitiesPathUtils)を作成し、そのnupkgを作成します。同じ端末にあるUiPath Studioで、それを使用するUiPathのシナリオ(Package?) であるCustomActivityTest を作成します。まあ、ここまではいままでやってる作業と全く変わらずですね。
image.png
さてそのUiPath StudioからOrchestratorへPackage をPublishします。カスタムアクティビティを使っていなければ、ふつうにOrchestratorから図中下のロボット単体の端末へそのPackageをデプロイすればよいわけですが、カスタムアクティビティを使用する場合どこからそのnupkgを取得すればよいか、ってのを整理したいと思います。

結論をいうと図にあるようにOrchestratorにそのカスタムアクティビティのnupkgを配置(Push)しておくことで、Packageのデプロイ時にそれらのnupkgも自動で取得できるようになっています。

Robotからカスタムアクティビティを使う(Orchestrator接続ケース)

StudioからのPublish

Orchestratorに接続済みのUiPath Studio上で、Publishを行います。
image.png

一応Orchestrator上でPublishされていることを確認します。
image.png

Orchestrator上で、該当PackageとRobotを紐付けます(蛇足ですが、Environmentは日本語訳は「ロボットグループ」になるようですね)
image.png

リリース完了です。
image.png

ロボット単体端末からの実行

Environment に属しているロボット端末には、CustomActivityTest が配布されているとおもいます。
image.png

実行してみると、、、想定通りやっぱりダメですね。。Orchestratorなし版でやっていたのと同様、アクティビティがない的なエラーになります。
image.png

カスタムアクティビティのOrchestratorへのアップロード

さてカスタムアクティビティがないよってエラーからも分かるとおり、カスタムアクティビティ ActivitiesPathUtils のnupkgは個別に配布が必要みたいです。

しらべたところOrchestratorは、nupkgをホスティングするNuGetサーバの役割も担っているようで、NuGet関連の知識が活用出来そうです。ワタクシあまりMicrosoft 界隈に詳しくないのですが、NuGet パッケージの公開方法 この辺を参考にやってみます。

このサイトをみるとnupkgのNuGetサーバへの公開は、下記のようなコマンドを使うようです。

dotnet nuget push AppLogger.1.0.0.nupkg 
 -k qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 
 -s https://api.nuget.org/v3/index.json

ドットネット、、、こんなコマンドあんのかな?とおもって叩いてみたら、ありました :-)。.NET Framework に同梱されていたんですかね、、。

さて、-k オプションはAPIキー、-sオプションのURLはNuGetサーバのURLっぽい。どう指定するのかしらべたところ、これらはOrchestratorに接続した端末の %programData%\UiPath\UiPath.settings に書いてありました。

UiPath.settings
{
  "NuGetApiKey": "78542xxx-xxxx-xxxx-xxxx-xxxxxxxxxx",   -kに指定
  "NuGetServerUrl": "https://[サーバ名]/nuget/feed/default", 
  "ActivitiesFeed": "https://[サーバ名]/nuget/activities",  -sに指定
  "UiPathServerUrl": "https://[サーバ名]",
  "TracingLevel": "Information",
  "LowLevelTracing": false,
  "SecureLicenseKey": "xxxx",
  "LoginToConsole": true,
  "ResolutionWidth": 0,
  "ResolutionHeight": 0,
  "ResolutionDepth": 0,
  "FontSmoothing": false,
  "ConnectionString": ""
}

ちなみにAPIキーはOrchestratorのWEB画面上、Settings >> Deployment からも確認可能です。
image.png

さてやってみます。Visual Studio側の端末の、カスタムアクティビティのnupkgがあるディレクトリで、下記の通りコマンドを実行します。

Z:\git\Path\Path>dir ActivitiesPathUtils.0.0.15.nupkg
2018/10/10  13:49            10,731 ActivitiesPathUtils.0.0.15.nupkg
               1 個のファイル              10,731 バイト
               0 個のディレクトリ  156,051,349,504 バイトの空き領域
Z:\git\Path\Path> dotnet nuget push ActivitiesPathUtils.0.0.15.nupkg 
 -k 78542xxx-xxxx-xxxx-xxxx-xxxxxxxxxx 
 -s https://[サーバ名]/nuget/activities   (実際は一行で)


info : ActivitiesPathUtils.0.0.15.nupkg を 'https://[サーバ名]/nuget/activities' にプッシュしています...
info :   PUT https://[サーバ名]/nuget/activities/
info :   Created https:/[サーバ名]/nuget/activities/ 367 ミリ秒
info : パッケージがプッシュされました。

Z:\git\Path\Path>

おおお、パッケージがプッシュされた、と。。じっさい、Orchestratorサーバ側でみてみると、
image.png

image.png

ちゃんとアップロードされていますねー。

再実行

さてOrchestratorにカスタムアクティビティのnupkgがアップされたので、再実行してみます。

image.png

image.png

実行できました。

まとめ

カスタムアクティビティを作成してそのnupkgをどのように共有するかについて、UiPath Studioから使用する場合単体Robotから使用する場合、Orchestratorに接続したRobotから使用する場合、をそれぞれ整理しました。

個別にnupkgを配布・共有する必要があったカスタムアクティビティですが、Orchestratorを導入することでその必要がなくなり、とても便利になることが分かりました。

おつかれさまでした。

ソースコード

https://github.com/masatomix/UiPath_Path/releases/tag/0.0.15
に配置しました。

関連リンク

記事目次

2
7
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
2
7