UiPath|アクティビティ|制御・例外・通知|Retry Scope|失敗時に条件付きで再試行する
基本構文
(実務テンプレ)
Retry Scope
NumberOfRetries = 3
RetryInterval = "00:00:05"
Action:
{再試行したい処理}
Condition:
{成功判定アクティビティ}(各要素の意味)
・{対象文字列}:判定・抽出・置換したい文字列
・Retry Scope:処理が失敗した、または成功条件を満たさない間、指定回数まで再試行する
・Action:毎回やり直す処理本体
・Condition:成功したかどうかを判定する処理
・NumberOfRetries:最大再試行回数
・RetryInterval:各試行の間隔
(戻り値の型・性質)
・戻り値なし
・条件成立で終了する
・条件未成立または例外継続で、回数上限まで再試行する
主な設定項目は以下。
・プロパティ:Action
○説明:再実行対象の処理本体
○型・入力:アクティビティ群
○例:Click / Type Into など
○注意:失敗しても再実行してよい処理に限る
・プロパティ:Condition
○説明:成功判定処理
○型・入力:アクティビティ
○例:Check App State / Element Exists
○注意:Action 完了ではなく成功状態を見に行く
・プロパティ:Number Of Retries
○説明:最大再試行回数
○型・入力:数値
○例:3
○注意:回数を増やしすぎると異常検知が遅れる
・プロパティ:Retry Interval
○説明:再試行間隔
○型・入力:時間
○例:00:00:05
○注意:短すぎると相手側復旧前に空振りしやすい
・プロパティ:Continue On Error
○説明:エラーを飲み込んで続行するか
○型・入力:Boolean
○例:False
○注意:True だと Try Catch で捕まらない
・プロパティ:Private
○説明:ログに値を残さない
○型・入力:Boolean
○例:True/False
○注意:入力値に機微情報があるときに使う
サンプルコード
サンプル①:ボタン押下後に完了メッセージが出るまで再試行する
役割:一時的な画面不安定を吸収する
理由:Web/UI 操作は単発失敗があり得るため
注意:Condition は「完了状態」を見る
Retry Scope
NumberOfRetries = 3
RetryInterval = "00:00:05"
Action:
Click "更新"
Condition:
Check App State "完了しました"サンプル②:ログインボタン押下後にホーム画面表示を確認する
役割:ログイン処理の揺れを吸収する
理由:通信遅延や描画遅延で単発失敗しやすい
注意:資格情報入力そのものを何度も打ち直す設計は慎重に行う
Retry Scope
NumberOfRetries = 2
RetryInterval = "00:00:10"
Action:
Click "ログイン"
Condition:
Check App State "ホーム"備考
・Retry Scope は「Action をやり直す」と「Condition で成功判定する」がセット
・公式例でも、Condition 側に Check App State や Element Exists を置く使い方が示されている
・Continue On Error=True にすると、Try Catch 内でも例外が捕まらない
・Delay と同様に、Orchestration Process の Main ワークフロー直下では非推奨で、必要時は No Persist Scope 内で扱う
いいなと思ったら応援しよう!
技術メモや学習の整理として書いています。
もし内容が役に立ったり、続きを読みたいと思っていただけたら、
応援として受け取らせてもらえたら嬉しいです。