Upgrade to Pro — share decks privately, control downloads, hide ads and more …

UiPath-モダン/クラシックアクティビティ相互利用について

Avatar for Yoichi Yoichi
November 02, 2022

 UiPath-モダン/クラシックアクティビティ相互利用について

UiPath Friends Festival 2022 テック三昧にて

Avatar for Yoichi

Yoichi

November 02, 2022
Tweet

More Decks by Yoichi

Other Decks in Programming

Transcript

  1. 2 #UiPathFriends #UiFes 自己紹介 名前: 末武 陽一(すえたけ よういち)(Suetake, Yoichi)  Twitter : @SuetakeYoichi LinkedIn

    : yoichi-suetake-144784aa 所属: 株式会社オプテージ RPAソリューションチーム チームマネージャー 属性: IT屋(技術士(総合技術監理・情報工学部門))   天文屋    気象屋(気象予報士) UiPath使用歴: 約5年 (Academy Lv1修了2017/5/24) UiPath Japan MVP 2019-2022 UiPath Community MVP 2022 (Global)
  2. 4 #UiPathFriends #UiFes モダンアクティビティとクラシックアクティビティ UiAutomationクラシック  個々のアクティビティはフルセレクターを指定 して単独で利用するか、上記アクティビティの コンテナ内で部分セレクターを指定して利用 する。  同一ブラウザやウインドウを担保するため

    に、UiPath.Core.Windowや UiPath.Core.Browserを使う。  個々のアクティビティはフルセレクターを指定 して単独で利用するか、上記アクティビティの コンテナ内で部分セレクターを指定して利用 する。  同一ブラウザやウインドウを担保するため に、UiPath.Core.Windowや UiPath.Core.Browserを使う。
  3. 5 #UiPathFriends #UiFes モダンアクティビティとクラシックアクティビティ UiAutomationモダン  個々のアクティビティは原則として「アプリケー ション/ブラウザを使用」アクティビティの内部で使 用する。  同一ウインドウまたはプロセス配下であることを 担保するために、UiPath.Core.UiElement

    を使う。  個々のアクティビティは原則として「アプリケー ション/ブラウザを使用」アクティビティの内部で使 用する。  同一ウインドウまたはプロセス配下であることを 担保するために、UiPath.Core.UiElement を使う。 このあたりの差異をどのように吸収するか?
  4. 11 #UiPathFriends #UiFes varWindow = varUiElement.GetTopLevelWindow() varUiElement = New UiElement(varWindow)

    を使う。 暗黙変換可能なので、メソッドやコンストラクタは省略可能。 ケース3:Windowインスタンスを...
  5. 13 #UiPathFriends #UiFes 「アプリケーション/ブラウザを使用アクティビティ」の 統合アプリケーションターゲット-セレクタープロパティに トップレベルセレクターのみを指定→例えば正規表現で抽出 System.Text.RegularExpressions.Regex.Match(in_selector,".*?>").Value 内部のアクティビティは、「アプリケーション/ブラウザ を使用」アクティビティのウインドウアタッチモードに よって指定するセレクターを変える。

    ケース4:フルセレクター文字列を モダンプロジェクトで使う。 「アプリケーション/ブラウザを使用」アクティビティの ウインドウアタッチモード 内部のアクティビティのセレクターで指定する内容 アプリケーションインスタンス フルセレクター(またはウインドウセレクター要素にトップレベル、セレクター に部分セレクター) 単一ウインドウ トップレベルを省いた部分セレクター
  6. 14 #UiPathFriends #UiFes モダンアクティビティとクラシックアクティビティ クラシック モダン EXCEL ・同一ワークブックを担保す るために UiPath.Excel.Workboo

    kApplicationを使う。 ・同一ワークブックを担保す るために UiPath.Excel.Workboo kApplicationを使う。 ・ワークブックのファイル名(フルパス)にて同 一ワークブックを担保。(そもそもエクセルは 同じ名前のワークブックは同時に開くことがで きない) ・Excelアプリケーションスコープ内で使用でき るアクティビティは、「Excelファイルを使用」内 でも使用できる。 ・ワークブックのファイル名(フルパス)にて同 一ワークブックを担保。(そもそもエクセルは 同じ名前のワークブックは同時に開くことがで きない) ・Excelアプリケーションスコープ内で使用でき るアクティビティは、「Excelファイルを使用」内 でも使用できる。
  7. 18 #UiPathFriends #UiFes ・UiPath.Core.Browser または UiPath.Core.Windowと、UiPath.Core.UiElementは相互変換が 可能(しかも暗黙での変換も可能)。  →モダンの「アプリケーション/ブラウザを使用」アクティビティで クラシックのアクティビ ティが必要な型の受け渡し、あるいはクラシックアクティビティからの出力の利用が可能。 ・フルセレクター文字列をモダンで扱う場合は、トップレベルのセレクター文字列を抽出して、

    「アプリケーション・ブラウザを使用」アクティビティに入力する。内部のアクティビティのセ レクター指定はウインドウアタッチモードによってフルセレクター、部分セレクターを使い分け る。 ・WorkbookApplicationインスタンスを受け取ったら、ファイルパスを抽出して、それをExcel ファイルを使用アクティビティに与える。その逆の、モダンアクティビティだけで WorkbookApplicationインスタンスを生成することは難しいので、WorkbookApplicationコン ストラクタで生成するか、素直にExcelApplicationScopeを使う。 以上、みなさんのモダン・クラシックの相互利用時の参考になればと思います。 まとめ