就業先では、RPAツールのBizRobo!を使用しています。BizRobo!開発で悩み、BizRobo!ナレッジベースで日々検索しています。
RPAは元々の仕組み上、エラーがでやすいです。そのため、エラーが出た時にどうやって検知するのか、つまりエラーハンドリングが重要だと考えています。
どういう時にエラー処理が起こりやすいのか、そして発生したエラーに対し、どうハンドリングするのかを就業先で学ぶ機会があったため、整理いたしました。
今回は、BizRobo!のエラーハンドリングについて共有いたします。
※時間が経過して変わってしまった箇所や間違っている箇所、不適切な表現があるかもしれませんが、その時は都度修正いたしますので、ご指摘いただけると幸いです。
エラーハンドリング1
以下は、私が作成したサンプルロボットです。
※BizRobo!バージョンは、10.3.0.7です。
同名ファイルが存在する場合は、一旦削除してからファイルコピーし、存在しない場合はそのままファイルコピーを行います。
ファイルコピーステップは、同名ファイルが存在する場合、エラーになります。そのエラーを予測し、条件分岐で処理を分けようと試みました。これも一種のエラーハンドリングとみなせると考えています。
エラーハンドリング1は、判定・エラー時の代替手段を個々に準備するような場合に利用し易いです。
エラーハンドリング2
以下は、私が作成したサンプルロボットです。
※BizRobo!バージョンは、10.3.0.7です。
上記は各ステップでエラーが発生した場合、「エラー処理」のトライステップで、下の分岐に流れるようにしております。各ステップのエラー処理タブ内で、「エラー処理」のトライステップを選択することで実現できます。
エラーハンドリング2では、ロボット全体のエラー処理を集約するような場合に適しています。
エラーハンドリング3
以下は、私が作成したサンプルロボットです。
※BizRobo!バージョンは、10.3.0.7です。
エラーハンドリング2で示したサンプルロボットは、実際の現場ではあまりないでしょう。
実際は、エラーハンドリング3のように複数のブランチが複雑に組み込まれているロボットがほとんどだと考えています。
エラーハンドリング2を各ブランチや各グループに配置することもありだと思いますが、エラー検知メールをその都度設定しなければならないことがネックになります。
上記サンプルの場合、各ブランチでエラーメッセージを変数に格納し、一番最後のブランチで格納した変数をエラーログ出力ステップとエラーメール送信ステップに格納するようにしています。
こういうエラーハンドリングを行うことで、メンテナンスしやすいロボットにしています。
エラーハンドリング4

※BizRobo!バージョンは、10.3.0.7です。
エラーハンドリングのトライステップを組み込まないという選択肢もあります。API例外のチェックを外し、エラーとしてログ記録だけにチェックをつけることで、ロボット処理を止めず、エラー内容をMC上に表示させることができます。
上記設定を上手く行うこと、MCが使えること、MC空のメール通知が届くなどの前提条件があれば、これでもエラーハンドリングを行うことが可能です。
エラーハンドリングを組み込むうえで参考になるURL
BizRobo!のナレッジベースで参考になるURLを記載します。
別のエラー処理方法
エラーが発生した場合の処理や動作を変更できますか。
MCでのロボット実行時に、エラーの検知をコントロールする方法
ロボットの実行方法によるAPI例外発生時の挙動の違い
最後に
BizRobo!のエラーハンドリング処理について解説いたしました。
プログラミングもRPA開発もエラーハンドリングは重要なフローです。エラーハンドリングが正しく設定されていない場合、後々大規模な障害を引き起こす可能性があるからです。
就業先でBizRobo!のエラーハンドリングに関する経験を蓄積したため、吸収したエラーハンドリングの知見を整理することが大事だと思い、記事にいたしました。
今回の記事が、RPA開発で悩んでいる人の為になれば幸いです。