★ページの説明・概要
JobAutoで、エラーになった処理を再試行(リトライ)する回数に上限を設定する方法を説明します。画面表示の遅れなど、一時的な原因で処理に失敗した場合は、同じアクションを再実行すると成功することがあります。
しかし、成功するまで無条件にやり直すフローでは、エラーの原因が解消しないと処理が終わらなくなります。そこで、このページでは「変数でリトライ回数を管理する方法」と「アクションの繰り返しで上限を設定する方法」を比較します。
例ではWeb画面の「ID入力」アクションを使用します。再試行する位置・回数・成功時の抜け方・上限に達したときの終了状態を確認しながら設定してください。
1.回数上限のないリトライは終了しなくなる場合がある
ブックマークと「ブックマークへジャンプ」を組み合わせると、エラーになったアクションへ戻って処理をやり直せます。たとえば「ID入力」に失敗したとき、条件分岐の下側のフローからブックマーク「ID入力」へ戻る構成です。
- 「ID入力」でエラーが発生した場合、設定した条件分岐の下側のフローへ移動する。
- 「ブックマークへジャンプ」でブックマーク「ID入力」へ戻る。
- 「ID入力」を再実行する。成功した場合は「ログインをクリック」へ進むためのジャンプを実行する。
このままでは「ID入力」が失敗し続ける限り再試行が止まりません。画面の読み込みを待つ場合は一時停止を組み合わせるとともに、再試行回数の上限と、上限到達後の処理を設定します。
2.方法① 変数と条件分岐でリトライ回数を管理する
リトライ回数を変数へ保存する方法です。失敗するたびに回数を1加算し、上限を超えない範囲だけ再実行します。回数の判定や終了の条件を、業務に合わせて細かく決めたい場合に利用できます。
2-1.リトライ回数用の変数を初期化する
「変数の値を加工」などを使用して、リトライ回数用の変数を 0 にします。処理対象が変わるたびに新しい回数として数える場合は、その対象の処理を始める位置で初期化します。
2-2.エラーが起きたら回数を1加算する
「ID入力」でエラーになった場合、アクションの「エラー発生時の対応」を利用して条件分岐の別フローへ進み、「変数の値を加工」でリトライ回数に 1 を加算します。エラー時に移動する条件分岐が正しく設定されているか確認してください。
2-3.上限を判定し、再実行か終了かを切り替える
「値の判定」で、回数が決めた上限に達しているかを確認します。再試行可能な場合だけブックマークへ戻り、上限に達した場合はリトライを終了するようにします。元の画像では、変数の加算・ブックマークへのジャンプ・値の判定・ロボット終了を組み合わせています。実際のフローでは判定の位置と分岐先を確認してください。
- 開始時にリトライ回数を
0にする。 - 「ID入力」の実行に失敗したら、エラー用フローへ進む。
- リトライ回数を
1加算する。 - 「値の判定」で再試行可能か確認する。
- 再試行できる場合は必要な時間だけ待機し、「ID入力」の直前へ戻る。
- 上限に達した場合は、成功していないことを記録してロボットの処理を終了する。
判定に 上限を超えた を使うか、上限に達した を使うかで実際の試行回数が変わります。上限が3の場合は、1回目・2回目・3回目の失敗でどう分岐するか、テスト実行で確認してください。
3.方法② 「アクションの繰り返し」で上限を設定する【おすすめ】
回数管理のために変数の加算や条件判定を何度も配置したくない場合は、「アクションの繰り返し」を使う方法があります。繰り返し回数を設定できるため、再試行回数の制限を比較的簡単に構成できます。
3-1.繰り返す範囲と回数を設定する
「アクションの繰り返し」で、対象の「ID入力」アクションを繰り返すフローを作成し、繰り返し回数を設定します。実際に何回実行されるかは、最初の試行を繰り返しの中に含めるか、繰り返しの外で1回実行するかによって異なります。
3-2.エラー時は「次の繰り返しへ移動」を使用する
「ID入力」のアクション設定画面で、エラー時の処理を「次の繰り返しへ移動」にします。エラーとなった試行の後続アクションをスキップし、次の繰り返しへ進むための設定です。この指定は繰り返し処理の中で使用します。
3-3.成功したらリトライの外へ移動する
「ID入力」が正常に実行できた場合は、以降の繰り返しが不要です。元の例では「ブックマークへジャンプ」を使用して「ログインをクリック」へ進むフローに移動しています。成功後にID入力をもう一度行わず、次の業務処理へ進めることを確認してください。
3-4.最後まで成功しなかった場合の処理も設定する
設定した繰り返し回数をすべて使い切った場合に、値の入力に成功していないのに後続のログイン処理へ進むことがないようにします。必要に応じて成功状態を示す変数などを利用し、未成功の場合はログ出力や異常終了へ分岐するようにしてください。
- 「アクションの繰り返し」に回数を設定する。
- リトライ対象の「ID入力」を繰り返しの範囲に配置する。
- 「ID入力」のエラー時の処理を「次の繰り返しへ移動」に設定する。
- 必要に応じて再試行前の一時停止を設定する。
- 成功時にはブックマークへのジャンプなどで繰り返しを抜ける。
- 最後まで成功しない場合は、ログ出力・異常終了などにより失敗を明確にする。
4.2つの方法の比較
| 方法 | 回数の管理 | 向いている場面 |
|---|---|---|
| 変数と条件分岐 | エラーのたびに変数へ1を加算し、値の判定で上限を管理 | 再試行条件や回数の扱いを細かく設定したい場合 |
| アクションの繰り返し | 繰り返し回数を設定し、エラー時は次の繰り返しへ進む | 少ない設定で回数上限を設けたい場合 |
どちらを選んでも、成功したときに再試行から抜けることと、最後まで成功しなかったときに失敗を明確にすることが必要です。
5.「リトライ回数」と「実行回数」の違いを確認する
リトライとは、最初の処理に失敗したあとに行う再試行を指します。たとえば、初回の実行に加えて3回リトライする設計であれば、対象アクションの最大実行回数は4回です。
| 設定の考え方 | 対象アクションを実行する最大回数 |
|---|---|
| 初回を含めて最大3回実行 | 3回 |
| 初回のあと、最大3回リトライ | 4回 |
JobAutoで「アクションの繰り返し」に設定した回数が初回を含むのか、初回を別アクションとして数えるのかは、作成したフローの構造によって異なります。実行回数をログやステップ実行で数えてから本番運用してください。
6.リトライの上限に達したときの終了処理
何回試しても成功しない場合は、それ以上繰り返さず、失敗を記録して処理を終了します。「ロボット終了」アクションを使う場合は、業務が未完了なのに正常終了の扱いにならないよう、終了ステータスを確認してください。
ログには、処理対象、発生したエラー、実行回数など原因調査に必要な情報を残します。ただし、ログにパスワードや秘密情報を出力しないよう注意してください。
7.リトライ処理を作成するときの注意点
7-1.待機時間なしの連続実行を避ける
一時的な画面表示の遅延や接続待ちを想定する場合は、必要に応じて「一時停止」を組み合わせます。待機せずに短時間で何度も試しても、画面が準備できないまま失敗を繰り返すことがあります。
7-2.登録やメール送信などの重複を防ぐ
データ登録・メール送信・決済・ファイル削除などの処理は、エラーが表示されても外部システム側で処理が完了していることがあります。成功済みかを確認せずに再実行すると、二重登録や二重送信になる可能性があります。実行状態を確認できる仕組みを用意し、再試行してよいアクションだけを対象にしてください。
7-3.回数の初期化と終了条件を確認する
変数で回数を管理する場合は初期化位置を確認します。「アクションの繰り返し」を繰り返しデバッグしたあとに対象がなくなった場合は、ロボデザインの初期化を行ってからテストすることも検討してください。成功・上限到達・想定外のエラーの各場合に、意図した処理へ進むかを確認します。
8.設定が想定どおり動かない場合の確認順序
- 「ID入力」のエラー時の動作が、意図した分岐または「次の繰り返しへ移動」になっているか確認する。
- ブックマーク名とジャンプ先の位置を確認する。
- 変数方式では、回数が
0から始まり、失敗のたびに1増えるか確認する。 - 繰り返し方式では、繰り返し回数と繰り返し対象の範囲を確認する。
- 成功時に繰り返しから抜け、ログインなどの次の処理へ進むか確認する。
- 上限到達時に後続処理が誤って実行されず、失敗として記録・終了できるか確認する。
- エラーが一時的な原因なのか、設定・認証・権限など繰り返しても解消しない原因なのか確認する。
関連するリトライ・条件分岐・ブックマークのマニュアル
- JobAutoで条件分岐とブックマークを使ってリトライする方法:リトライの基本的なフローを確認する。
- JobAutoでブックマークへジャンプする方法:再試行する位置へ処理を戻す。
- JobAutoで条件分岐を追加する方法:分岐フローを作成する。
- JobAutoでエラー発生時の対応を設定する方法:エラー時の移動先を設定する。
- JobAutoの繰り返し処理マニュアル:繰り返しアクションの関連操作。
- JobAuto 0.10.14リリースノート:ロボット終了アクションの終了ステータスに関する変更。
