- リリース ノート
- 基本情報
- UiPath Assistant
- インストールとアップグレード
- ロボットの種類
- Robot のコンポーネント
- ライセンス
- Robot を Orchestrator に接続する
- プロセスとアクティビティ
- ログ
- Robot JavaScript SDK
- 特定のシナリオ
- トラブルシューティング
プロセスを停止する
プロセスは、ソフト停止コマンドまたは強制終了コマンドを使用して停止できます。
ソフト停止コマンドは、プロセスのステートを「停止すべきか確認」としてマークします。このステートは、[停止すべきか確認] アクティビティを使用して、実行中のワークフローからクエリできます。ワークフローは、このステートを明示的に処理して終了します。「停止すべきか確認」ステートを処理せずにワークフローが自動的に停止することはありません。ソフト停止を活用するシナリオについては、REFramework をご覧ください。
停止コマンドは無人オートメーション用に設計されており、Orchestrator でのみ使用できます。Orchestrator でのソフト停止コマンドの名称は [停止] です。
強制終了コマンドは、まずキャンセル要求をワークフローに送信します。キャンセル要求のワークフローは「停止すべきか確認」とは異なります。キャンセルは、ワークフローによって自動的に処理されるワークフロー信号です。この信号により、アクティビティは伝播的にキャンセルされ、ワークフローの [Finally] ブロックのクリーンアップ ステップが実行されます。キャンセル信号によって 3 秒以内にワークフローが停止しない場合は、実行中のアクティビティを強制的に停止することによりジョブは強制終了されます。
強制終了コマンドは有人オートメーション用に設計されており、Orchestrator ならびに Assistant、Studio、RobotJS などのデスクトップ クライアントおよび API で使用できます。デスクトップ クライアントでの強制終了コマンドの名称は [停止] です。
REFramework ではソフト停止コマンドが活用されています。
BusinessError
と SystemError
の値が null
のままとなり、全体的なプロセスのステータスは成功とみなされます。これは意図的な挙動です。
Try-Catch シナリオ
Try-Catch ワークフローの実行中にプロセスが停止すると、実際には完了しなかった場合でもトランザクション ステータスに「成功」と表示される場合があります。
プロセスをキャンセルする
ロボットがキャンセル コマンドを受信した際に実行が [Try] または [Catches] ブロックにある場合は、エラーの有無をチェックする [Finally] ブロックにスキップします。エラーが見つからない場合、エラー イベントがない (空である) ことから [Finally] ブロックはプロセスの実行が成功したとみなします。
プロセスを強制終了する
ロボットが強制終了コマンドを受信した際に実行が [Try] または [Catches] ブロックにある場合は、まずプロセスをキャンセルし、[Finally] ブロックにスキップしようとします。[Finally] ブロック内のロジックがキャンセル コマンドを受信してから 3 秒以内に完了しない場合、実行そのものが強制終了され、ログにはプロセス全体の実行が成功したと記録されます。これは、[Catches] ブロックがスキップされエラーが記録されなかったためです。
誤検知を回避する
- ビジネス ロジックが完了した後に、[Try] ブロック内でのみプロセスのステータスが
Successful
となるよう設定します。 - エラー処理ロジックが完了した後に、[Catces] ブロック内でのみプロセスのステータスが
Failed
となるよう設定します。 - [Finally] ブロックはプロセスの実行に成功したか否かにかかわらず実行されるため、クリーンアップ ロジックのみを含めるようにします。