Edited at

UiPath Robot 単独インストールからワークフロー実行までのハンズオン。またプロキシを入れるなど、デバッグに便利なTIPSのご紹介。


イントロ

UiPath をインストーラから入れると、デフォルトのままだとUiPath Studio(開発環境)とUiPath Robot(実行環境)がインストールされますが、実際のユーザ環境はライセンス数にも限りがあるため、StudioはインストールしないでRobotのみをインストールすることも多いです。

さて今回は UiPath Robotだけをインストールしてアクティベーション(Community License)を行い、ワークフローの実行までやってみます。またロボットの通信にプロキシを挟むなど、その他のTIPSをご紹介します。


対象の方


  • UiPath Studioから実行とかはやってるけど、UiPath Robot単体環境というのはあまりさわったことがない方

  • UiPath Robot がライブラリを落としてくるときにどこにアクセスしてるのかな?などが気になる方

  • その他、UiPath RobotのTIPSをしりたい方


UiPath Robotのインストール

「UiPath Studio のインストール」 に詳しく書いてあるのですが、今回もこの記事同様「商用トライアル」版を使います。手元にあったインストーラは2018.4.5でしたが、最新版でも手順は大差ないと思います。

管理者権限を持ったユーザでインストーラを起動してからも つぎへつぎへ は基本おなじですが、インストールするモジュール選択では下記の通り「UiaPath Studio」と「ローカルアクティビティフィードをインストール」を外して、純粋に UiPath Robot だけを入れます。1

インストールが完了したら「UiPath Robotを起動」をチェックしたままインストールを完了すると、、、

タスクトレイにロボットが表示されました。仮にチェックを入れ忘れたり、PC再起動後またロボットを起動するにはスタートメニューから「UiPath Robot」をえらんで起動すればOKです。

インストールは完了です。


UiPath Robotのアクティベーション

さてUiPath Robotのアクティベーションです。ちなみにStudioなどが存在する場合は、Studioをアクティベーションすれば一緒にRobotもアクティベーションされるし、OrchstratorにつないだUiPath Robotは、タスクトレイのアイコンから開くことができる設定画面をつかってOrchestratorからライセンスを取得してアクティベーションすることが出来ます。

今回は、Community Licenseでアクティベーションするために、コマンドラインからのアクティベーションを行います。

というわけで、コマンドプロンプトを開いて

C:\Windows\System32>

C:\Windows\System32> cd "c:\Program Files (x86)\UiPath\Studio\UiPath"

C:\Program Files (x86)\UiPath\Studio\UiPath> Regutil.exe get-info
エラー #17: ライセンスコードが読み取れません: -1094, エラーの説明: NSL not licensed
ライセンスステータス: -1
デバイスID: UQKbg2xxxxxxxxxx
エラー #20: ライセンスの有効期限の読み込み中にエラーが発生しました: -6003, エラーの説明: Lookup of tag failed
メンテナンス期限: 未設定
サブスクリプション有効期限: 未設定
ユーザー定義値 "Attended": 未定義
ユーザー定義値 "Unattended": 未定義
ユーザー定義値 "Free": 未定義
ユーザー定義値 "Dev": 未定義
ユーザー定義値 "AttendedConcurrent": 未定義
ユーザー定義値 "DevConcurrent": 未定義

アクティベーション前のようです。ひきつづき、、

C:\Program Files (x86)\UiPath\Studio\UiPath> Regutil.exe activate /email=hogehoge@ki-no.org

C:\Program Files (x86)\UiPath\Studio\UiPath> Regutil.exe get-info
ライセンスコード: NALPNA
ライセンスステータス: 2
デバイスID: UQKbg2xxxxxxxxxx
ライセンス有効期限: 2019/09/21 10:37:59
メンテナンス期限: 未設定
サブスクリプション有効期限: 未設定
Attended: 0
Unattended: 0
Free: 0
Dev: 0
AttendedConcurrent: 0
DevConcurrent: 0

ちなみにDeactivateはなぜか失敗する、、、orz

C:\Program Files (x86)\UiPath\Studio\UiPath>Regutil.exe deactivate
エラー #16: ライセンスをディアクティベーションできません: -4212, ライセンスステータス: 0, エラーの説明: SOAP invalid license number

アクティベーションできました。。(今回実施してませんが)アクティベーションを行っていないと、ワークフローを実行しようとしたときにエラーで異常終了するようになっています。

参考: Regutil を使ったコマンド記述


ロボットが参照する nupkg 達の配置場所

さてさてUiPath Robotはワークフローなどを配置するディレクトリなどいくつか特殊なディレクトリが存在するので、それらを整理しておきます。

パス
実パス(例)
役割

%programData%\UiPath\Packages
C:\ProgramData\UiPath\Packages
実行したいワークフローのnupkgを配置するディレクトリ。

%USERPROFILE%\.nuget\packages
C:\Users\[ユーザ名]\.nuget\packages
実行するワークフローが依存するライブラリがダウンロードされて、それらが解凍されるディレクトリ

実行するワークフローを配置した図

依存ライブラリが展開された図


実行する

さて、ワークフローを実行してみましょう。今ちょうどサンプルを作ってるので、下記からサンプルワークフローの nupkg ファイルをダウンロードしてください。

https://github.com/masatomix/My_Attended_Framework/releases/tag/1.0.7115.18328

Attended_FrameWork.1.0.7113.2777.nupkg がダウンロード出来たと思うので、上記のワークフローnupkgの配置場所: C:\ProgramData\UiPath\Packages へファイルを置いてください。

