
WinAutomationではじめるRPA入門(4)〜 デバッグ編
今回の内容は、おそらく多くの開発者が多くの時間を割くであろうデバッギングについて触れます。
ロボットの動作が期待と異なる時の対処方法〜デバッグ
- 動作中のアクションを一つ一つ調べる(Execute Next Actionによる実行)
- 特定の動作の直前で止める(Breakpoint)
- 予期せぬ致命的状態が発生した場合の対処法〜例外処理(Exception Handling)
こちらの記事では、期待した通りにロボットが動かなかったり、エラーが出て動作しない場合に対処する方法について学習します。
ロボットが期待通りの動作をしない時
作成したロボットが期待通りの動作をしない場合があります。
特に、自動レコーディングを用いて作ったロボットは値を変更した時などに期待通りの場所をクリックしなかったり、クリックすべき場所を発見できずにストールしてしまうことなどがよくみられます。
ロボットが異常停止してしまう時
期待通りの動作をしないという中には、ロボット自体が異常停止してしまうケースもあります。
例えば、ユーザーが入力するテキストの形式が期待と違う、Webサイトから取得してきたデータの形式が期待と違うなどです。
問題は、問題の場所が特定できないこと
上述のように、原因がわかっていて動作しないというのであれば、すぐに修正ができます。しかし、ロボットを普通に実行していると、想定外の事態がどこで起こったのか、何が問題だったのかが分からないケースにもたくさん遭遇します。
そこで、ここでは、問題の場所発見に着目してWinAutomation上でどのような機能が提供されているのかを学習してきます。
デバッグ実行
どこを実行しているのかがわかる「デバッグ実行」
リボン > Start (F10) を押すと、ロボットのデバッグ実行を起動できます。
デバッグ実行中は、動作中の部分が設定ファイル上でハイライトされわかるようになっています。
リボン > Tools > Robot Designer Options > Debuggerタブで、デバック実行の速度を調整することができます。
アクションを1つずつコマ送り
リボン > Execute Next Action (F9)を押す度に、ロボットのアクションを1つずつ実行することができます。
早速実行してみましょう。クリックの度に一つ一つ進めていく形になっていることがわかると思います。
Breakpoints
特定の部分でロボットの動作を止める Breakpoints
アクションを選択した状態で、リボン > Debug > Set Breakpointを選択してみましょう。
アクションに、ブレークポイントのマーク(赤丸)が出ていると思います。マークをクリックすると、今度はマークが消えます。同じ場所をクリックするとブレークポイントのマークが再表示されます。
ブレークポイントを設定した状態でデバッグ実行をしてみましょう。ブレークポイントで処理が一時停止されます。
デバッグの効率のためにブレークポイントまで一気に処理を実行させたり、ブレークポイントの時点で変数の中身を見たいときなどに重宝します。
変数の表示
変数の現在の状態を表示する変数パネル
変数パネルにて、変数の現在の値を参照することができます。
ブレークポイントと合わせて活用してください。
例外処理(Exception Handling)
例外の発生
ロボットが動作を継続できない状態に陥った時、ロボットは異常終了してしまいます。終了する前に、管理者へ通知を出したり、仕掛かりの仕事を元に戻したりしたい時、どうすればよいでしょうか。
この機能を提供しているのが、Exception Handlingです。Exception Handlingの設定は各アクションのプロパティの「Exception Handling」タブから行います。
試しに例外を発生させてみましょう
CSVファイルを読み込んで、中身のデータを表示するロボットを考えてみます。中身のデータを表示するロボットを考えてみます。具体的なロボットの設定は下記の通りです。
このとき、ファイル読み取りの例外を発生させるために、指定するファイルのパスを存在しないものに設定しておきましょう。
エラーメッセージ
期待通りに例外が発生したところと思います。「ファイルのインポートに失敗した」という趣旨のメッセージが出ました。
例外処理
先ほどの例外を正しく処理するために、次のような方針で対処してみましょう。
方針
- エラー発生フラグの変数(初期値はFalse)を用意しておく
- CSVファイルを開くアクション「Read from CSV File」のプロパティで、Exception Handlingの設定を行う
- Exception Handlingでは、エラー発生フラグの変数を「True」に書換え、処理を再開するように設定
- エラー発生フラグが「True」の場合は、CSVファイルのデータを表示させずに、エラー通知を行う
復習
今回は、期待した通りにロボットが動かなかったり、エラーがでて動作しない場合に対処する方法、デバッギングの方法を学習しました。
ロボットの動作が期待と異なる時の対処方法〜デバッグ
- どんなときにデバッグが必要になるか説明してください
- 動作中のアクションを確認する方法について説明してください
- 特定の動作の直前で止める方法について説明してください
- 変数の中身を表示する方法について説明してください
- 予期せぬ致命的状態が発生した場合の対処法〜例外処理(Exception Handling)
どんなときに例外処理が必要になるか説明してください
例外が発生した時に、正常系として処理する方法を説明してください
また次回。