日頃RPAのロボットを利用していて、「また止まった」とか、「最初からやり直しか~!」ということはないでしょうか。
そもそも止まってほしくない。というのはあるのですが、RPAのロボットが扱う対象のシステムの動作が不安定だったりして、
毎回同じように動かない。みたいな事があると、いくら作りこんでも月に1回は止まってしまう。などあるかもしれません。
今回は、そういった場合に取れる対策の一つして、「エラーが発生した際にはロボットを再実行し、作業途中の箇所から処理を継続させる。」というようなサンプルBotを作ってみました。
サンプルBotの概要
氏名と電話番号が入ったリストを読み込み、市外局番から都道府県を調べて出力用シートに記入する。
使用するファイル
- デモ用ダミーデータ.xlsx - 氏名や電話番号等の個人情報が記入されたExcelシート
- 市外局番一覧.xlsx - 市外局番とそれに対応する都道府県+αが入っているExcelシート
- Output.xlsx - 出力用シート。デモ用ダミーデータを丸々コピーしたファイル。
ダウンロード用URL
Google Driveにアップロードしておきました。
上記ファイルとサンプルBot(zip形式)が含まれます。
サンプルBotはAutomation 360 v.23 (Build 11513)で作られています。
https://drive.google.com/file/d/1_zdFlv-6jzuAIjs7REKlhBiL0e2e4OhF/view?usp=sharing
Botの処理の流れ
- デモ用ダミーデータ.xlsxをコピーし、出力用シートを作成する。
- 市外局番一覧を開き、データテーブル変数に格納する
- 出力用シートを開き、都道府県を記入する列の先頭行にラベル(タイトル)を記入する。
- 出力用シートを再度開き、1行づつ読み込む(ループ処理)
- 都道府県の欄が未記入の場合のみ以下を実行
- 電話番号から市外局番を抜き出す
- 抜き出した市外局番を元に、データテーブルに格納しておいた「市外局番一覧」をサーチして都道府県を調べる。
- 都道府県を出力用シートに記入する。
Botのスクリーンショット
Botの自己復帰(再実行)ができるための条件
今回作ったBotは、作業を行った結果を一行づつ記録していくような仕組みになっています。
そのため、出力用シートの該当行にすでにデータがあるかどうかをチェックし、すでに記入済みの場合は処理をスキップする。としておくと、
途中で実行が停止してしまった場合にも、再度実行するだけで途中から記入してくれるような動きをします。
実際のケースではさらに、Botが動くための環境をリセットするような処理もBotの処理の先頭にいれておく必要となることが多いかと思います。
また、今回のように処理結果がファイルに残らないような場合は、「ファイルに記録」アクションなどでログファイルを作り、どこまで作業したか記録するようにしておき、実行時にまずそちらを読み取り、どこまで作業が完了しているかロボットが判断できるようにしておきます。
その他補足、注意事項
テスト用データの作成に使用したサイト
市外局番一覧
総務省|電気通信番号制度|市外局番の一覧
ダミーの個人情報
個人情報テストデータジェネレーター