UiPath Advanced RPA Developer 模擬試験の解説_2024.1末までに認定資格を目指している方へ 2/3 

こちらの記事の続きになります。

[UiPath Advanced RPA Developer 模擬試験の解説_2024.1末までに認定資格を目指している方へ　1/3](https://qiita.com/kankigyo2/items/ee4559563281399113a2)

それでは解説をはじめます。20～40/61問目になります。
---------------------------------------

- 開発終了後、UAT (ユーザー受入テスト) 中にアプリケーション内のある UI 要素に対するセレクターに変更があったことが確認されました。このためプロセスがエラーになり、予想どおり実行が失敗します。エラーをデバッグし、問題を解決するため、UiPath が推奨する対処法を正しく示してください。説明: ドロップダウンリストから各ステップが実行されるべき順番を示す数字を選択してください。
　└以外と迷うかもしれませんが、4が決まれば逆算的に回答できると思います。
   
　2：例外の原因となっているセレクターを更新し、動的で安定したセレクターにする
　4：デバッグ モードで実行し、プロセスが例外を発生することなく実行されることを確認する
　1：ログを確認してエラーの発生個所を特定した後、例外の原因になっているアクティビティに
 　　　ナビゲートする
　3：セレクターを検証し、アクティビティにブレークポイントを追加する

* * *

- ユーザーがマシンを使用中でも、ユーザーのマシン上で実行することができるオートメーションを開発しています。このタイプのプロセスで避けるべき特徴は次のどれですか。
　└ハードウェア イベントは避けるべきですね。例えばclickなどでユーザーとオートメーション
 間で処理の取り合いが発生します

   - [ ] トリガー (Trigger) とイベントを監視 (Monitor Events)
   - [ ] Orchestrator アクティビティ
   - [x] ハードウェア イベント (Hardware Event)
   - [ ] API コール

* * *

- すべてのタイプの入力メソッドを許容するアプリケーションに対して [文字を入力 (Type Into)] アクティビティを使用しています。最速の実行速度を得るために有効にするべきプロパティはどれですか。
└入力をシミュレート、ウィンドウメッセージを送信、ハードウェアイベント間の比較になります。入力をシミュレートが一番早いです。

   - [x] 「入力をシミュレート (SimulateType)」
   - [ ] 「フィールド内を削除 (EmptyField)」
   - [ ] 「ウィンドウメッセージを送信 (SendWindowsMessages)」
   - [ ] 「入力前にクリック (ClickBeforeTyping)」

* * *
- Excel ファイルからデータを読み取り、データテーブル (DataTable)、dtEmployee に格納します。Excel に格納されたデータは次の画像のような構造です。
└ ( )の位置と文字はシングルクォーテーションで囲むことを覚えてください。後は一般的はSQL構文の理解があれば理解できると思います。

   - [ ] dtEmployee.Select("[Department]='IT' OR [Department]='Finance' AND [Salary] < 30000")
   - [ ] dtEmployee.Select("[Department]='IT' OR [Department]='Finance' OR [Salary] < 30000")
   - [x] dtEmployee.Select("([Department]='IT' OR [Department]='Finance') AND [Salary] < 30000")
   - [ ] dtEmployee.Select("([Department]='IT' AND [Department]='Finance') AND [Salary] < 30000")

* * *
- 「dt_Reports」という名前のデータテーブル (DataTable) にデータを 1 行追加するために、[データ行を追加 (Add Data Row)] アクティビティを使用しました。ところが UiPath Studio はデータテーブルが初期化されていないため、実行時に「Add Data Row: Object reference not set to the instance of an object (Add Data Row: オブジェクトの参照がオブジェクトのインスタンスに設定されていません)」例外をスローします。
このエラーを修正するため、[データ行を追加 (Add Data Row)] アクティビティの前に配置された [代入(Assign)] アクティビティに何を設定しますか。
└ DataTableがインスタンス生成されていないので、Data RowがAddできない状態です。
   - [ ] Assign dt_Reports = New List(Of DataRow)
   - [ ] Assign New System.Data.DataTable = dt_Reports
   - [x] Assign dt_Reports = New System.Data.DataTable
   - [ ] Assign dt_Reports = New System.Data.DataRow

* * *
- １台の Attended ロボットでバックグラウンド プロセスの自動化を図っています。バックグラウンド プロセスの特徴は何ですか。
└ 消去法で回答しても良いと思います。バックグラウンドは対話型アクティビティが禁忌になります。

   - [ ] 1 台のロボットが対話型の UI automation アクティビティをフォアグラウンドから
　　　　　バックグラウンドにトランジションすることができる
   - [ ] 1 台のロボットで、[クリック (Click)] と [文字を入力 (Type Into)] アクティビティを
   　　　使用するバックグラウンド プロセスを同時に実行できる
   - [ ] 1 台のロボットが同時に最大 2 つのバックグラウンド プロセスを実行できる
   - [x] バックグラウンド プロセスは、[フォアグラウンドを使用 (Use Foreground)] 
   　　　アクティビティの助けによりフォアグラウンドにトランジションできる

* * *
- Web サイトからデータをスクレイピングし、次の 3 つの変数に格納します: FirstName, LastName, City。その後プロセス内の別のワークフローにこのデータを渡す時、この 3 つの文字列型 (String) 変数を固定サイズデータ構造、UserData に格納します。ベストプラクティスにおいて使用が推奨されるデータ構造と代入式はどれですか。
└ 型はString、固定サイズデータ構造ということなので配列型が最適だと考えられます。

   - [ ] UserData のデータ型: Object[]
UserData = {FirstName, LastName, City}
   - [ ] UserData のデータ型: List<Object>
UserData = New List(Of Object) ({ FirstName, LastName, City })
   - [x] UserData のデータ型: String[]
UserData = {FirstName, LastName, City}
   - [ ] UserData のデータ型: List<String>
UserData = New List(Of String) ({ FirstName, LastName, City })

* * *
- 次の画像を参照して回答してください:
この画像によると、プロセス実行中に Orchestrator に送信されるログのレベルはどのレベルですか。
└ Informationが選択されているので、Informationおよびそれより高レベルのログが対象になります。

   - [ ] Information のみ
   - [x] Information 以上
   - [ ] Trace 以上
   - [ ] Verbose と Information およびそれ以上

* * *
- Orchestrator キューと動作するプロジェクトを開発しました。キューアイテム タイプのオブジェクトには、2 つの ItemInformation 値があります。どうやってこの変数から、各 ItemInformation フィールド値を抽出しますか。
└ SpecificContentを利用してキューの中身を取り出します。利用頻度の高いプロパティだと思います。

   - [ ] 各 ItemInformation フィールドに、[アセットを取得 (Get Asset)] アクティビティを使用する
   - [ ] 各 ItemInformation フィールドに、[トランザクション アイテムを取得
    (Get Transaction Item)] アクティビティを使用する
   - [x] SpecificContent プロパティを使用し、フィールド名をキー (Key) として提供する
   - [ ] [キュー アイテムを追加 (Add Queue Item)] アクティビティで各フィールドに出力変数を代入する

* * *
- REFramework の Process.xaml ファイルでアプリケーション レベルの予期しないエラーが発生しました。既定でキャッチされる例外のタイプはどれですか。
└ REFrameworkで扱うExceptionは、BusinessRuleExceptionかSystem.Exceptionの2択になりますが、BusinessRuleExceptionは、個別実装すると思うので、System.Exceptionが回答になります。

   - [ ] System.NullReferenceException
   - [ ] System.ApplicationException
   - [ ] UiPath.Core.BusinessRuleException
   - [x] System.Exception


* * *
- 次の資料に表示されている通り、[リトライ スコープ (Retry Scope)] アクティビティを作成しました。
シーケンスが実行された時、[要素の存在を確認 (Element Exists)] アクティビティに定義された要素は既に存在します。「更新 (Refresh)」ボタンをクリックしても Web ページは更新されません。この「出力 (Output)」パネルには何が表示されますか。
└ リトライ スコープ (Retry Scope)のConditionを確認してみてください。

   - [ ] Retry Scope: Action failed to execute as expected.
Refresh button was clicked
   - [ ] Retry Scope: Action failed to execute as expected.
   - [ ] Refresh button was clicked
Refresh button was clicked
   - [x] Refresh button was clicked


* * *
- 部分セレクターを伴う [クリック (Click)] アクティビティが別のアクティビティの中に入れ子状態で配置されています。このワークフローで [クリック (Click)] アクティビティを含んでいるアクティビティはどのアクティビティですか。
└ 部分セレクターなので[ウィンドウにアタッチ (Attach Window)]・[アプリケーションを開く (Open Application)]で利用するアクティビティになります。

   - [ ] [要素を探す (Find Element)]
   - [x] [ウィンドウにアタッチ (Attach Window)]
   - [ ] [Excel アプリケーション スコープ (Excel Application Scope)]
   - [ ] [分岐 (Pick Branch)]

* * *
- 画像に表示されているように ACME ウェブサイトからレポートをダウンロードします。Month ドロップダウン リストで、どの月が選択されても同じセレクターが使用できるようにするには、このセレクターにどのような変更を加えますか。
└ {{MonthName}}で月を可変にすることで同じセレクターでハマるように定義する事ができます。

* * *
- 複数のネイティブ PDF ファイルからすべてのテキストを抽出するプロセスを作成しています。PDF ファイル全体からテキストを抽出するために使用するアクティビティはどれですか。
└ PDFから全テキストを取得するアクティビティがGet Full TextとRead PDF TextとRead PDF With OCRになります。一部のテキストを取得するアクティビティを合わせて覚える必要があります。

   - [ ] [OCR で PDF を読み込み (Read PDF with OCR)]
   - [x] [PDF のテキストを読み込み (Read PDF Text)]
   - [ ] [テキストを取得 (Get Text)]
   - [ ] [OCR でテキストを取得 (Get OCR Text)]


* * *
- 次の画像を参照して回答してください:メモ帳 (Notepad.exe) が開かれていない状態でオートメーションが実行された場合、「出力 (Output)」パネルにはどんなログメッセージが表示されますか。
└ セレクタが対象を検知できないのでSelectorNotFoundExceptionが出力されます。

   - [ ] ArgumentException
   - [ ] Exception
   - [ ] Try
   - [x] SelectorNotFoundException

* * *
- ステートマシンを使用したプロセスを作成します。[ステート (State)] アクティビティ内部における各セクションの正しい実行順序を指定してください。
└ Entry　→　Exit　→　Transition　　→　次のステートの順になります。

　2：Exit セクションに指定されたアクティビティが実行される
　4：トランジション先のステートに指定されたアクティビティが実行される
　1：Entry セクションに指定されたアクティビティが実行される
　3：トランジション トリガーアクション (Transition Trigger Action) に指定されたアクティビティが実行される

* * *
- 他のデベロッパーと協力するため、UiPath Studio で GIT ソース管理を使用してプロジェクトの開発を行っています。ローカルマシンでワークフローを編集した後、「コミットしてプッシュする (Commit and Push)」ボタンを選択しました。
└ 現在の変更とか現在のバージョンでミスリードを誘いますが、
　単純にローカルにcommit、リモートにPushされるだけです。

   - [ ] ローカルでの変更がリポートリポジトリにコミットされその後リモートリポジトリにプッシュされる
   - [ ] 現在の変更がコミットされ、ローカルリポジトリにプッシュされる
   - [x] ローカルでの変更がローカルリポジトリにコミットされその後リモートリポジトリにプッシュされる
   - [ ] 現在のバージョンがリモートリポジトリにコミットされローカルリポジトリにプッシュされる

* * *
- Orchestrator キューを伴う既定の REFramework テンプレートを使用する利点は何ですか。
└ 消去法でスクリーンショットになります。オーケストラ上に格納できるとかなのかと理解しました。
   - [x] 失敗したキューアイテムに対して関連するスクリーンショットの場所情報を更新する
   - [ ] トランザクション アイテムに対し、必ず「成功 (Successful)」または
   「破棄済み(Abandoned)」ステータスを指定する
   - [ ] ビジネス例外の発生後マシン上で開かれているすべてのアプリケーションを強制終了する
   - [ ] 複数のキューから異なるデータを同時に読み込む

* * *
- UiPath Studio 2021.10 で新しい REFramework プロジェクトを開発し、Config.xlsx で MaxConsecutiveSystemExceptions の値を 2 に変更しました。Status = Failed と ErrorType = Application となるトランザクション アイテムをプロセスが終了する前にいくつ処理できますか。
└ 製品Ver2020.10の追加機能ネタになります。
   - [ ] 0
   - [ ] 1
   - [x] 2
   - [ ] 3

* * *
- Dictionary (ディクショナリ) を反復処理して、各 key (キー) に対応する value (値) を出力するプロセスを作成します。Dictionary を反復処理できるアクティビティはどれですか。
└ ループ系はFor EachかForEachRowですが、DictionaryなのでFor Eachになります。
   - [ ] [コレクションから削除 (Remove from Collection)]
   - [ ] [子要素を探す (Find Children)]
   - [ ] [項目を選択 (Select Item)]
   - [x] [繰り返し (コレクションの各要素) (For Each)]

* * *

①[UiPath Advanced RPA Developer 模擬試験の解説_2024.1末までに認定資格を目指している方へ 1/3 ](https://qiita.com/kankigyo2/items/ee4559563281399113a2)
②[UiPath Advanced RPA Developer 模擬試験の解説_2024.1末までに認定資格を目指している方へ 2/3 ](https://qiita.com/kankigyo2/items/effe2bcd8df01bb3c6a2)
③[UiPath Advanced RPA Developer 模擬試験の解説_2024.1末までに認定資格を目指している方へ 3/3 ](https://qiita.com/kankigyo2/items/182f2e6750d9a39c91b2)

以上です。ご精読いただき、ありがとうございました。
![UiPath Certified Advanced RPA Developer_rgb.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264141/444db578-da1b-7753-f471-28128fbc332a.png)