みなさまこんにちは、清水です。
Botの作成が一通り終われば、試しにBotを実行させてみましょう...
さて、作ったBotは思い通りに動作したでしょうか? 通常よほど単純な処理でない限り最初の実行で思い通りに動くことはまずありませんのでご安心ください。
Botが思い通りに動作しないときには、そのBotには何らかのバグ(欠陥・不具合)が含まれています。それを取り除く作業「デバッグ」をしていきましょう。
(Automation Anywhere A2019の日本語訳では「デバック」となっていますが、ここでは一般的な「デバッグ」の表記を用います。)
もし全くBotが動作しないときは実行するための事前設定ができていないことが原因の可能性がありますので、こちらをご確認ください。
Automation Anywhere - 【A2019】ユーザーとデバイスの紐づけ A2019
Automation Anywhere -【A2019】デバイス登録とBot Agent A2019
なお、本記事はAutomation Anywhere A2019.15 (Build 5933)を対象に記述しております。
1.はじめに
オブジェクトが見つからずタイムアウト、クリックが空振り、Excelのデータ形式とBotの指定するデータ形式が相違etc. Botの動作を阻害する要因はあらゆるところに散在しており多種多様です。
そのためBotのデバッグ作業は一通り作成したらあとはひたすら修正、テスト実行、修正、テスト実行...と繰り返してBotを調整することがメインになります。また、一度完成して保守フェーズに入ったのであればさまざまな環境変化に合わせて同様に微修正を重ねるようになります。
それらの調整作業はBotを一通り作成する時間よりも多くかかりますので、Botの維持コストを抑えるためにはBotのデバッグ作業、特にテスト実行を効率よくすることが肝要です。
Automation Anywhere A2019の良い点としてマウス操作でサクサクRPAを作ることができて、そのままワンクリックで実行できることが挙げられます。この簡単にRPAを実行できる利点を最大限に活用してデバッグ作業も効率的に進めていきましょう。ここではデバッグ作業を効率的にサポートするAutomation Anywhere A2019の機能と使い方を紹介します。
2.デバッグモードの活用
時間のかかるデバッグ作業を支援するため、その名の通りデバッグモードが存在します。
デバッグモードできることは、
の3つです。
1つ1つ方法を見ていく前にまずデバッグモードへの切替えと画面項目の確認をしましょう。
デバッグモードへの切替えと各項目について
デバッグモードへ切替えするにはBot 編集画面の右上にある虫のアイコン「デバック」のボタンをクリックするだけです。非常に簡単です。
するとワークベンチのエリア(下図オレンジ枠)は編集不可となり操作メニューがわずかな数に減少します。(下図青枠)
また、「変数」「アクション」「トリガー」とあった左側のエリアが「監視済みの変数」に変化しました。(下図黒枠)
それでは変化した各項目について説明していきます。
操作メニュー
①開始:Botをはじめから開始します。
②ステップ オーバー:1つのアクションのみ実行します。
③停止:Bot実行中に停止させます。
④すべてのブレークポイントを消去:Botに設定したブレークポイントをすべて削除します。
ワークベンチ(各アクション)
ブレークポイントを有効化:そのアクションにブレークポイントを設定します。
監視済みの変数
①変数を追加削除:「監視済みの変数」エリアに表示させる変数を設定します。
②値を表示(各変数):現在その変数の値にどのような数値や文字列が設定されているかを表示します。
③変数を削除(各変数):「監視済みの変数」エリアに変数を表示させないようにします。大規模なBotとなると定義する変数の数も多くなります。確認したい変数だけに絞って視認性を高めることができます。決して変数そのものを削除してしまうものではありませんのでご安心ください。
次にこれらの機能を用いてどのようなことができるかをご紹介します。
Botのはじめから途中までを部分的に実行
Botを途中まで実行させるためにはアクションにブレークポイントを有効化させ、デバックモードでBotを実行させます。
ブレークポイントが有効になっている状態で「開始」ボタンを押下して処理を実行した際には、そのブレークポイントが設定されたアクションの直前のアクションまで実行された後に一時停止します。
再び「開始」ボタンを押下することでブレークポイントが設定された処理から再開されます。
Bot上の複数アクションに対し、ブレークポイントを有効化することもできます。
するとそれらのブレークポイントのアクションを実行しようとする前に都度停止するようになります。段階的にBotの動作を確認したい際に有用な機能です。
アクションを1つ1つ手動で実行
前述の通り、ブレークポイントによる一時停止状態になったBotはそのまま次のブレークポイントのアクションの前まで一気に実行させることも可能ですが、「ステップ オーバー」を押下することでアクションを1つ1つ手動で実行させていくこともできます。
例えば既に正常に動作することが確認できているアクションは事前にそのまま実行してしまい、修正した挙動を1つずつ詳しく見たいアクションはステップオーバーで逐次確認することで、Botの速い動きを見逃す心配も少し減ります。
しかしステップオーバーを使用しても子Botを呼び出す「TaskBot:実行」は1つのアクションと判断され、子Botの処理は最初から最後まで実行されてしまいますのでご注意ください。
変数の値の確認
変数の値に応じて処理を分岐させるようなBotをテストする際、想定通りに分岐させることができず、原因追及のためにその変数の値が現在どのようになっているのかを確認したい場面があります。
デバッグモードで実行し、ブレークポイントを活用するなどしてBotを一時的に停止させることで、その時点で各変数にどのような値が設定されているのか「監視済みの変数」のエリアに表示されます。値の表示により変数設定のミスを排除する助けになります。
変数の値の表示ですが、A2019.15(2020年8月リリース)では変数名が日本語でとなっている変数の値が表示されず、「--」となってしまいます。この機能を使用したい場合は変数名を英数字で設定ください。
【2020年10月7日更新】A2019.16(2020年9月リリース)では変数名が日本語でも値が表示されるように変更されています。
デバッグモードではBotを編集することはできません。もしBotを修正したい場合はデバッグモードを終了させてから修正してください。右上の「デバックを終了」ボタンを押下することで編集モードに戻ります。
3.Tips
ここまでデバッグモードの機能を説明してきましたが、以降はそれらに関する注意事項やデバッグモード以外にデバッグに活用できる機能をご紹介します。
ブレークポイントの注意点
ブレークポイントを有効化させるのは編集モード中でも可能ですが、ブレークポイントに従ってBotが一時停止するのはデバッグモード時での実行の際だけとなります。
また、子Botを呼び出す場合も注意が必要です。「TaskBot:実行」で呼び出されるBot(子Bot)に設定されているブレークポイントはデバッグモードであっても無視され、そのまま子Botは一気に最後まで処理されます。
ダイアログを活用してBotを一時的に停止させる
小技として、ダイアログを表示させることでBotの進行を一時的に停止させることが可能です。これはデバッグモードでなくても停止させることができます。何か手作業を加えたい時や途中までの実行結果を確認したいなどに使えます。
Botの途中から実行
編集モードではBotを途中から実行させることができます。途中から始めたいアクションのメニューを開き、「ここから実行」を選択します。ただし、ループ内のアクションは途中から始めることができません。当然、変数も初期値で実行されますのでご注意ください。
4.おわりに
いかがでしたでしょうか?
デバッグ作業はやればやるほど、勘所を抑えられるようになり、かつ手馴れて短時間でできるようになります。
しかし一定の経験を積んでも、ときにはうまくいかなくて「ハマる」ことがあります。そういうときは近視眼的になっているため、いったん諦めて時間をおいて新たな気持ちで取り組んでみてください。きっと道が開けると思います。
それでは、「習うより慣れよ」で楽しいBotライフを!
他のおすすめ記事はこちら
著者紹介
先端技術推進統括部
RPAビジネス推進部
清水 勇弥
ひとり西日本チーム