一覧の全件を繰り返し処理する設計(処理の単位・途中失敗・件数と終了条件)
Excel の全行や画面の一覧を1件ずつ処理するロボットで、処理の単位の決め方、途中の1件が失敗しても次へ進む作り、件数の数え方と終了条件をどう設計するかを解説します。
繰り返し処理で決めておくこと
RPA の業務の多くは、「一覧にある全件について、同じ操作を繰り返す」形をしています。架空の例として、入力用 Excel に並んだ200件の住所変更を、顧客管理システムに1件ずつ登録するロボットを考えます。
ループ自体は BizRobo! のループ用のステップで比較的簡単に作れますが、運用で困るのは「何件目で止まったのか分からない」「全部終わったのか途中で止まったのか分からない」といった場面です。作り始める前に、処理の単位・失敗時の動き・件数と終了条件の3点を決めておきます。
1件の処理単位を決める
まず「1件」の範囲をはっきりさせます。1件の処理は、同じ画面から始まり、同じ画面で終わるように組むのが基本です。こうしておくと、どの件の処理も同じ前提で始められ、途中で失敗したときも戻る場所が明確になります。
- 開始:顧客検索画面が表示されている
- 処理:顧客番号で検索し、変更画面を開き、新しい住所を入力して登録する
- 確認:完了メッセージを確認し、結果欄に「完了」を記録する
- 終了:顧客検索画面に戻る
途中で失敗しても次へ進む
200件のうち1件のデータに不備があっただけで残りが処理されないのは、多くの業務で困ります。1件の処理全体を Try ステップなどで包み、失敗したときは「結果欄にエラーを記録する」「検索画面に戻る」を行ってから次の件へ進む作りにします。
ただし、ログインが切れた、システムが停止したといった全件に影響する問題では、続けても同じエラーが並ぶだけです。エラーが連続で一定件数続いたら処理を止めて通知する、という歯止めをあわせて入れておくと安心です。
件数を数えて終了を確かめる
ループが終わったときに、件数が合っているかを確かめられるようにしておきます。入力の件数と、完了・エラー・対象外の件数を数え、最後に「入力件数 = 完了 + エラー + 対象外」になっているかを確認します。合わない場合は、どこかで件が飛ばされた可能性があります。件数のように枝をまたいで値を保つ必要があるものは、グローバル変数を使うのが一般的です。
- 0件のとき:エラーではなく「対象なし」として正常終了し、その旨を通知する
- 通常の件数:全件処理して件数を報告する
- 想定より極端に多いとき(例:普段の10倍):入力ファイルの誤りを疑い、処理前に止める
- 空白行:最初の空白行で終わりとみなすのか、空白行を飛ばして続けるのかを決めておく
よくある失敗
繰り返し処理の不具合は、少ない件数のテストでは表に出にくいものが多いです。
- エラーのあとに画面を元に戻しておらず、以降の件がすべて失敗する
- 結果欄への書き込みを最後にまとめて行う作りにしていて、途中で止まると全件の結果が残らない
- 件数のカウンターが枝の中でしか増えず、最後に正しい件数が取れない
- 大量件数で処理時間が延び、次のスケジュール実行と重なる
小さく試してから全件へ
テストは、1件だけ、数件(うち1件はエラーになるデータ)、普段の件数、最大の件数、という順に増やしていきます。途中で止めてから再実行し、処理済みの件が二重に登録されないことも確認します。再実行の仕組みについては、処理済みフラグの記事で詳しく解説しています。
※BizRobo! は RPA テクノロジーズ株式会社の製品です。本サイトは同社とは関係のない個人の解説サイトです。画面や機能の名称は、製品のバージョンによって異なる場合があります。