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

先日、ようやくUiARD（デベロッパー認定資格試験）をPassしました。
この資格は幅広く深い知識を必要とするのですが、認定資格プログラムが2024.1末で
変更になるという事を知り、慌てて受験しました。Uipathの学習成果として
公式サイトの模擬試験について解説したいと思います。
（答案を暗記しても本番試験では無意味なのでご承知おきください）

:::note info
公式アナウンス
　　[日本語版のUiPath認定資格プログラムも2024年1月末をめどに切り替わります。](https://www.uipath.com/ja/learning/certification)
:::

:::note info
なお、学習についてはUipah Academyを手を動かしながら繰り返しました。
　公式サイトにて推奨されているのはこちらのトレーニングです。
　　[推奨トレーニング](https://www.uipath.com/assets/downloads/ard-recommended-training-ja)
　合格点を取るにはこちらも追加学習した方が良いかなと思いました
　　[RPA Developer Advanced (v2021.10)](https://academy.uipath.com/jp/learning-plans/rpa-developer-advanced)
:::

それでは解説をはじめます。なお61問あるので記事を3つに分けます

---------------------------------------

- [コードを呼び出し (Invoke Code)] アクティビティを使用してカスタムソリューションを構築しようと しています。必要な名前空間を呼び出されたコードにインポートするための、最初のステップは何ですか。
  └Invoke CodeでVB.NET または C# コードを同期的に呼び出す場合、名前空間に
   インポートする必要があります。変数パネル、引数パネルの右にあります。
   
   - [ ]  Package Manager を使用してインポートする
   - [x] [インポート (Imports)] パネルを使用してインポートする
   - [ ]  コードセグメントの終わりにインポートする
   - [ ] 「入力引数 (Input Arguments)」プロパティを使用してインポートする
* * *
- REFramework を使用してパフォーマー プロセスを作成しました。キューアイテムのステータスが更新されるのは、どのワークフローですか。
  └GetTransactionData.xamlで処理中に更新、SetTransactionStatus.xamlで成功または失敗に更新します
   - [x] GetTransactionData.xaml と SetTransactionStatus.xaml
   - [ ] SetTransactionStatus.xaml のみ
   - [ ] Process.xaml と SetTransactionStatus.xaml
   - [ ] GetTransactionData.xaml と Process.xaml
* * *


- UiPath Studio で、シンプルかつ直線的なプロセスを設計します。どの Studio ワークフロータイプを使用しますか。
  └解説すら不要だと思いますが、一番基本となるワークフルーはシーケンスです。
  
   - [ ] フローチャート
   - [x] シーケンス
   - [ ] グローバル例外ハンドラー (Global Exception Handler)
   - [ ] ステート マシン
* * *

- ユーザー入力に応じて、製品の技術詳細を取得するプロセスを開発中です。ステップは次のようになります
　1. ユーザーに製品名の入力を求める
　2. 入力された値をオンライン カタログの検索キーワードとして使用する
　3. 構造化された検索結果のリストをスクレイピングする
　 検索結果ページのタイトルは検索キーワードによって動的に生成されます。
　 表示された画像にもとづけば、ロボットが正しいページを正確に検索できるよう、
　 その使用が推奨される方法はどれですか。
  └タイトルが動的だという事なので、ブラウザのセレクターを調整する必要があります
   
   - [ ] 「結果の最大数 (MaxNumberOfResults)」プロパティを各ページに表示される結果数に合わせ、ループを作成する
   - [ ]  [データス クレイピング (Data Scraping)] アクティビティのセレクターを調整する
   - [x]  [ブラウザーにアタッチ (Attach Browser)] アクティビティのセレクターを調整する
   - [ ]  [データス クレイピング (Data Scraping)] アクティビティの「次リンクのセレクター(NextLinkSelector)」プロパティを調整する
* * *

- 「1001」、「1002」とこの順序通りに初期化された List< String > 型の変数、listCustomerID と作業しています。これらの情報にもとづけば、1 行を書き込み (Write Line)] アクティビティの出力結果はどうなりますか。
  └invokecodeですが、augmentsにin/out記載してるので、きちんと成立しています。「1001」、「1002」の後に「1003」が追加され、Reverseで順序が逆転します
  
   - [ ] 1001
 1002
   - [ ] 1001
1002
1003
   - [ ] 1003
   - [x] 1003
1002
1001
* * *

- 複数の [メソッドを呼び出し (Invoke Method)] アクティビティを含むワークフローを変更しています。[メソッドを呼び出し] アクティビティの属性はどれですか。
  └invokeWorkFile、invokeMethod、invokeCodeの使い方を理解すれば正解できると思います。
  
   - [ ] ターゲット タイプかターゲット オブジェクトのいずれかに対し実行する
   - [x] 複数の VB.NET ステートメントを実行する
   - [ ] 入力引数を持つ .xaml ファイルを実行する
   - [ ] 特定のワークフローで同期的に実行する
* * *

- GIT リポジトリを使用して自動化プロジェクトの開発を進めています。同じプロジェクト内の 2 つの類似したワークフローの差を表示したいと思います。
この機能にはどこからアクセスできますか。
  └選択済みと比較以外は同一ワークフローのリビジョン比較です。
   - [ ] ローカルと比較 (Compare with Local)
   - [ ] 最新のものと比較 (Compare with Latest)   
   - [ ] 以前のものと比較 (Compare with Previous)
   - [x] 選択済みと比較 (Compare with Selected)
* * *
- プロセス開発のテストフェーズでタイムアウト エラーが発生しました。プロセスをデバッグしたいと思います。タイムアウトになる前に、どのアクティビティが開始され終了したか把握する必要があります。 このために必要な詳細情報を Orchestrator ログから取得するためには、ログレベルをどのレベルに設定する必要がありますか。
  └Verbose レベルでは、アクティビティの開始と終了の両方のメッセージ、および使用される変数と引数の値が記録されます。
  
   - [x] Verbose
   - [ ] Trace  
   - [ ] Critical
   - [ ] Information
* * *
- REFramework にて Config.xlsx ファイルが読み込まれるのはどのステートとファイルですか。
  └初期化の設定読み込みにてConfig.xlsxを読み込みます。REFrameworkのワークフローを一度確認してもいいかもしれません。
  
   - [ ] ステート: トランザクション データを取得 (Get Transaction Data)	
ファイル: GetTransactionData.xaml	
   - [ ] ステート: トランザクションを処理 (Process Transaction):	
ファイル: Process.xaml	
   - [x] ステート: 初期化 (Initialization)	
ファイル: InitAllSettings.xaml	
   - [ ] ステート: 初期化 (Initialization)	
ファイル: InitAllApplications.xaml	

* * *
- 既定ルールが設定されたワークフロー アナライザー (Workflow Analyzer) を実行したところ、ワークフローの 1 つから次の警告が出されました:
[メッセージをログ (Log Message)] の表示名が複数回定義されています。(Log Message display name is defined many times.) 現在の許容しきい値は 1 です。(Current allowed threshold is 1.) コードに含まれる定義数は 2 です。(Code contains 2.)
この警告の原因は何ですか。
  └警告類はいろいろ実機確認をしてみるとよいかと思います。名前の重複時のエラーになります。
  
   - [x] ワークフローには既定の名前を持つ 2 つの [メッセージをログ (Log Message)] アクティビティが使用されている
   - [ ] ワークフローには既定の名前から変更された [メッセージをログ (Log Message)] アクティビティが 2 つ使用されている
   - [ ] ワークフローには [メッセージをログ (Log Message)] アクティビティが 3 つ以上使用されている
   - [ ] ワークフローには 2 つの [メッセージをログ (Log Message)] アクティビティがあり、これは許可されていない
* * *

- REFramework を編集して直線型プロセスを自動化したいと思います。REFramework のドキュメンテーションによって推奨されるアクションはどれですか。
  └トランザクションナンバーが1の場合だけ処理されるような実装をします。
  
   - [ ] Config.xlsx ファイルで MaxRetryNumber を 1 に設定する
   - [ ] Config.xlsx ファイルで MaxRetryNumber を 0 に設定する
   - [x] GetTransactionData ワークフローで、in_TransactionNumber = 1 の場合のみ out_TransactionItem に値を代入する
   - [ ] GetTransactionData ワークフローで out_TransactionItem = Nothing を代入する
* * *
- Orchestrator キューを伴う REFramework を使用したプロセスを開発しました。キューの各トランザクション アイテムのステータスが「成功 (Successful)」に更新されるのはどのステートですか。
  └成功or失敗ステータスの更新はProcess Transactionの中のSetTransactionStatusで行います。

   - [ ] トランザクションを処理 (Process Transaction) のみ
   - [ ] 初期化 (Initialization) とトランザクション データを取得 (Get Transaction Data)
   - [ ] トランザクション データを取得 (Get Transaction Data) のみ
   - [ ] 初期化 (Initialization) とトランザクションを処理 (Process Transaction)

* * *
- 請求書からデータを読み込み、そのデータを別のシステムに入力する必要があります。各請求書は個別に処理され、処理順序は特に指定がありません。このオートメーションに最も適したプロセスデザインはどれですか。
  └REFrameworkで基本となる型です。各キューをそれぞれ個別に処理する動きです。
   - [ ] ライブラリ
   - [ ] 直線型プロセス
   - [ ] 反復処理型プロセス
   - [x] トランザクション型プロセス

* * *
- 「ウィンドウ メッセージを送信 (SendWindowMessages)」と「入力をシミュレート (SimulateType)」メソッドの違いは何ですか。
 └ウィンドウ メッセージを送信\/入力をシミュレート\/ハードウェアイベント（デフォルト）を覚えましょう
   - [ ] 「ウィンドウ メッセージを送信」は 80% のアプリケーションと互換性がある、
「入力をシミュレート」は 100% のアプリケーションと互換性がある

   - [x] 「ウィンドウ メッセージを送信」はホットキーをサポートする、
「入力をシミュレート」はホットキーをサポートしない

   - [ ] 「ウィンドウ メッセージを送信」は入力フィールド内を自動消去する、
「入力をシミュレート」は入力フィールド内を自動消去しない

   - [ ] 「ウィンドウ メッセージを送信」はバックグラウンドで動作しない、
「入力をシミュレート」はバックグラウンドで動作する
* * *

- 請求書からいくつかのフィールドを抽出する PDF オートメーションを使用したワークフローを作成しました。次の画像に表示されたセレクターを使用して請求書番号を抽出します:同じ請求書に含まれる他のフィールドにも使用できるようにセレクターを微調整する必要があります。セレクターの表現として正しい例はどれですか。(FieldName は抽出されるフィールド名を表す文字列型 (String) 変数)
 └titleは固定、{{FieldName}}は置き換え文字にて可変とするのが正しい（最適）例になります。
 
* * *

- [リトライ スコープ (Retry Scope)] アクティビティの「条件 (Condition)」に使用できるアクティビティはどれですか。
 └使えるアクティビティが限定的なのでよく覚えておいてください。

   - [x] [True か確認 (Check True)]
   - [ ] [要素が出現したとき (On Element Appear)]
   - [ ] [子要素を探す (Find Children)]
   - [ ] [ファイルの存在を確認 (File Exists)]

* * *

- マウスを使ってホバーした時のみ表示される要素をクリックする必要があるプロセスを開発しています。この要素は既定のクリック設定では表示されません。[クリック (Click)] アクティビティに設定された入力メソッドは「ハードウェア イベント (Hardware Events)」です。この要素をクリックするために設定すべきプロパティはどれですか。
 └Smoothを実機で試すと理解できると思います。ちなみに無効な～はSimulate系でしか効果がありません。
   - [ ] 無効な場合でも動作を実行 = True (AlterIfDisabled = True)
   - [ ] カーソルの動きの種類 = Instant (CursorMotionType = Instant)
   - [x] カーソルの動きの種類 = Smooth (CursorMotionType = Smooth)
   - [ ] 無効な場合でも動作を実行 = False (AlterIfDisabled = False)

* * *

- 次の画像に説明されるプロセスを、 ワークフロー アナライザー (Workflow Analyzer) を使用して確認します:
 └明らかに無限ループなので、アナライザーを知らなくてもわかるかもしれません。

   - [ ] Main の第 2 レイヤーでフローチャート ’Main Flowchart’ が使用されています (Flowchart 'Main Flowchart' is used in a secondary layer in Main)
   - [x] フローチャート Main Flowchart 内に Counter < 5 アクティビティで始まる無限ループの可能性を検出 (Potential infinite loop detected in Flowchart 'Main Flowchart' starting with Activity Counter < 5)
   - [ ] 変数、Counter が設定されたパターン、^(dt_)?([A-Z]|[a-z])+([0-9])*$ に則っていません (Variable Counter does not respect the set pattern ^(dt_)?([A-Z]|[a-z])+([0-9])*$ )
   - [ ] [代入 (Assign)] アクティビティの名前が既定のままです (Activity Assign has a default name)


* * *
- [トライキャッチ (Try Catch)] アクティビティ内部の Catches ブロックには次のアクティビティが含まれています:
[トライキャッチ] アクティビティのプロパティは次のように設定されています:
[リトライ スコープ (Retry Scope)] アクティビティのプロパティは次のように設定されています:
[要素の存在を確認 (Element Exists)] アクティビティのプロパティは次のように設定されています:
「変数 (Variables)」パネルは次を表示しています:
これらの情報にもとづけば、ターゲットとなるアプリケーションが開かれていない場合、Counter 変数の値はどうなりますか。
 └Retry Scopeのリトライ継続条件を正しく覚えましょう。loop系とちょっと挙動が違うので
   - [ ] 1
   - [ ] 2
   - [ ] 3
   - [x] 4

* * *
- UI Explorer を使用して要素を認識しようとしています。セレクターを記述後、検証 (Validate) ボタンが次のように表示されました:
 └実装していると良く遭遇するかもしれません。再検証が必要な時にこの表示が出ます。
   - [x] セレクターは修正され、再検証できる状態である
   - [ ] セレクターの検証結果にエラーが出された
   - [ ] セレクターの検証結果に警告が出された
   - [ ] セレクターに検証時にアクセスすることができなかった


* * *

①[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)