Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
UiPath-モダン/クラシックアクティビティ相互利用について
Search
Yoichi
November 02, 2022
Programming
0
280
UiPath-モダン/クラシックアクティビティ相互利用について
UiPath Friends Festival 2022 テック三昧にて
Yoichi
November 02, 2022
Tweet
Share
More Decks by Yoichi
See All by Yoichi
UiPath Windowsレガシー→Windowsプロジェクト変換について
swetake
0
1.3k
Other Decks in Programming
See All in Programming
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
170
AIエージェントの設計で注意するべきポイント6選
har1101
6
3k
CSC307 Lecture 02
javiergs
PRO
1
760
SQL Server 2025 LT
odashinsuke
0
130
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
150
GISエンジニアから見たLINKSデータ
nokonoko1203
0
190
ゲームの物理 剛体編
fadis
0
400
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.6k
Pythonではじめるオープンデータ分析〜書籍の紹介と書籍で紹介しきれなかった事例の紹介〜
welliving
3
770
Python札幌 LT資料
t3tra
7
1.1k
クラウドに依存しないS3を使った開発術
simesaba80
0
220
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
470
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Done Done
chrislema
186
16k
Mobile First: as difficult as doing things right
swwweet
225
10k
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
The browser strikes back
jonoalderson
0
300
Color Theory Basics | Prateek | Gurzu
gurzu
0
170
So, you think you're a good person
axbom
PRO
0
1.9k
KATA
mclloyd
PRO
33
15k
RailsConf 2023
tenderlove
30
1.3k
A designer walks into a library…
pauljervisheath
210
24k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Transcript
モダン/クラシック アクティビティ 相互利用について Yoichi Suetake
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)
3 #UiPathFriends #UiFes ・21.10よりモダンデザインエクスペリエンスがデフォルトで有効となり、モダンデザインを標準 としている組織も多いかと思います。 ・一方で、クラシックデザインで作成したライブラリや共用ファイル等の資産がある場合、モダン デザインとクラシックデザインを併用せざる得ないケースもしばらくはあるかと思います。 ・このセッションでは、上記のようなケースで想定される相互利用方法について技術的な観点で見 ていきます。 セッションの概要
4 #UiPathFriends #UiFes モダンアクティビティとクラシックアクティビティ UiAutomationクラシック 個々のアクティビティはフルセレクターを指定 して単独で利用するか、上記アクティビティの コンテナ内で部分セレクターを指定して利用 する。 同一ブラウザやウインドウを担保するため
に、UiPath.Core.Windowや UiPath.Core.Browserを使う。 個々のアクティビティはフルセレクターを指定 して単独で利用するか、上記アクティビティの コンテナ内で部分セレクターを指定して利用 する。 同一ブラウザやウインドウを担保するため に、UiPath.Core.Windowや UiPath.Core.Browserを使う。
5 #UiPathFriends #UiFes モダンアクティビティとクラシックアクティビティ UiAutomationモダン 個々のアクティビティは原則として「アプリケー ション/ブラウザを使用」アクティビティの内部で使 用する。 同一ウインドウまたはプロセス配下であることを 担保するために、UiPath.Core.UiElement
を使う。 個々のアクティビティは原則として「アプリケー ション/ブラウザを使用」アクティビティの内部で使 用する。 同一ウインドウまたはプロセス配下であることを 担保するために、UiPath.Core.UiElement を使う。 このあたりの差異をどのように吸収するか?
6 #UiPathFriends #UiFes ライブラリやXAMLファイル自体の引数の入力がUiPath.Core.Browserの場合にどうするか? ケース1:モダンプロジェクトから UiPath.Core.Browserインスタンスを渡したい。
7 #UiPathFriends #UiFes ケース1:モダンプロジェクトから UiPath.Core.Browserインスタンスを渡したい。 アプリケーション/ブラウザを使用アクティビティ UiElement.GetBrowser()を使う。 ※状況により、事前にUiElement.IsBrowserプロパティで Browserを取得できるか確認すると吉 UiElement.GetBrowser()を使う。
※状況により、事前にUiElement.IsBrowserプロパティで Browserを取得できるか確認すると吉
8 #UiPathFriends #UiFes ケース2:モダンプロジェクトで UiPath.Core.Browserインスタンスを使う。 ライブラリや呼び出し先XAMLファイルからUiPath.Core.Browserが返ってきた場合にどうするか?
9 #UiPathFriends #UiFes ケース2:モダンプロジェクトで UiPath.Core.Browserインスタンスを使う。 「アプリケーション/ブラウザを使用」アクティビティの入力要素プロパ ティでBrowser.Elementプロパティを使う 「アプリケーション/ブラウザを使用」アクティビティの入力要素プロパ ティでBrowser.Elementプロパティを使う
10 #UiPathFriends #UiFes (実は)UiPath.Core.BrowserとUiPath.Core.UiElementは相互に暗黙の変換が可能なので 前述したメソッドやプロパティは省略可能 暗黙の変換 vatUiElement.GetBrowser()と同じ vatUiElement.GetBrowser()と同じ
11 #UiPathFriends #UiFes varWindow = varUiElement.GetTopLevelWindow() varUiElement = New UiElement(varWindow)
を使う。 暗黙変換可能なので、メソッドやコンストラクタは省略可能。 ケース3:Windowインスタンスを...
12 #UiPathFriends #UiFes 設定ファイルにフルセレクター文字列が格納されており、それをUiAutomationのアクティビティ で使う。 例: モダンのUiAutomationアクティビティは原則「アプリケーション/ブラウザを使用」アクティビ ティ配下で使うので、フルセレクター文字列をそのまま入力してもアクティビティ単独では動作し ない。 ケース4:フルセレクター文字列を
モダンプロジェクトで使う。 <html app='firefox.exe' title='UiPath Community Forum' /><webctrl tag='IMG' />
13 #UiPathFriends #UiFes 「アプリケーション/ブラウザを使用アクティビティ」の 統合アプリケーションターゲット-セレクタープロパティに トップレベルセレクターのみを指定→例えば正規表現で抽出 System.Text.RegularExpressions.Regex.Match(in_selector,".*?>").Value 内部のアクティビティは、「アプリケーション/ブラウザ を使用」アクティビティのウインドウアタッチモードに よって指定するセレクターを変える。
ケース4:フルセレクター文字列を モダンプロジェクトで使う。 「アプリケーション/ブラウザを使用」アクティビティの ウインドウアタッチモード 内部のアクティビティのセレクターで指定する内容 アプリケーションインスタンス フルセレクター(またはウインドウセレクター要素にトップレベル、セレクター に部分セレクター) 単一ウインドウ トップレベルを省いた部分セレクター
14 #UiPathFriends #UiFes モダンアクティビティとクラシックアクティビティ クラシック モダン EXCEL ・同一ワークブックを担保す るために UiPath.Excel.Workboo
kApplicationを使う。 ・同一ワークブックを担保す るために UiPath.Excel.Workboo kApplicationを使う。 ・ワークブックのファイル名(フルパス)にて同 一ワークブックを担保。(そもそもエクセルは 同じ名前のワークブックは同時に開くことがで きない) ・Excelアプリケーションスコープ内で使用でき るアクティビティは、「Excelファイルを使用」内 でも使用できる。 ・ワークブックのファイル名(フルパス)にて同 一ワークブックを担保。(そもそもエクセルは 同じ名前のワークブックは同時に開くことがで きない) ・Excelアプリケーションスコープ内で使用でき るアクティビティは、「Excelファイルを使用」内 でも使用できる。
15 #UiPathFriends #UiFes ケース5 モダンプロジェクトで WorkbookApplicationインスタンスを使う。 ライブラリや呼び出し先XAMLファイルからWorkbookApplicationが返ってきた場合にどうするか?
16 #UiPathFriends #UiFes WorkbookApplication.CurrentWorkbook.FullNameでワークブックのフルパスを抽出して渡す。 ケース5 モダンプロジェクトで WorkbookApplicationインスタンスを使う。
17 #UiPathFriends #UiFes あまりスマートな方法がなく…. WorkbookApplicationコンストラクタで生成。 Excelアプリケーションスコープアクティビティを使う。 ケース6 モダンプロジェクトから WorkbookApplicationインスタンスを渡したい
18 #UiPathFriends #UiFes ・UiPath.Core.Browser または UiPath.Core.Windowと、UiPath.Core.UiElementは相互変換が 可能(しかも暗黙での変換も可能)。 →モダンの「アプリケーション/ブラウザを使用」アクティビティで クラシックのアクティビ ティが必要な型の受け渡し、あるいはクラシックアクティビティからの出力の利用が可能。 ・フルセレクター文字列をモダンで扱う場合は、トップレベルのセレクター文字列を抽出して、
「アプリケーション・ブラウザを使用」アクティビティに入力する。内部のアクティビティのセ レクター指定はウインドウアタッチモードによってフルセレクター、部分セレクターを使い分け る。 ・WorkbookApplicationインスタンスを受け取ったら、ファイルパスを抽出して、それをExcel ファイルを使用アクティビティに与える。その逆の、モダンアクティビティだけで WorkbookApplicationインスタンスを生成することは難しいので、WorkbookApplicationコン ストラクタで生成するか、素直にExcelApplicationScopeを使う。 以上、みなさんのモダン・クラシックの相互利用時の参考になればと思います。 まとめ