この記事は、UiPath Advent Calendar (produced with UiPath Friends) の 8日目の記事です。
2019.10 から、UiPath のプロジェクトテンプレートに「バックグラウンド プロセス」というプロジェクトテンプレートが存在します。あまりこれを活用している事例を耳にしないので、記事にしてみました。
バックグラウンドプロセスとは
公式ドキュメントによると、「1つのフォアグラウンド プロセスとともに、同じ Robot で並行して実行できるプロセス」とあります。いまいち分からないですね。
フォアグラウンドプロセス
上記の説明の中に「フォアグラウンド」とあります。これは「最前面」「表面」「前景」という意味を持つ英単語ですが、ことIT用語としては「アクティブな状態である操作対象」と考えてください。
UiPath の世界では、フォアグラウンドプロセスは「画面操作が含まれるプロセス」と表現することが出来ます。多くの方が自動化で作成するプロセスのことですね。
そしてバックグラウンドプロセスとは、この「フォアグラウンド プロセス」の対義語です。すなわち「画面操作が含まれないプロセス」と捉えてください。ここでのポイントは、「UiPath による画面の操作がないこと」です。
フォアグラウンドプロセスの制約
さて、数多ある業務(=プロセス)を同時に作業できれば、作業効率としては素晴らしいですよね。
ところが Windows には、ひとつのログオンセッションにおいて複数のUI操作を同時に出来るような仕組みはありません。したがって画面操作を含む処理というのは、同時に実行することが出来ません。
これがために、UiPath においても一度に実行できるプロセスは1つのみとなっています。
制約からの解放
上記の説明を改めて確認しましょう。「画面操作を含む処理」は同時に実行できません。逆を返せば、画面操作を含まない処理は同時に実行できる、ということになります。
今まで UiPath では、プロセスが画面操作を含むか否かを判別していませんでしたので、そのプロセスが同時実行できるもの(画面操作を含まないもの)であっても、同時に実行することは出来ませんでした。
これが 2019.10 以降では、画面操作を含まないものであることを明示することが出来るようになり、ついては同時実行ができるようになったのです。
バックグラウンドプロセスのメリット
バックグラウンドプロセスのメリットを、私は以下のように捉えています。
複数のバックグラウンドプロセスを同時に実行できる
これまでのご説明でご理解いただいているかと思いますが、バックグラウンドプロセスは複数のプロセスを同時に実行させることが出来ます。
また説明にもあるように、バックグラウンドプロセスが動いている状態であっても、フォアグラウンドプロセスは実行することが可能です。
常駐タスクとして運用することが可能
画面操作が含まれず、ひとの作業を阻害しない状態で実行ができます。したがって、一定条件でループ処理を組んで、継続的に実行させることが出来ます。
まとめ
「画面操作を含まない処理」というのは、さほど多くないかもしれません。しかしメリットを活かすことで実現できることはたくさんあると思います。ぜひアイデアを出して、実際に試してみてください。