RPAでの基本的なエラー対応手順

業務にかかる時間を短縮するためにRPAを導入したものの、ロボットにエラーが発生した際に解決まで時間が掛かってしまい、思ったような業務効率の改善が実感できない。
そして、エラー対応に時間が取られてしまい、日頃の業務量の肥大化にお悩みの開発者の方もいらっしゃるのではないでしょうか。
本記事では、業務の効率化に役立てることのできる、基本的なエラーに使用できる機能や事例のご紹介をさせていただきます。

エラー原因を素早く特定できることの重要性

エラーの早期解決には、素早い原因特定が求められます。

エラーを早期解決するためには、エラーの検知から、情報の共有、状況調査、改修対応と、素早く次のフェーズへと進んでいく必要があります。

ここで言う「エラー原因の素早い特定」とは、必要な情報が正確に掴めており、推測(かもしれない)が存在しないということです。
正確でない情報は新たなエラー原因になる危険があり、本来掛かる時間に上乗せで時間が掛かる可能性が生まれます。

また、影響範囲がロボットをまたぐ場合、その範囲の影響下にあるロボット全ての確認に時間を取られ、結果的に全てのスケジュールを圧迫する懸念もあります。
初動から間違った方向へ進まないために、情報を正しく取得することが重要です。

「エラー原因の素早い特定」が出来ると、その後の改修や、改修に必要なデータがあった場合の連携などにスムーズに繋げられますので、遅延の総時間が削減できます。
一見遠回りに見えますが、正確に物事を把握することが、早さを担保する最も重要な要素になります。

基本のエラー対応手順

エラーについての情報は様々な場所から取得できます

エラー箇所の特定

まずは「どこで」、「どんな」エラーが発生したのかを掴まなければいけません。
とにかく最初に把握しなければいけないのは以下の3つです。

  1. エラーが発生したロボット
  2. エラー発生行
  3. エラーメッセージ

下記のいくつかから、上記を把握し、正しくエラー箇所を特定するために必要な情報をピックアップしましょう。

  1. 異常終了メール

異常終了メールにエラー行・エラーメッセージを記載するようにしたり、エラー発生時のキャプチャを添付している場合はまずそれを確認し、何を処理しているときにどこでどういうエラーが発生したのか、エラーの概要をつかみ、エラー原因の仮説を立てましょう。

  1. ロボットが稼働するプラットフォームの履歴

ロボットの稼働が完了したか、失敗したかなど、文字として一目でわかります。
失敗のステータスで終了しないよう作成している場合、履歴だけでは特定できないこともあるため、注意が必要です。

  1. エラー時に出力するエラーログ

大抵はエラーログを見れば、起きている事象についての確認が出来ます。
まずはエラーログを確認直接的なエラー原因を確認しましょう。

  1. アクション毎に記載するプロセスログ

アクションを開始した、終了したことを記録しているログです。
正常な動作に失敗したアクションは「アクション開始」と「アクション終了」の間に上手くいかなかった理由が記載されるので、ロボットのロジックと併せて確認することができます。

エラー原因の特定

どこで、どんなエラーが出たのか確認できれば、次は「なぜ」エラーが発生したかの調査に移ります。
エラー原因の特定で気を付けないといけないところは、「必ずしもエラーメッセージやエラー行がそのままエラー原因になるとは限らない」ということです。

エラーメッセージやエラー行はあくまでエラー原因のヒントであって、実際には前の処理が正常に動作していなくてエラーが起きていた……なんてことはよくあることなのです。
ですので、エラー原因を調査する際には、基本的には以下の流れで調査します。

  1. ロボットがどんな流れで何をしているものなのか、おおまかな仕様を確認する

ロボットの全体の仕様がわからないと、いくらロボットの動作を確認しても正しい動きがわかっていない状態なので、本当のエラー原因の特定から遠のいてしまいます。
全体が見えることで、正しく異常が発生している部分を見つけることができます。

  1. エラーメッセージの内容を確認し、本当にそれが原因なのかを確認する

ロボットの全体の流れを確認したら、次はエラーメッセージの内容が本当にエラー原因なのかを確認します。
例えば、「処理対象のファイルパスが見つかりません」というエラーメッセージであれば、
本当に処理対象のファイルパスがなかったのか?
指定しているファイルパスが間違っていないか?
の疑問を持つべきでしょう。

実際にファイルパスをエクスプローラーでたたいて確認し、ファイルがあれば、別の原因を念頭に調査をする必要があります。

  1. 上記で原因の特定ができない場合、エラー行・エラーメッセージをヒントに、前後の処理を確認して発生したエラーの要因になりそうな部分を、実際にロボットを動かして確認する

エラーメッセージの内容が本当のエラー原因ではなかった場合、一番の近道は開発環境でロボットを動かしてみて、エラーを再現することです。
エラーが再現できれば、正確にエラー原因を特定することがしやすくなります。
実行の様子とロボットの設定を見ながら、前後の処理でおかしいところがないかを確認しましょう。

再現できなければ、環境要因かネットワークのエラーが可能性として考えられるので、とりあえずリランして様子を見るという手段も取れるでしょう。

ここで注意ですが、環境によってはロボットを実際に動かして動きを確認することが難しい場合もあるので、その際にはプロセスログでどこまで正しく進んでどこでエラーが発生したのかをロボットの仕様と照らし合わせて確認することでエラーを特定することは可能です。

何ができて、何ができないのかは皆さんそれぞれとなるため、自身の置かれている環境は必ずチェックするようにしましょう。

改修/実行条件の確認

