見出し画像

バックグラウンドプロセスとキューとURと!

この記事はUiPathブログ発信チャレンジ2022サマーの19日目の記事です。
昨日は@shuy_ooooさんの【UiPath】On-Prem Orchestratorの運用設計を考えてみる(メンテナンス編)でした。明日は、ハタケ(@RPA_AI_it)さんです。

今日は、私が苦労したバックグラウンドプロセスからUR実行までを私の覚書としても残したいと思い書いています。

1.なぜバックグラウンドプロセスを使おうと思ったのか。バックグラウンドプロセスで何をしたかったのか。

URをスケジュールトリガーではなく「キュートリガー」で実行させたかった😁

2.では、具体的にどうすればいいのか、イメージしてみた🤔🤔🤔

ーファイル変更トリガーを使おう!ー
・「第1トリガー:フォルダにファイルが保存されたら」
      →「キューにデータ登録する」
 これらはバックグラウンドプロセスでファイル変更トリガーを起動ででき
 そう!

ーOrchestratorのキュートリガーを使おう!ー
 ・「第2トリガー:キューにデータが保存されたら」
      →「URを実行する」
 これらはOrchestratorのキュートリガーで行けそう!

3.バックグラウンドプロセスでファイル監視トリガーとキューへ登録を仕込んでみた!

 ・バックグラウンドプロセスのテンプレート
  
→Studioの「スタート」>「テンプレートから新規作成」の「バックグラウンドプロセス」から利用できる😍

 ・ファイル変更トリガーのアクティビティはどこにあるのか?!
  →「ファイル変更トリガー(UiPath.Core.Activities.FileChangeTriggerV3)」
ファイル変更トリガー (File Change Trigger) (uipath.com)
注意!V3は、トリガースコープ内でしか使えない!😯

よく見えると、トリガースコープはトリガー(ファイル変更トリガーなのか、Outlookメールトリガーなのか)が登録されると自動的にアクションを判断してくれている!😘

 ・キューアイテムを追加
  →
アクションで早速「キューアイテムを追加」をやってみる。
①アイテム情報(コレクション)にキュー内のデータ登録用の名前と値を登録
②登録したいキューの名前(先にOrchestratorで作成しておく)
※Orchestratorのモダンフォルダでフォルダが違っていても「フォルダパス」をしてすれば隣のフォルダの「キュー」へも登録できる(同じフォルダ内ならそのまま空白でOK)!


    ・アクティビティを使わなくてもできるのか→できる!
  できる!!!ので、また、別の記事で!

4.ところでバックグラウンドプロセスとは🤨

 ・さて、バックグラウンドプロセスを実行するのは、どのロボ(AttendedRobot?UnattendedRobot?) で実行するのか?😥
  →AttendedRobotのアシスタントで普通に実行する!

・バックグラウンドプロセスを作成する際の注意点は何か
➀プロジェクト設定→「バックグラウンドで開始」を「はい」へ

UI操作を行うことができません。
 
操作の例でいうと、マウスのクリック、文字入力、画面からのテキスト
取得、キーイベント捕捉、ブラウザやウインドウ操作といった事項ができない。
③Orchestratorでは止められない。

 UiPath Assistantで開始、UiPath Assistantで停止
バックグラウンドプロセスは、他のプロセスと同時実行できます!
バックグラウンド プロセス (uipath.com)

エラーで止まってしまうことはないか😥
バックグラウンドプロセス内でExcel等読み込み時にはTryCatchを使用で回避

5.キューにデータを登録できた、じゃ!使ってみよう!

 ・Orchestratorがキューを見に行く感覚はどのくらいか(すぐ動くのか?)
  →Orchestratorでは未処理のアイテムがないかのチェックがデフォルト
   で30分毎にキューを確認している(トリガーについて (uipath.com))
※変更は可能:OrchestratorのConfigでの設定変更で可能!
OrchestratorのConfig(C:\Program Files (x86)\UiPath\Orchestrator\UiPath.Orchestrator.dll.configまたはWeb.config)での設定が必要。Queue.ProcessActivationScheduleを0~59で設定可能なの(デフォルトは30分)

 ・どうしたらUnattendedRobotが実行できるのか?
  →Orchestratorの下記を満たすフォルダでトリガーでキュートリガーを設定する必要がある。
 ➀UnattendedRobotのプロセスが登録されている
 ②キューが登録されている

 ・エラーで止まってしまうことを避けたい!
  →UnattendedRobotで実行のWFにREFrameworkを利用。日本語版が
出ているので
これを使用!
ビジネスエラー、アプリケーションエラーなど、ReFrameworkには、例外発生時の処理やログの出力などが初めから入っているので、エラーが発生した際にログを見ることによってどこで失敗したかすぐに分るので助かる。
また、ReFrameworkの処理は、デフォルトではOrchestratorのキューを使用する前提になっている。お陰で、キューやアセット等もConfigファイルの登録でサクッとできるので管理もやり易かった。

6.作ってみた感想・感動

キュートリガーをとにかく使ってみたかったので、使えて、そして、連携して動くのが見れて、とても嬉しかったです。
難しかったのは、バックグラウンドプロセスをどこで動かして、登録したキューから、キュートリガーでUnatendedRobotの実行につなげるというのが、じゃあ、実際にどうすればいいのかが、なかなか理解できなかったということです。AtendedとUnatendedの登録フォルダを分けることになった際は、キューを別のフォルダに登録するというのがこれまた理解できるまで時間がかかりました。🤣
また、バックグラウンドプロセスの「ファイル監視トリガー」で頻繁にファイル監視ができない事象が発生しています。なぞです。😤
UiPath Assistantで停止と開始をするとまた監視できるようになるので、それでなんとかやり過ごしていましたが、現在は、別途記事の「ファイル変更トリガーのアクティビティを使わないファイル監視」では事象が発生していないのでそちらをライブラリ化して使っています。

次回はOutlookメールトリガーに挑戦してみたいと思っています。

この記事が気に入ったらサポートをしてみませんか?