LoginSignup
4
3

More than 3 years have passed since last update.

UiPathで高度なデバックを実施する

Last updated at Posted at 2020-07-25

UiPathで高度なデバックを実施する

これまでの記事で、DLLをUiPathから直接呼び出す手法をご紹介しました

本記事では、Visual Studioでブレイクポイントを設定して、高度なデバック方法をご紹介します。

■ 実施例
image.png

開発のきっかけ

最近では当たり前ですが、昔はUiPathでカスタムライブラリを作成するには、
Visual StudioでDLLを作成し、Nuget ExplorerなどでDLLをnuget化して利用しかありませんでした。

UiPathでデバッグするにも、Immediate Panelがなかったり、現時点でもComやラムダ式をデバッグしたり
解析することができませんでした。

お約束事項(免責事項)

この記事は2020年7月時点の情報を基に作成しております。
記事の内容は私個人の見解であり、所属する組織の公式見解ではありません。

カスタムライブラリ

前回の記事で使用したサンプルのカスタムライブラリを使用します

ソース内容

前回のソースと同じものです。
今回は、Test2のメソッドを使用します。

using System.Windows;

namespace UiPathCustomLibrary
{
    public static class TestClass
    {
        public static void Test1()
        {
            MessageBox.Show("Hello World");
        }
        public static void Test2(string message)
        {
            MessageBox.Show(message);
        }

        public static int Test3(int a, int b)
        {
            return a + b;
        }
    }
}

UiPathの実装

こちらの記事でご紹介した記事がデバッグを捕捉しやすいので、こちらの実装を流用します
https://qiita.com/takusonix/items/0ac407301570ca433556

実装(完成版)

image.png

デバッグの手法

1. ブレイクポイントの設定

DLLのソースをVisual Studioで開き、デバッグポイントにブレイクポイントを設定します。
image.png

2. ビルド

ビルドを行って、DLLを生成します
image.png

3. pdbファイル

DLLと同時にpdbファイルが作成されていることを確認します。
image.png

4. DLLとpdbファイルをUiPathプロジェクトファイルに格納

UiPathのプロジェクトフォルダにDLLと一緒に、pdbファイルも格納します
image.png

5. UiPathプロジェクトの実行

Assembly.LoadFileでDLLロードされるUiPathのプロジェクトを実行し、
MessageBoxなどで、ユーザの入力待ち状態にします。
image.png

6. プロセスのアタッチを選択

UiPathでMessageBoxが開かれている状態で、VisualStudioのデバッグから、「プロセスのアタッチ」を選択します。
image.png

7. 対象のプロセスにアタッチ

検索窓に、UiPathと入力し、プロジェクト名または、ロボット名と一致するプロセスを選択して、右下の「アタッチ」を選択します。
image.png

8. デバッグ開始

Visual Studioがデバッグ表示に切り替わります
image.png

9. ブレイクポイントで停止

image.png

10. 高度のデバッグを実施

ラムダ式を含んだ実装をイミディエイトウインドウで確認したり、
message引数の値や、その他の情報を自動パネルから確認したり

UiPath以上に有用なDebugが実施できます。
image.png

実践例

UiPathでExcelを操作する(活用編: 名前を付けて保存する[完成版])を利用して、実際にデバッグしてみます。

1. フローを作成する

image.png

2. プロセスアタッチ用のメッセージボックス追加

image.png

3. ロボ実行

メッセージボックスの表示を確認する
image.png

4. プロセスのアタッチ

Visual Studioでプロセスにアタッチする
image.png

5. デバッグ開始

ブレイクポイントで止まります
image.png

調査開始

a)アクティビティの引数調査

image.png

b) Comオブジェクトの調査

UiPathのデバッグでは調査できない、Comオブジェクトや動的ビューも、Visual Studioなら展開可能です。
image.png

終わりに

本投稿では、DLLと一緒にPDBファイルを配置し、VisualStudioからデバックメニューのプロセスアタッチから、UiPathのロボットを捕捉し、事前に設定したブレイクポイントで、処理を停止させる方法と実践的な調査例をご紹介しました。

もし、よければLGTMをお願いします。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3