こまでで、どこで何を行い、なぜそのようなエラーが起きたかまで把握している状態です。
残すは改修対応ですが、下記の場合は即時解消というわけにはいきません。

  1. データの格納が必要
  2. アクセス権限の付与が必要
  3. アプリケーションのインストールが必要

上記のように実行条件が満たされていないことでエラーが発生している場合は、実行条件を確認の上、適切な宛先に連絡することが必要となります。

そして、上記の条件もクリアできれば、いよいよ改修対応です。
エラーが発生した箇所を仕様通りの正常な状態に戻す際、改修箇所を間違えないことは当然ですが、他にも重要視すべきポイントが下記になります。

  1. 改修による影響範囲を明確にする
  2. 影響範囲内で、改修による新たなエラーが発生し得ない状態にする
  3. テスト用で挿入していたアクションや、無効化設定に変更したままのものがないか確認する

例えば、確認用に毎度手動で消す動作をしていた、テスト用のメッセージボックスを残したままで本番環境に移行したとします。
ロボットの動作はメッセージボックスが出た時点で後続処理へ移行できず、さらにリカバリの手段もない場合、大きな業務遅延に繋がってしまいます。
そのため、実際にロボットを改修する際は特に注意が必要です。

エラー原因特定までの時短に使用できる機能

原因特定の助けになる機能は、様々なRPAツールに存在します。

RPAツールによって若干の差異はありますが、どのツールにも以下の機能は基本的に備わっています。
適切な情報を得るために、その都度で適切な機能を選んで効率的に業務を進めましょう。

ロボット実行履歴

正しい時間に、正しいロボットが実行されたかが一目で確認できます。
※例:Automation360の履歴画面

エラー発生時点の画面キャプチャ

何の画面を処理している時にエラーが発生したのか、ログと併せて短時間で情報を得ることが出来ます。
下記ツールのキャプチャ機能に関して、興味がある方はこちらも併せてご参照ください。

  1. <Automation360>
  2. <UiPath>(公式ページ)
  3. <BizRobo!>

ログ出力

エラーログ、プロセスログといった記録は、エラー原因特定するうえで大きな助けになります。
以下の観点に関してはツールに依存しないものとなりますので、活用方法に関しては、ぜひ下記リンクをご参照ください。

  1. ログ出力の目的
  2. ログの種類と設定する上での考えかた

<RPAで効果的なログの出力方法>

画面録画

マウスクリックやファイルの開閉などの様々なアクションを動画として記録することは、ロボットの動作を繰り返し確認する上で非常に役立ちます。
Automation 360では「スクリーンレコーダー」機能を使用することで録画が可能です。
UiPathでは「ジョブの記録」機能を使用することで、それ以外のツールを使用する場合もデスクトップをキャプチャできる外部ツール(例:AG-デスクトップレコーダー)をなど自動化して使用して画面録画が可能です。

繰り返しとなりますが、業務規定上、動画撮影が出来ない場合もありますので、使用する際はご注意ください。

メール送信

ロボットが正常終了したか、異常終了したかの通知をするメールを送る機能です。
キャプチャ機能と併せて使用することもできるため、一早く結果を拾い上げるのに有用です。

事例紹介

今回は、下記のエラーを例に、エラー原因特定から解決までの流れをご紹介します。

ファイルを開こうとしたところ、指定しているパスにファイルが存在しなかった。

ログやキャプチャから情報を読み取る

まずは何かアプリケーションを使用している時にエラーが発生しているのかどうか、キャプチャを確認してみます。

見たところ、特に何か開いているというわけではありませんでしたので、特定に至るまでの情報は得られませんでした。
キャプチャと一緒にエラーログも出力されているため、次はエラーログを確認します。

「6」というエラー行と併せて、「ファイルが見つかりません」という内容のログが記載されていることが確認できました。

エラー行を確認

エラーが発生しているアクションの行数が確認できたので、今度は実際にロボットのロジックを確認してみます。

実際に6行目にて、Excelファイルを開く動作を行っていました。
ここで「指定しているパスにファイルがない!」と言われているので、次はエクスプローラーでファイルパスを開いて、本当にファイルがないのか確認します。

指定のフォルダを確認

件のフォルダを開いてみると、フォルダ内には特にファイルは格納されていませんでした。
このエラーを解決するためには、

  1. ファイルパスを変更し「TestExcel」というファイルが保存されている本当のパスを指定する
  2. ファイルを開く動作をロボットが行うまでに、何かしらのアクションによってファイルが存在する状態にする

上記の2択となりますが、今回はファイルをあらかじめ作成する形で解決します。

改修

今回指定しているパスに「TestExcel」という、ロボット側で指定しているファイル名と同名のファイルを作成しました。

これでいざロボットが稼働したときに異常終了することはないと思われるため、実際にロボットを実行してみます。

エラー部分の解決

無事、ファイルを開くアクションは実行され、エラーも発生することなくロボットの実行を完了することが出来ました。 

今回ご紹介したエラーの事例は、あくまで基本的なものとなります。
実際は新規作成したファイルを配置するだけで解決するものは多くなく、ファイル関連のエラーといっても、様々な要因や解決方法が存在します。
どのエラーも、エラー箇所の特定から改修までの流れは大きくブレることはありませんし、時短ができる裏技もありません。
しかし、弊社が携わってきた数々の業務の含蓄をもって、業務全体をスムーズに進むための課題解決や、対策のご提案など、お悩みの方にはお力添えができるかもしれません。
RPAで何かお困りのことがありましたら、是非お気軽に弊社までご相談ください。

本記事の執筆者

ペネトレイター株式会社 山屋