UiPath担当のChewbaccaです。
今回は効率的にデバッグする上で、なくてはならないブレークポイントについて紹介したいと思います。
はじめに
RPAに限らず、デバッグは開発プロセスにおいて必要不可欠な要素です。
デバッグ機能のひとつである、ブレークポイントとは特定のアクティビティで実行を一時停止する為に、ワークフロー内に配置するマーカーです。
ブレークポイントにて実行を一時停止することにより、変数の格納値など処理の状態をチェックし、エラーや予期しない動作を事前に特定することができます。
ブレークポイントの設置
ブレークポイントを設定するには、UiPathStudioのデバッグタブにて実行を一時停止したいアクティビティを選択しF9キーを押すか、ブレークポイントパネルをクリックします。
すると赤丸が表示され、ブレークポイントが設定されたことを示します。
ブレークポイントは、ワークフロー内のどのアクティビティにも設定することができ、デバッグに必要な箇所をピンポイントで指定することができます。
使用方法
ブレークポイントを設定した状態で、デバッグをクリックすることにより、デバッグモードでワークフローを実行することができます。
ブレークポイントに達すると、処理は一時停止するので、ローカルウインドウにて変数の値や画面上でカーソルの状態などを確認することができます。
ステップスルー実行について
他のプログラム言語と同様に、「ステップイン・ステップオーバー・ステップアウト」の3種のステップ実行が可能ですので、それぞれの違いについて、サンプルワークフローでの動作を例に、説明したいと思います。
サンプルワークフロー
サンプルワークフロー説明
Mainワークフロー内にシーケンスとメッセージボックスがあり、シーケンス(parent)内でワークフロー(child)を呼び出すアクティビティにブレークポイントを設定しています。
以下が、ブレークポイントで停止している状態となりますので、この状態を例に3種のステップ実行の動きについて説明したいと思います。
ステップイン
停止中のアクティビティが実行され、次のアクティビティの実行直前で停止します。
1アクティビティずつの実行が可能です。
<サンプルワークフローでの動作例>
「ワークフローchild」内に移動し、childの最初のアクティビティにて停止。
ステップオーバー
ワークフローの呼び出しやシーケンス、フローチャートなどのコンテナ内のすべてのアクティビティ実行します。
問題が生じないであろう大きなコンテナのデバッグに向いています。
<サンプルワークフローでの動作例>
「ワークフローchild」内の動作を全て完了し、「シーケンスparent」内の次のアクティビティ(メッセージボックス)にて停止。
ステップアウト
現在のコンテナレベルでのアクティビティを実行し、次階層もしくは上位階層のアクティビティの実行直前にて停止します。
<サンプルワークフローでの動作例>
「シーケンスparent」内の動作を全て完了し、シーケンス(parent)にて停止。
(次アクティビティはMainワークフロー内のメッセージボックス)
まとめ
いかがでしたでしょうか。
ステップオーバーとステップアウトの違いについては、いまいちわかりにくいかと思い、改めて整理してみました。
ワークフローの動作を確認する事で、直観的に動きの違いが理解できるかと思います。
また、実際のデバッグの際には、ステップオーバーもしくはステップアウトにて、疑わしい箇所まで一気に飛び、疑わしい箇所のみステップインにて1アクテビティずつ確認する、といった使い方ができるかと思います。
是非効率的なデバッグに活用いただければと思います。