こんにちは。UiPath Friendsコミュニティ運営メンバの @masatomix です。
イントロ
今回はこのトピック。
Orchestratorのフォルダ構成ですが、部署をフォルダの単位にする というのはよくあるやりかたですよね。
またワークフローをUnattended Robot(以下UR)で動かすばあいは、フォルダにURのマシンテンプレートを登録するのですが、今回はこの辺のおはなしです。
このつぶやき自体はUiPath Orchestrator 2020.10.xについて書いていますが「こういう仕様なのかぁ」てのがあったのでその備忘です。フォルダ設計の参考になればとおもいます。
環境
オンプレの UiPath Orchestrator 2020.10.x版、2021.10.x版について記述しています。
以下OC2020、OC2021と記述します。
ケース
こんなケースを考えてみます。
- モダンフォルダは部署で分けている
- その部署で使うワークフローを、同フォルダに入れている
- それらワークフローのうち、一部は特定のPC群で実行したいけど、その他は自由
「部署内のワークフローのうち、一部のワークフローはあの端末群でしか実行できないんだよねぇ」 なんてケースです。
実際にOrchestratorの用語に当てはめてみるとこんなかんじでしょうか。
項目 | 値 |
---|---|
フォルダ | root/部署A |
マシン | Client001,Client002,Client003 |
プロセス | app001: Client001,Client002だけで実行できる app002: 任意のPCで実行できる |
マシンテンプレート | テンプレート1: Client001,Client002 テンプレート2: Client003 |
Windowsアカウント | user001~user005 (今回はあんまし関係なし) |
図にするとこう。
app001というプロセス(ワークフロー)はClient001,002だけで実行できるようにしたいので、これらのPCは同じマシンテンプレートにして、ジョブ実行時にテンプレを指定してやれば、と思いやってみたけど、、、というはなしです。
OC2020、OC2021で仕様が違う のでそれぞれ整理してみました。
TL;DR
- OC2020におけるジョブ実行ではテンプレートを指定できない。そのためフォルダ内の一部のマシンだけでラウンドロビン1させる事ができない。「フォルダ内の全マシン」のどれかで動けという設定はできる。もしくは明示的にマシンを指定して実行することもできる。
- OC2020のスケジュール実行では 「フォルダ内の全マシン」のどれかで動け という設定のみで、マシン指定すらも不可。
- OC2021のジョブ実行は、テンプレートを指定できるようになったため、フォルダ内の特定のテンプレートを使用するマシンでラウンドロビンができる。
- OC2021のスケジュール実行は、全マシンのいずれか、もしくはテンプレート指定ができる。
表でまとめるとこうです
バージョン | ジョブ | トリガー |
---|---|---|
OC2020 | フォルダ内の全マシンのいずれか マシン指定 |
フォルダ内の全マシンのいずれか |
OC2021 | フォルダ内の全マシンのいずれか テンプレートを指定 マシンを指定 |
フォルダ内の全マシンのいずれか テンプレートを指定 |
参考 OC2022.4 |
フォルダ内の全マシンのいずれか テンプレートを指定 マシンを指定 |
フォルダ内の全マシンのいずれか テンプレートを指定 マシンを指定 |
OC2020はテンプレートを指定することで app001はClient001,002だけで動かすコトができると思ったのですが、テンプレ指定ができませんでした、、。ちょっと残念な仕様です。
各バージョンもうすこしちゃんとみてみる
OC2020
ジョブ
OC2020だと、マシン指定はできるけどテンプレートを指定するプルダウンが存在しないですね。
トリガー
トリガーはこう。何らかマシンを指定するプルダウンすらなく、マシンのいずれかで動くという設定しかできませんでした。
OC2021
ちなみにOC2021はこちら。しれっと改善されています。
ジョブ
「そのテンプレートを使ってるマシンのうちいずれか」という設定を選べたり、
そのテンプレートを使っていて、いま接続されているマシンを具体的に選んだりできます。
トリガー
OC2020でも頑張ってみる
OC2020でもフォルダを分ければ、やりたいことはなんとか実現できます。
フォルダ内のマシン群全体でしかラウンドロビンできないのであれば、それぞれにフォルダを用意すればよいわけですね。まあ、フォルダ構成を変える必要があって、うーんって感じです。
まとめ
-
OC2020について 「マシンテンプレートを共有することによって、複数PCでラウンドロビンできるようになりました」的な説明を聞きますが、フォルダ内のPCたちではラウンドロビンができますが、テンプレート単位のラウンドロビンではできません。
- ジョブ実行時は「すべてのマシンのうちいずれか、またはマシン直接指定」 スケジュール実行時は「すべてのマシンのうちいずれか」のみです。
- したがってマシンテンプレートの機構はフォルダにPCを登録するときにいっぺんに登録できる便利な仕組み、くらいになっちゃってますね。
-
一方でOC2021以降では、ジョブ、スケジュールとも「マシンテンプレート指定」が可能になっていました。 うん、こうあるべきだと思います。2
蛇足(OC2020からの改善点)
最後蛇足ですが、いままで何度もOC2020を導入してきて、運用上ココイマイチだなぁって思った部分があるのですが、それらがいろいろOC2021以降では改善されていたりします。ざっと書いてみると、、
- 今回のジョブ・スケジュール指定時のマシン指定の不自由さの改善
- アセットのリンク機能(別フォルダのアセットを自フォルダにリンクする機能3)
- マシンテンプレートとユーザのマッピング機構4
- テナントロールとフォルダロールを取り違えにくくなった
- ユーザのグループ機能について、2020ではADのグループのみだったのが、2021からは任意のグループを作成できるようになった
などがあります。今後記事にしていこうと思います!
お疲れさまでしたー
関連リンク
自分がモダンフォルダ関連で書いてある記事を載せておきます
- よくわかるモダンフォルダ(イントロ編)
- [UiPath] よくわかるモダンフォルダ(基本編)
- [UiPath] Orchestrator関連のシステム構成図を整理してみた(よくわかるモダンフォルダ番外編)
- [UiPath] Orchestratorバージョンアップ時の検討事項(よくわかるモダンフォルダ番外編)
- [UiPath] よくわかるUnattendedロボット(イントロ編)
- [UiPath] よくわかるUnattendedロボット(同時実行編)
-
空いてるヤツどれかが動くという負荷分散できる機構って意味です ↩
-
OC2020時点では技術的になんか障壁があったんですかね ↩
-
ユーザごとにアセット値を持つヤツはダメで、グローバルなアセットだけだけど。この機能はOC2020でも絶対ほしかった、、、、 ↩
-
マシンテンプレートの作成時(もしくはフォルダ紐付け時)にユーザも紐付けておくことで、UR実行時にそのテンプレを選んだら紐付けたユーザのみ選択可能になる機構。また、そのフォルダ内でアセットを作るとき「ユーザごとアセット」だけでなく 「ユーザ、マシンテンプレートごとアセット」をつくれるようになる。マシンキー接続しているPCたちは、かつてのようにロボットごとアセットが作れるぽい?(アセットはちゃんと調べてないがざっと見たところそんな機能だった) ↩