概要
毎回成功するわけではない処理は、もし失敗しても成功するまで繰り返すことができればワークフロー自体が失敗する確率を下げることができます。その方法について解説します。
失敗する場合がある処理の例
・ネットワーク通信が発生する処理(例:アセットを取得)
・操作対象のプロセスの状態によって稀に失敗する処理(例:Outlook、Excel、Web操作)
1つのアクティビティで完結する処理の場合
単にリトライスコープ内にアクティビティを配置します。リトライの回数を増やすことで失敗する確率を下げることができます。
トランザクション処理(複数のアクティビティ)の場合
・失敗時のリカバリに複数のアクティビティが必要な場合
・複数の処理においてどこで失敗しても最初からやり直す場合
リトライスコープ内にトライキャッチを配置し、Try内に複数の処理を配置します。
また、Catch内でエラー発生時のリカバリ処理を追加し最後に「Rethrow」を配置します。
ポイント
・Try内は「ワークフローファイルを呼び出し(InvokeWoprkflowFile)」のみを配置することをお勧めします
(複数の処理を入れてしまうとエラーの種類によってCatchされない場合があるため)
・「ワークフローファイルを呼び出し」は「分離」にチェックを入れ処理に十分なだけのタイムアウト時間を設定します
(処理がフリーズしたと判断し処理を継続するため。プロセスが分離されていればプロセスのフリーズ時でも継続可能です。)
環境
Studio 2023.4.0