【UiPath】ジョブの停止と強制終了の違い

概要

・Orchestratorにおける停止と強制終了は別物
・停止の場合は実行中のワークフローについては止まらない場合がある(重要)

停止とは

Orchestratorのガイドより、UiPathにおけるジョブの停止とは以下のように定義されています。

オートメーション プロジェクトは、[停止すべきか確認] アクティビティを検出するまで実行されます。この間、ジョブは [停止中] ステートになります。このアクティビティが検出されると、実行は停止され、ジョブの最終的なステートは [成功] になります。[停止すべきか確認] アクティビティが検出されなかった場合、ジョブの実行はプロジェクトの最後まで停止されません。この場合も、最終的なステートは [成功] になります。
Orchestrator - ジョブを管理する
The UiPath Documentation Portal - the home of all our valuable information. Find here everything you need to guide you in your automation journey in the UiPath ...

ここでポイントとなるのは「オートメーション プロジェクトは、[停止すべきか確認] アクティビティを検出するまで実行されます。」という部分です。
つまり停止をしたとしても実行中のワークフローは途中で終了されず、[停止すべきか確認]アクティビティまでは動き続けるということです。
裏を返すと[停止すべきか確認]アクティビティを設置していない実行中のワークフローには停止の効果がありません。
※処理開始前の実行待ちのワークフローに対しては試したところ、どうやら止まるようです。

強制終了とは

Orchestratorのガイドより、UiPathにおける強制終了とは以下のように定義されています。

オートメーション プロジェクトが強制終了され、[停止] とマークされ、[ジョブの詳細] ウィンドウに「ジョブはキャンセルされました」と表示されます。
Orchestrator - ジョブを管理する
The UiPath Documentation Portal - the home of all our valuable information. Find here everything you need to guide you in your automation journey in the UiPath ...

停止と違い、強制終了では状況によらず、即時終了します。

タイムトリガーでの注意事項

ここまでの情報で停止と強制終了が異なることを記載しましたが、これが最も影響が出ると考えられるのは、トリガーによる実行で一定時間経過による停止、強制終了です。

よくわからないまま[停止すべきか確認]アクティビティを設置していないワークフローに対して、一定時間経過したら「停止」するように設定してしまうと、実行中のジョブに全く効果がない状況になってしまいます。(一方で流れる前のジョブだけは止まってしまいます)

強制終了では状況に関係なく時間経過で強制的にジョブを停止できるので、これらをうまく使い分けて設定する必要があります。

停止が有効な場面として考えられるのは、処理が遅延しているときに、いきなり止めてしまうとまずい処理において、止めても問題ない場所に[停止すべきか確認]を設置することにより、処理を途中まで実行して中断するといった使い方が考えられます。

コメント

タイトルとURLをコピーしました