見出し画像

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 内で扱う

いいなと思ったら応援しよう!

Parusの寺小屋 技術メモや学習の整理として書いています。 もし内容が役に立ったり、続きを読みたいと思っていただけたら、 応援として受け取らせてもらえたら嬉しいです。