UiPath Studio には、人間が行った操作をそのまま記録し、アクティビティによる操作に変換する機能があります。これをレコーディング機能といいます。レコーディング機能には、次の4つのモードがあります。
- ・Basic
- ・Desktop
- ・Web
- ・Citrix
本記事では、レコーディング機能と、Basic レコーディングと Desktop レコーディングの違いについて説明します。
レコーディング機能とは
まずレコーディング機能を使って、起動済みのメモ帳に「ほげほげ」と入力するワークフローを作成してみましょう。
レコーディング機能によるワークフロー作成手順:
- 1. UiPath Studio で新規にブランクのプロジェクトを作成します。
- 2. メモ帳を起動します。(ワークフローから起動することもできますが、説明が煩雑になるのを避けるため、ここでは手動で起動します。)
- 3. UiPath Studio の Design リボンにある Recording ボタンから Basic を選び、Basic Recording ウィンドウを表示します。
- 4. Basic Recording ウィンドウの Record ボタンを押下し、レコーディングを開始します。
- 5. 起動済みのメモ帳のテキスト入力部をクリックし、表示された Type the desired value ウィンドウに ほげほげ と入力して Enter キーを押下します。
- 6. ESC キーを押下してレコーディングを終了します。
- 7. Basic Recording ウィンドウの Save & Exit ボタンを押下し、レコーディングした操作をワークフローに反映します。
このワークフローを実行すると、メモ帳に ほげほげ と入力されます。
Basic レコーディング と Desktop レコーディングの違い
上記の手順3.では Basic を選択することによりBasic レコーディングで手順を記録しましたが、ここで Desktop を選択して Desktop レコーディングを行っても同じようにワークフローを作成できます。これらは同じように動作しますが、ワークフローの内容は異なります。
これらのワークフローを比べてみましょう。
Basic レコーディングで生成したワークフロー
Basic レコーディングで生成したワークフローには、TypeInto アクティビティがひとつだけ配置されています。また、この TypeInto アクティビティの Target\Selector プロパティに設定されているセレクターは次のようになっています。このように、トップレベルウィンドウを含む形式のセレクターを完全セレクターといいます。
(TypeInto アクティビティに設定された完全セレクター)
<wnd app='notepad.exe' cls='Notepad' title='無題 - メモ帳' />
<wnd aaname='水平' cls='Edit' />
<ctrl name='テキスト エディター' role='editable text' />
Desktop レコーディングで生成したワークフロー
一方で Desktop レコーディングで生成したワークフローは、WindowScope アクティビティの中に TypeInto アクティビティが入った形となっています。
また、この WindowScope アクティビティの Selector プロパティと、TypeInto アクティビティの Target\Selector プロパティに設定されているセレクターはそれぞれ次のようになっています。この TypeInto アクティビティに設定されたセレクターのように、トップレベルウィンドウを含まないセレクターを部分セレクターといいます。
(WindowScope アクティビティに設定されたセレクター)
<wnd app='notepad.exe' cls='Notepad' title='無題 - メモ帳' />
(TypeInto アクティビティに設定された部分セレクター)
<wnd aaname='水平' cls='Edit' />
<ctrl name='テキスト エディター' role='editable text' />
上記のように、Desktop レコーディングによるふたつのアクティビティのセレクターを合わせると完全セレクターとなり、Basic レコーディングによる TypeInto アクティビティの完全セレクターと同一になります。部分セレクターは、UI要素の位置を上位のセレクターが選択した位置から相対的に指定する内容となります。
WindowScope アクティビティの中には、このウィンドウに対する操作を行うアクティビティを複数入れることができます。これらのアクティビティには部分セレクターを設定すればよく、WindowScope アクティビティに設定されたセレクターと合わせて操作対象とする UI 要素を特定することができます。
まとめ
あるUI要素をひとつだけ操作する場合には、Basic レコーディングにより単純な形式のワークフローを生成することができます。しかし、複数のUI要素を操作する場合には、各アクティビティで完全セレクターを使用する形となり、ワークフローの実行速度は遅くなります。
一方で、Desktop レコーディングで生成されたワークフローは、ある(ひとつの)ウィンドウ上に配置された複数の UI 要素に対する選択操作が最適化されており、より安定して動作します。また、各アクティビティで操作対象とするUI要素へのセレクターにおいて、共通の親UI要素を指す部分がWindowScopeアクティビティのセレクターに括り出されるため、生成されるワークフローはより保守しやすい形となります。