LoginSignup
5
3

More than 1 year has passed since last update.

[UiPath] よくわかるモダンフォルダ(ジョブ/スケジュール設定編)

Last updated at Posted at 2022-08-26

こんにちは。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 (今回はあんまし関係なし)

図にするとこう。

image

app001というプロセス(ワークフロー)はClient001,002だけで実行できるようにしたいので、これらのPCは同じマシンテンプレートにして、ジョブ実行時にテンプレを指定してやれば、と思いやってみたけど、、、というはなしです。

OC2020、OC2021で仕様が違う のでそれぞれ整理してみました。

TL;DR

  • OC2020におけるジョブ実行ではテンプレートを指定できない。そのためフォルダ内の一部のマシンだけでラウンドロビン1させる事ができない。「フォルダ内の全マシン」のどれかで動けという設定はできる。もしくは明示的にマシンを指定して実行することもできる。
  • OC2020のスケジュール実行では 「フォルダ内の全マシン」のどれかで動け という設定のみで、マシン指定すらも不可。
  • OC2021のジョブ実行は、テンプレートを指定できるようになったため、フォルダ内の特定のテンプレートを使用するマシンでラウンドロビンができる。
  • OC2021のスケジュール実行は、全マシンのいずれか、もしくはテンプレート指定ができる。

表でまとめるとこうです

バージョン ジョブ トリガー
OC2020 フォルダ内の全マシンのいずれか
マシン指定
フォルダ内の全マシンのいずれか
OC2021 フォルダ内の全マシンのいずれか
テンプレートを指定
マシンを指定
フォルダ内の全マシンのいずれか
テンプレートを指定
参考
OC2022.4
フォルダ内の全マシンのいずれか
テンプレートを指定
マシンを指定
フォルダ内の全マシンのいずれか
テンプレートを指定
マシンを指定

OC2020はテンプレートを指定することで app001はClient001,002だけで動かすコトができると思ったのですが、テンプレ指定ができませんでした、、。ちょっと残念な仕様です。

各バージョンもうすこしちゃんとみてみる

OC2020

ジョブ

実際にOC2020の画面でジョブ実行してみようとすると、
2020_jobmae

2020_job
OC2020だと、マシン指定はできるけどテンプレートを指定するプルダウンが存在しないですね。

トリガー

トリガーはこう。何らかマシンを指定するプルダウンすらなく、マシンのいずれかで動くという設定しかできませんでした。

2020_trigger

OC2021

ちなみにOC2021はこちら。しれっと改善されています。

ジョブ

全てのマシンが選べる
2021_job1

テンプレートも選択可能で、一つを選ぶと
2021_job2

「そのテンプレートを使ってるマシンのうちいずれか」という設定を選べたり、
2021_job3

そのテンプレートを使っていて、いま接続されているマシンを具体的に選んだりできます。
2021_job4

トリガー

トリガーはこう。全てのマシンが選べるのと、
2021_trigger1

テンプレートを指定するまで。具体的なマシンまでは選べず。
2021_trigger2

OC2020でも頑張ってみる

OC2020でもフォルダを分ければ、やりたいことはなんとか実現できます。
image2

フォルダ内のマシン群全体でしかラウンドロビンできないのであれば、それぞれにフォルダを用意すればよいわけですね。まあ、フォルダ構成を変える必要があって、うーんって感じです。

まとめ

  • OC2020について 「マシンテンプレートを共有することによって、複数PCでラウンドロビンできるようになりました」的な説明を聞きますが、フォルダ内のPCたちではラウンドロビンができますが、テンプレート単位のラウンドロビンではできません

    • ジョブ実行時は「すべてのマシンのうちいずれか、またはマシン直接指定」 スケジュール実行時は「すべてのマシンのうちいずれか」のみです。
    • したがってマシンテンプレートの機構はフォルダにPCを登録するときにいっぺんに登録できる便利な仕組み、くらいになっちゃってますね。
  • 一方でOC2021以降では、ジョブ、スケジュールとも「マシンテンプレート指定」が可能になっていました。 うん、こうあるべきだと思います。2

蛇足(OC2020からの改善点)

最後蛇足ですが、いままで何度もOC2020を導入してきて、運用上ココイマイチだなぁって思った部分があるのですが、それらがいろいろOC2021以降では改善されていたりします。ざっと書いてみると、、

  • 今回のジョブ・スケジュール指定時のマシン指定の不自由さの改善
  • アセットのリンク機能(別フォルダのアセットを自フォルダにリンクする機能3)
  • マシンテンプレートとユーザのマッピング機構4
  • テナントロールとフォルダロールを取り違えにくくなった
  • ユーザのグループ機能について、2020ではADのグループのみだったのが、2021からは任意のグループを作成できるようになった

などがあります。今後記事にしていこうと思います!

お疲れさまでしたー

関連リンク

自分がモダンフォルダ関連で書いてある記事を載せておきます

  1. 空いてるヤツどれかが動くという負荷分散できる機構って意味です

  2. OC2020時点では技術的になんか障壁があったんですかね

  3. ユーザごとにアセット値を持つヤツはダメで、グローバルなアセットだけだけど。この機能はOC2020でも絶対ほしかった、、、、

  4. マシンテンプレートの作成時(もしくはフォルダ紐付け時)にユーザも紐付けておくことで、UR実行時にそのテンプレを選んだら紐付けたユーザのみ選択可能になる機構。また、そのフォルダ内でアセットを作るとき「ユーザごとアセット」だけでなく 「ユーザ、マシンテンプレートごとアセット」をつくれるようになる。マシンキー接続しているPCたちは、かつてのようにロボットごとアセットが作れるぽい?(アセットはちゃんと調べてないがざっと見たところそんな機能だった)

5
3
0

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