2019.04.11
前回の「デバッグについて① ~変数と動作確認~ 」では、
ご紹介しました。
今回はデバッグを使用して、不具合の対処方法についてご紹介していこうと思います。
いざ作成したロボットを実行してみたら、実行後の結果が想定していた結果と違っている・・・!
または、エラーが発生して処理が中断してしまう・・・
なんてことは開発をしていく中でよく起こりえることです。
そんな時に解決方法をいくつか知っておくと、上記の様なことが発生しても対処方法があるので自分で難なく解決することができるかもしれません!
それでは不具合を解決に導く方法をご紹介していこうと思います。
処理中の不具合のことを指します。
想定した動作通りに動かない部分のことです。
バグは開発者自身によって発生してしまうものもあれば、外的要因によるものなど原因は様々です。
ここでご紹介するバグの対処方法は、
開発者によって発生したもの
に絞ります。
今回も「デバッグについて① ~変数と動作確認~ 」で使用した、商品登録ロボットを使用します。
こちらがロボットの一連の処理のながれです。
1.エクセルファイル「登録用データ.xlsx」から商品情報を読み込む
2.読み込んだ登録情報が正しいかチェック
2-1.チェックOKの場合⇒ログに処理開始のメッセージを出力
2-2.チェックNGの場合⇒エラー処理を行う
3.追加する商品情報の有無をチェック
3-1.新しく追加する商品情報があった場合⇒
3-1-1.読み込んだ商品をエクセルファイル「商品データ.xlsx」に出力
3-1-2.ログに登録成功のメッセージを出力
3-2.新しく追加する商品情報がなかった場合⇒
3-2-1.ログに登録データなしのメッセージを出力
4.ログに処理終了のメッセージを出力
5.1〜4の処理中にエラーが発生した場合、エラーメッセージをメッセージボックスに表示します。
今回の商品登録ロボットは、すべての処理をトライキャッチで囲んでいるので、エラーが発生した場合はエラーメッセージを表示して正常に終了するようになっています。
それでは開発者自身によって発生したバグに対する対処方法についてご紹介します。
事前に仕込んだバグは下記の通りです。
まずは「実行」をクリックして、実行してみると下記のメッセージが表示されます。
エラーメッセージの内容から、ファイルが見つからないまたは存在しないことが原因であると推測されます。
実行した商品登録ロボットでファイルを使用するのは、
・1.エクセルファイル「登録用データ.xlsx」から商品情報を読み込む
・3-1-1.読み込んだ商品をエクセルファイル「商品データ.xlsx」に出力
この2か所なので、どちらか一方あるいは両方に問題があることが予想できるかと思います。
この時点ではまだエクセルファイルを読み込む直前で止まっています。
エラーメッセージが表示され、最初のエラー発生個所が発見できました。
「詳細」をクリックすると、発生場所などの詳細なエラー情報が表示されます。
メッセージだけで原因がわからない場合は、詳細を確認するとよいかと思います。
今回の場合は、「ワークブックが存在しません」とあるので、
・エクセルファイルのファイルパスが間違っている
・必要なエクセルファイルを適切なところに配置していない
ことが原因であると推測されます。
エラーメッセージの「中断」をクリック後、デバッグ実行を停止します。
ここからはエラーが発生した「登録データを読み込み」(Read Rangeアクティビティ)を修正していきます。
設計書などを確認し、正しいファルダ構成やファイル名を確認しましょう。
実行した商品登録ロボットで使用するエクセルファイルのフォルダ構成とファイル名は下記の通りとします。
こちらがエラー発生時に指定されていたファイルパスです。
本来ならば、ファイルパスは「”データ\登録用データ.xlsx”」でなければいけません。
今回のエラーは、ファイルパスの誤りが原因で発生したことがわかりました。
エラーが消え、エクセルファイル内のデータも取得できています。
「続行」をクリックし、次のブレークポイントで一時停止をしたら「ステップイン」をクリックしてみましょう。
エクセルファイルに出力するアクティビティにエラーはありませんでした。
最後まで実行してエクセルファイルを確認してみましょう。
今回の場合はエクセルファイルを読み込んで、別のエクセルファイルにデータを出力するので、取得データと出力結果が想定通りであるか確認します。
結果に問題はありませんでした。
また、先ほど発生したエラーがなくなりました!
出力パネルからもすべての処理が正常に終了したことが確認できたので、バグを取り除くことができました。
開発をはじめたばかりの頃は、実行中にUiPath Studioなどからのエラーメッセージが表示されると細かい英字がびっしり書かれていて確認することすら嫌になってしまうかもしれませんが、そのエラーメッセージにはエラー発生場所や原因を導き出すための手がかりがあるので、まずはエラー内容を確認することから手を付けてみたらよいのではないかと個人的には思います。
あとは例外の種類によってどこに原因があるのかわかる場合もあるので、例外についてネットで検索して内容を確認してみるのもよいかもしれません。
デバッグ実行をあまり使用することが無い・・・という人がいましたら、ぜひ1度使ってみることをお勧めします。
処理を1つずつ進めていくことができるので、処理の流れや条件分岐などの動作確認、変数の中身の確認などができるので、よろしければ1度試してみてはいかがでしょうか。