じっぱひとからげ

十把一絡げになんでもかんでもつづる。

UiPath入門(3)〜デバッグの仕方

RPAの自動化は、作っては試し、作っては試しのTry&Errorで作り上げる。作った一連のシナリオを試すという作業はなかなか時間がかかるので、できるだけ部分的にピンポイントで確認したい。

ワークフローをキレイ化する

ワークフローデザイナの「アクティビティ」にはそれぞれ名前がつけられる。もちろん日本語の入力もできるので、ワークフローがすぐにわかるような名前をつけてキレイ化しておく。

f:id:jippahitokarage:20170717072914p:plain

厳密にはワークフローデザイナの中には、「フローチャート」、「シーケンス」、「アクティビティ」という3つの概念がある。簡単に言ってしまえば、フローチャート>シーケンス>アクティビティという粒度でワークフローを構成することができる。さらに言うと、シーケンスの中にシーケンスを入れ子にすることもできるし、フローチャートにフローチャートを入れ子にすることもできる。ワークフローをキレイにまとめるには事前に開発標準を定義してからこれらの概念をどのように使うのかを決めておくと良いだろう。

f:id:jippahitokarage:20170717074401p:plain

アクティビティはワークフローの最小単位で、連続したアクティビティのまとまりをシーケンスでグループ化することができ、さらにフローチャートを利用することでどのような順序でシーケンスを走らせるのかを定義することができる。

ブレークポイントを入れる

EXECUTEタブのなかにBreakPointsボタンがある。止めたいアクティビティやシーケンスを選択してボタンを押すとブレークポイントが設定できる。

f:id:jippahitokarage:20170717075113p:plain

ブレークポイントに設定すると赤色の○が表示される。

f:id:jippahitokarage:20170717075324p:plain

ブレークポイントを設定したら、Debugを実行する。

f:id:jippahitokarage:20170717075204p:plain

実行中のアクティビティは黄色の枠で表示される。以下の図では、ブレークポイントで設定した箇所で一時停止している。

デバッグ時はいわゆる変数の値を確認するwatchも利用できるので、振る舞いを確認する上で使えるようになっておきたい。

f:id:jippahitokarage:20170717080333p:plain

ブレークポイントで一時停止したあとは、アクティビティを少しずつ送り進めるStep Into、Step Overも利用できる。

f:id:jippahitokarage:20170717082219p:plain

開始位置を変更する

デバッグを進める上で、すでに動作が確認できているログイン処理などを毎回動かすのは時間の無駄なので、スタートの開始位置を変更することで確認済みの部分を省略する。(これがUiPath推奨のデバッグ方法なのかはわからないが、今のところ考えついたもっとも効率の良い方法がこの方法である)

例えば、フローチャートのDecisionがFalseになったテイでその先だけを確認したい場合は、Falseの先のノードを右クリックし、Set as Start Nodeをクリックする。

f:id:jippahitokarage:20170717080927p:plain

これにより、Startノードから選択したノードにフローを示す矢印が直結する。単純にStartノードの矢印の先端をドラッグ&ドロップでつなぎ替えても同じことができる。どちらの方法でも結果は変わらない。フローを示す矢印が見づらい位置に来てしまう場合は、矢印を選択したときに現れる●をドラッグ&ドロップすることで整形できる。

f:id:jippahitokarage:20170717081352p:plain

つなぎ替えた後はRunなりDebugなりを実行すれば、Startから最初のシーケンスと条件分岐を飛ばしてFlaseの先のノードから実行されることになる。

すでに確認済みのシーケンスを飛ばすことで、効率よくデバッグができるようになる。

コメントアウトする

コメントアウトしたいシーケンスやアクティビティを右クリックして、Disable Activityをクリックする。

f:id:jippahitokarage:20170717081612p:plain

コメントアウトされたシーケンスやアクティビティは、//というアイコンのCommentOutという名前に変わる。

f:id:jippahitokarage:20170717081818p:plain

表記の通りCtrl+Dでコメントアウト、Ctrl+Eでコメントアウトの解除ができる。

UiPathの優秀なところ

変数の扱いがプログラミングライクで馴染みやすい

RPAツールによっては、スコープの概念がなくすべてグローバル変数扱いになってしまうため、変数名に気を配る必要があるなど本質ではない部分でエネルギーを消耗してしまう。

ところが、UiPathの変数は、一般的なプログラミング言語同様に型とスコープが定義される。シーケンス内で定義した変数はシーケンス内に閉じているため、変数名はシーケンス内だけを意識していれば良い。

自前のライブラリを作って再利用できる

上記の通り、変数がシーケンスに閉じているので、よく利用するシーケンスはライブラリとして部品化しておくことでドラッグ&ドロップで再利用できる。企業内の業務アプリで利用する場合などは、必ず実施するログイン処理やログアウト処理などをライブラリとして用意して、入力するIDやパスワードだけを変更すれば使えるようにしておく、というような使い方ができるだろう。

まとめ

  • フローチャート、シーケンス、アクティビティを使い分けてワークフローをデザインできる
  • デバッグには一般的なIDE同様、ブレークポイントやwatch、Step Into、Step Overが利用できる
  • すでに確認済みの部分はスタート位置を変更することで省略できる
  • コメントアウトはCtrl+D、コメントアウト解除はCtrl+Eで設定できる

UiPath入門シリーズはこちら

blog.jippahitokarage.com