Robot
2022.10
バナーの背景画像
Robot ガイド
最終更新日 2024年4月3日

プロセスを停止する

プロセスは、ソフト停止コマンドまたは強制終了コマンドを使用して停止できます。

ソフト停止コマンド

ソフト停止コマンドは、プロセスのステートを「停止すべきか確認」としてマークします。このステートは、[停止すべきか確認] アクティビティを使用して、実行中のワークフローからクエリできます。ワークフローは、このステートを明示的に処理して終了します。「停止すべきか確認」ステートを処理せずにワークフローが自動的に停止することはありません。ソフト停止を活用するシナリオについては、REFramework をご覧ください。

停止コマンドは無人オートメーション用に設計されており、Orchestrator でのみ使用できます。Orchestrator でのソフト停止コマンドの名称は [停止] です。

強制終了コマンド

強制終了コマンドは、まずキャンセル要求をワークフローに送信します。キャンセル要求のワークフローは「停止すべきか確認」とは異なります。キャンセルは、ワークフローによって自動的に処理されるワークフロー信号です。この信号により、アクティビティは伝播的にキャンセルされ、ワークフローの [Finally] ブロックのクリーンアップ ステップが実行されます。キャンセル信号によって 3 秒以内にワークフローが停止しない場合は、実行中のアクティビティを強制的に停止することによりジョブは強制終了されます。

強制終了コマンドは有人オートメーション用に設計されており、Orchestrator ならびに AssistantStudioRobotJS などのデスクトップ クライアントおよび API で使用できます。デスクトップ クライアントでの強制終了コマンドの名称は [停止] です。

REFramework プロセスのシナリオ

REFramework ではソフト停止コマンドが活用されています。

プロセスが停止されると、エラー ロジックを含むブロックがスキップされて最終ブロックが実行されます。これにより、BusinessErrorSystemError の値が null のままとなり、全体的なプロセスのステータスは成功とみなされます。これは意図的な挙動です。

Try-Catch シナリオ

Try-Catch ワークフローの実行中にプロセスが停止すると、実際には完了しなかった場合でもトランザクション ステータスに「成功」と表示される場合があります。

プロセスをキャンセルする

ロボットキャンセル コマンドを受信した際に実行が [Try] または [Catches] ブロックにある場合は、エラーの有無をチェックする [Finally] ブロックにスキップします。エラーが見つからない場合、エラー イベントがない (空である) ことから [Finally] ブロックはプロセスの実行が成功したとみなします。

プロセスを強制終了する

ロボット強制終了コマンドを受信した際に実行が [Try] または [Catches] ブロックにある場合は、まずプロセスをキャンセルし、[Finally] ブロックにスキップしようとします。[Finally] ブロック内のロジックがキャンセル コマンドを受信してから 3 秒以内に完了しない場合、実行そのものが強制終了され、ログにはプロセス全体の実行が成功したと記録されます。これは、[Catches] ブロックがスキップされエラーが記録されなかったためです。

誤検知を回避する
  • ビジネス ロジックが完了した後に、[Try] ブロック内でのみプロセスのステータスが Successful となるよう設定します。
  • エラー処理ロジックが完了した後に、[Catces] ブロック内でのみプロセスのステータスが Failed となるよう設定します。
  • [Finally] ブロックはプロセスの実行に成功したか否かにかかわらず実行されるため、クリーンアップ ロジックのみを含めるようにします。

エラー ロジックが実行されたことを確認する

エラー ロジックを含むブロックがスキップされた場合、BusinessErrorSystemError の値は null のままとなり、記録されたエラーがないことから全体的なプロセスのステータスは successful とみなされます。

Was this page helpful?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
UiPath ロゴ (白)
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.