その後タスクトレイのロボットアイコンをクリックすると、下記のようにワークフローが認識されて表示されますので、右のダウンロードボタンを押して依存ライブラリをダウンロード(と展開) しましょう。

その後もう一度、ボタンをクリックすることで、ワークフローが実行出来ると思います。

実行中画面

以上でStudio でのワークフロー開発者側ではなく、ワークフロー実行者側の環境構築と、サンプルワークフローの実行が出来ました。


実運用上は


  • 今回はローカルでCommunity License でアクティベーションしましたが、本番導入時は UiPath社から受領したライセンスコードを使用するか、Orchestrator からライセンスを受領したりします。

  • 今回は Studio開発者が開発したnupkgを何らかの方法で受領してファイルを配置しました(Webから落としました)。Orchestratorが導入されていれば、そこからファイルを受領することが出来てとても便利です。

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


その他TIPS


UiPath Robotでプロキシを経由したい

ワークフローが依存しているライブラリの nupkg のダウンロードについて、どこに取りに行っているのかな?などを知りたかったりしますが、その際の外部との通信にプロキシを通す方法です。

https://robot.uipath.com/lang-ja/v2018.4/docs/redirecting-robots-through-a-proxy-server ココにあるとおり、設定はおもに3箇所。IEのプロキシ設定と、その他 UiPath用の以下の2箇所2


  • C:\Program Files (x86)\UiPath\Studio\UiPath.Service.Host.exe.config

  • C:\Windows\SysWOW64\config\systemprofile\AppData\Roaming\NuGet\NuGet.Config

二つ目は NuGet関連なので、UiPath専用ではなさそうですね、、さてそれぞれ下記のように変更してみます。

まずは UiPath.Service.Host.exe.config から。


UiPath.Service.Host.exe.config

...割愛。

<!--Proxy configuration-->
<!--
<system.net>
<defaultProxy>
<proxy
usesystemdefault="true"
proxyaddress="http://proxy_server:proxy_port"
bypassonlocal="true"
/>
</defaultProxy>
</system.net>
-->


これらをアンコメントし、proxyaddress="http://proxy_server:proxy_port"をたとえばproxyaddress="http://127.0.0.1:8888" などと変更します。

つぎに NuGet.Config について。コレは存在しない場合もあるようで(いちどもnupkgを取りにいってないなど)、なかったら適宜つくればよいようです。


NuGet.Config

<?xml version="1.0" encoding="utf-8"?>

<configuration>
<config>
<add key="http_proxy" value="http://127.0.0.1:8888" />
</config>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>

<config>...</config> を追加しました。

最後にWindowsのサービス(Win+R で services.msc で起動できる)から、UiPath Robot サービスを再起動しておきます。

さて、%USERPROFILE%\.nuget\packagesにあるファイルを全部消して、再度ワークフローを実行してみましょう。再度ダウンロードが走るはずなので、、、FiddlerなどのHTTP(s)のProxyソフトで確認してみると、、、

よさそうですね!これでnupkgをどこから落としてきているかなどを正確に把握することができます。


参照フィード

さて早速プロキシ設定を追加した状態にしておいて、どのサイトにnupkgを落としに行っているかをみてみます。nupkg って気がつくとダウンロードできていたりするので、、、。

先ほどのFiddlerにより、おおむねこの辺に取りにいってそうです。

などを参照し、先に応答したところからダウンロードしてくる仕様になってるようです。

NuGetのサイトは UiPath Studio では取りにいってなかった気がするので、ちょっと予想外でした。 NuGet.Config に

  <packageSources>

<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>

って書かれているから、、ですかね。。

-- 2019/06/25追記 --

まっさらの環境にStudioを入れて確認してみたところ、

ユーザが定義したサイトとして、NuGetのサイトが登録されていました。。つまり、UiPath RobotとUiPath Studioはデフォルトではおおむめ同じフィードサイトを参照していそうって事が分かりました。(同期しているかは後述)

、、ココからナゾが一つ。

こう、設定してみました。コミュニティ( https://gallery.uipath.com/api/v2 )だけ指定しているので、www.nuget.orgには取りに行かないと思ったのですが、、、

うーん取りに行ってますね。ナゾです。4つのうち、ローカル、オフィシャルの状態にはかかわらず 「コミュニティ」をチェックしているときだけ、この事象が発生しているように見えます。ナゾです。。

あ、ちなみにフィードへのアクセスのプロキシ設定は、StudioはIEのプロキシの設定に依存するみたいですね。。

あと、このStudio側でのフィード先のON/OFFですが、Robotはこの設定とは同期していなそうです。実際 Studioのフィード設定を全OFFにしてみましたが、Robotはちゃんと各フィードからnupkgをダウンロードしていました。。Robotは %ProgramData%\UiPath\UiPath.settings の ActivitiesFeed パラメタを参照しているからでした(ココもデフォルトは空なんですけどね、、、)。。

-- 2019/06/25追記ここまで --

おつかれさまでした。


関連リンク





  1. 結論いうと「ローカルアクティビティフィードをインストール」はどっちでもよさそう。サイトを引用すると「ローカルアクティビティフィードの追加を選択すると、C:\Program Files (x86)\UiPath\Studio\Packages ディレクトリにアーカイブとして保管されます。ローカルアクティビティフィードをインストールしない場合、Core アクティビティのみが上述のフォルダー内で利用可能になります。 」https://robot.uipath.com/lang-ja/v2018.4/docs/about-the-activities-feed 



  2. 厳密な役割分担はあまり調査できておらず、、。すんません。NuGet系は3つめぽい 



  3. 例: kino.UiPath.Utils.Activities