◆デバッグと例外処理の概要
・デバッグ機能の使用方法
・FindElement または ElementExists を使用してアプリケーションと
同期する方法
・TryCatch アクティビティの仕組みと使用方法
◆Video-デバッグと例外処理(デバッグ機能)
・アクティビティに分かりやすい名前を付ける
エラーメッセージにアクティビティ名が表示されるので、
特定しやすいように名前をつけることを習慣化する。
・デバッグでの実行
デバッグモードで実行すると、通常より詳細なログを残すので、
デバッグ時に役立つ。
・ハイライトオプション
有効化すると、実行中の要素が赤枠で囲まれるの確認しやすい。
・低速ステップ
実行速度を遅くすることができる。
・ローカルパネル
現在の変数が表示される。
・ブレークポイント
ワークフロー内に印を付けて、動きを止める場所を指定する。
・ステップ機能
1コマンドずつ実行することが可能
◆Video-デバッグと例外処理(意図しない動作の解決方法)
・デバッグの手順
①アプリケーションの表示確認
②入力方法変更
③セレクターの設定確認
これらの確認でも改善されないことも多い
アプリケーション側のトラブル。
実行しようとしている際のタイミングのズレ
・タイミングの問題に対処するアクティビティ
①要素を探す
②要素の有無を検出
③要素の消滅を待つ
画像をベースで実施する場合
①画像を探す
②画像の有無を検出
③画像の消滅を待つ
◆Video-デバッグと例外処理(トライキャッチ – Try Catch)
・トライキャッチ(TryCatch)アクティビティの利用
◆ ワークフロー
・ダウンロードだけで良いです。
動作しなかったので、あまり検証してません。
次の演習に進みましょう!
◆詳細情報
・ログレベル
https://studio.uipath.com/lang-ja/v2018.1/docs/logging-levels
2018.01で公式サポートが終了されていると出ています。
・デバッグについて
https://studio.uipath.com/docs/about-debugging
こちらは2018.04からサポート内容でビデオの内容が詳細に記載。
◆演習 1
・[トライキャッチ (TryCatch)] の理解を目的
①入出金の差額を計算して(「入金」から「出金」を減算)、「差額」列の
各行に結果を保存
②制御フローには、[トライキャッチ (TryCatch)] を使用
「入金」の列の値、または「出金」の列の値が数値でない場合は、
「差額」列に「データに誤りがあります」と記述
③添付されている Excel ファイル 「例外処理.xlsx」の
「差額」列の各行に結果が反映されるかを確認
解答の確認
エラーが記録されました。
◆演習 2
・filesArray 変数内の前述のすべてのファイルのコンテンツを読み取り、
consolidate.txt の名前の単一のファイルに統合します。
(Read Text File アクティビティがエラーをスローするため) ファイルの読み取 りが実行されない場合、統合されたファイルにロボットがコンテンツを追加し ないようにする必要もあります。出力結果は、「レッスン 12 練習 2 – 統合」の ようになります。
・ワークフローは、さまざまなポイントで失敗します。ワークフローの構造を保 持しながら、最小限の変更を加えて、アプリケーションと論理エラーを修正し てみてください。
感想
実はあまり分からなかった。
◆要約
Ⅰ.概要
本モジュールでは、一般的にソフトウェア開発で最も重要といわれる 2 要素と、UiPath Studio に用意されているそれらの関連ツールについて説明しました。また、[Debug (デバック)] タブ、[Try Catch (トライキャッチ)] 、その他の便利な手法を紹介しました。
Ⅱ.学習した内容
・デバッグを開始するには、[Execute] タブの [Start Debug] ボタンを押します。
・デバッグ時は、以下の 3 つの事象が発生することがわかります。
①現在実行されているアクションが、黄色でハイライトされます。オプション 設定により、このアクションに影響を受けている要素がもしあれば、赤色で ハイライトされます。
②ローカルパネルで、すべての変数の現在値を確認できます。
③ワークフローで実行されたすべてのアクションの詳細ログが取得されます。
・実行速度を遅くする必要がある場合は、[Slow Step] ボタンを使用します。
あるいは、[Toggle Breakpoint] ボタンを使用して実行を完全に一時停止し、 [Step Over] ボタンを使用してステップバイステップで実行を再開することが 可能です。
・アプリケーションの読み込みを待機しているとき、アクティビティのデフォル トのタイムアウト値は 30 秒です。この読み込みの待機を、 [Element Exists (要素の有無を検知)] 、 [Find Element (要素を探す)] 、 [Wait Element
Vanish (要素の消滅を待つ)] などのアクティビティや、画像に対応したこれら と同等のアクティビティを使用して待機することも可能です。
・[Element Exists (要素の有無を検知)]はワークフローに影響を与えず、単に
ブール値を返すだけです。一方で、他の 2 つのアクティビティは要素が見つか るか消えるまで実行を停止します。
・Try Catch (トライキャッチ)] では、エラーが発生する可能性のあるアクショ ンを [Try] ブロック内に収容し、エラーが発生したときに実行するアクション を [Catch] ブロック内に収容する必要があります。さらに、オプションとして 前述した 2 ブロックの後で必ず実行するアクションを [Finally] ブロック内に 収容します。
・いろいろなタイプの例外に対応するため、[Catch] を複数持つことが可能
・例外を検出したとしても、ワークフローを確実に停止させたい場合があります その場合は、 [Rethrow (再スロー)] が使用可能です。
・自動化の個々のコンポーネントを分離して別のワークフローファイルにするこ とで、そのファイルを [Invoke Workflow (ワークフロー呼び出し)] を使用し て呼び出すことが可能になります。
Ⅲ.ベストプラクティス
・アクションやフローチャートに対して適切な名前を使用することは非常に重要 です。長期的にはメリットが大きくなります。
・使用したいウィンドウの上に別のウィンドウが存在すると、そのウィンドウ によって問題が引き起こされる可能性があります。その問題を回避したい場合 適切な回避策はデフォルトの入力メソッドを使用しないことです。
・セレクターに問題がある場合、[Indicate On Screen] オプションと [Attach to
live element] オプションを使用してセレクターを「リフレッシュ」しましょ う。
◆小テスト
100点でした。
単一選択
1)
UI要素が画面に表示されるまで待機する必要がある場合は、どのアクティビティを使用すべきですか?
○ 要素を探す
✖ 要素が存在する
✖ 待機要素が消える
単一選択
2)
UI要素が画面に表示されているかどうかを確認する必要がある場合は、どのアクティビティを使用すべきですか?
✖ 待機要素が消える
✖ 要素を探す
○ 要素が存在する
単一選択
3)
Try/catchアクティビティの Finally ブロックは、次の場合に実行されます。
✖ Try ブロックのアクティビティは、エラーなしで実行された場合
✖ Catch ブロックのアクティビティが実行され、エラーが発生した場合
○ 例外が発生したかどうかにかかわらず、毎回
✖ Try ブロックのアクティビティが実行され、エラーが発生した場合
複数の選択肢
4)
特定のアクティビティの前に実行を一時停止するには、どうすればよいですか?(該当するものをすべて選択してください)
○ デバッグモードでブレークポイントを使用する
○ MessageBoxアクティビティを使用する
✖ Pauseアクティビティを使用する
✖ Breakアクティビティを使用する
単一選択
5)
Catchブロックで定義されている例外タイプが複数ある場合、どのブロックが実行されますか?(該当するものをすべて選択してください)
✖ 一致しているすべてのブロックが定義されている順に実行される
✖ 最も一般的な例外タイプに一致しているブロック
○ 特定の例外タイプに一致しているブロック
✖ 定義されている最初のブロック