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

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

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

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

- [構造化データを抽出 (Extract Structured Data)] アクティビティの出力変数には会社名と株式銘柄記号が含まれています。特定の銘柄記号に対応する会社名を返すアクティビティはどれですか。
　└LookUp Rangeはエクセルのセル範囲、Select Itemはコンボ ボックス、Get Row ItemはROWの全項目を選択します。
  - [ ] [範囲内で検索 (LookUp Range)]
  - [ ] [項目を選択 (Select Item)]
  - [x] [データ テーブルを検索 (Lookup Data Table)]
  - [ ] [行項目を取得 (Get Row Item)]

* * *

- 財務部では、REFramework によって請求書を処理するプロセスを自動化したいと思います。各トランザクション終了後にプロセスレポートを内容領域専門家 (SME) に電子メールにて送信する必要があります。この電子メールは財務部部長のメールアカウントから送信される必要があり、このアカウントも人事移動によって変更になる可能性があります。ベストプラクティスに則れば、財務部部長のメールアカウント情報をどこに格納すべきですか。
　└　資格情報なのでOrchestrator や Windows 資格情報ストアを推奨しています。選択肢にあるのOrchestrator
 　　の資格情報なので、Config.xlsxのSettings シートで取得します。Assets シートはCredential以外です。
 　　
 - [x] Orchestrator 資格情報 (Credential) アセットに格納し、Config.xlsx ファイルの
  Settings シートで参照する
 - [ ] Config.xlsx ファイルの Constants シートにメールアドレスを入力する
 - [ ] Orchestrator テキスト (Text) アセットに格納し、Config.xlsx ファイルの Assets シートで参照する
 - [ ] Orchestrator 資格情報 (Credential) アセットに格納し、Config.xlsx ファイルの Assets シートで参照する

* * *

- ステートマシンにおいて、最終ステート(Final State) の特徴は何ですか。
　└　最終ステートにはEntryしかありません。
 - [ ] 最終ステートがトランジションできるのは、別の最終ステートに向けてのみである
 - [ ] 最終ステートには、トランジション (Transitiopns) と終了 (Exit) セクションが含まれる
 - [ ] 最終ステートから最低 1 つのトランジション (Transitiopns) が設定されている必要がある
 - [x] 最終ステートには 1 つのステートが接続されていなければならない

* * *

- REFramework を使用したプロセスは、初期化 (Initialization) ステートでアプリケーション例外により失敗することがあります。初期化ステートが失敗した場合、既定では何が起こりますか。
 └　リトライをするのは、Process Transactionになります。 

 - [ ] Config.xlsx ファイルで最大リトライ回数 (MaxRetryNumber) に指定された回数だけ初期化ステートを再試行する
 - [x] システム例外トランジションが起こった場合、再試行せず、「プロセスを終了 (End Process)」ステートに移る
 - [ ] システム例外トランジションが発生した場合、1 回だけ再試行した後、「プロセスを終了 (End Process)」ステートに移る

 - [ ] キューで最大リトライ回数 (Max # of retries) に指定された回数だけ初期化ステートを再試行する

* * *

- 次の画像を参照して回答してください:
 └　Time outが発生すれば、待ち合わせ関係なくエラーをスローします。
 - [x] ワークフローは 5000 ミリ秒後に次の例外をスローする - 「Find Element - Calculator: Activity timeout exceeded (Find Element - Calculator: アクティビティのタイムアウトが超過しました)」
 - [ ] 例外はスローされず、ワークフローは10000 ミリ秒後に終了する
 - [ ] ワークフローは 10000 ミリ秒後に次の例外をスローする - 「Find Element - SnippingTool: Activity timeout exceeded (Find Element - SnippingTool: アクティビティのタイムアウトが超過しました)」
 - [ ] 例外はスローされず、ワークフローは 15000 ミリ秒後に終了する

* * *

- Web ページ内の要素に設定された [クリック (Click)] アクティビティのプロパティを、画像に示されているように指定しました。「ウィンドウ メッセージを送信」を実行時、セレクターは Web ページ上のいずれの要素にも一致せず無効になります。[クリック] アクティビティが実行されると何が起こりますか。
　└　エラー発生時に実行を継続がtrueになっているとタイムアウトのあと、処理が継続されます。
- [ ] 30 秒後にタイムアウトエラーが発生する
- [ ] 30 秒待ってから Web ページの中心をクリックする
- [ ] 30 秒後に Selector not found (セレクターが見つかりません) エラーが発生する
- [x] タイムアウト後、次のアクティビティの実行に移る


* * *

- [トリガー スコープ (Trigger Scope)] と 3 つの [クリック トリガー (Click Trigger)] アクティビティを使用して 3 つのボタンを監視します。どのトリガーが引かれたかによって異なるアクションが実行されるよう、[アクション (Actions)] セクションに [スイッチ (Switch)] アクティビティを配置しました。[スイッチ] アクティビティの TypeArgument プロパティは文字列 (String) に設定されています。
　└　実際にTrigger Scopeをデバッグして変数argsに何が詰められているか理解してみると良いです。
 
- [ ] Expression: args.TriggerType.FullName
Case 1: Bank
Case 2: Customer Service
Case 3: Reports
- [x] Expression: args.TriggerName
Case 1: Click Trigger Bank
Case 2: Click Trigger Customer Service
Case 3: Click Trigger Reports
- [ ] Expression: args.EventInfo
Case 1: Bank
Case 2: Customer Service
Case 3: Reports
- [ ] Expression: args.equals()
Case 1: Click Trigger Bank
Case 2: Click Trigger Customer Service
Case 3: Click Trigger Reports

* * *

- Orchestrator で実行された REFramework 2021.10 によるプロセスは、Framework\InitAllSettings.xaml にて初期化 (Initialization) ステートでエラーをスローしました。プロジェクトの Config.xlsx の設定は既定値 (Default) になっています。Orchestrator におけるジョブのステートは何ですか。
　└　初期化 (Initialization) ステートでエラーなので失敗して終わりになります。
- [x] 失敗 (Faulted)
- [ ] 中断 (Suspended)
- [ ] 成功 (Successful)
- [ ] 停止 (Stopped)

* * *

- Orchestrator キューと REFramework を使用したプロセスがあります。キューの最大リトライ回数 (Max # of retries) は 3 で Config ファイルに設定された 最大リトライ回数 (MaxRetryNumber) は 0 です。
システム例外が継続的に発生した場合、キューアイテムは何回リトライされますか。
　└　MaxRetryNumberが0なのでOrchestratorの設定（キューの最大リトライ回数）が有効になります。あと回数の数え方が誤解を生みやすくて、+3回リトライするわけじゃなくて、全部で3回試行しますという意味になっています。
 
- [ ] 0
- [ ] 1
- [ ] 2
- [x] 3

* * *

- Web アプリケーションを自動操作するプロセスを作成します。他の要素がロードされていなくても、操作対象の要素が現れた直後にロボットが作業を実行できるようにするには、どのプロパティ値を設定しますか。
　└問題文では「ターゲット アプリが準備完了」は待っていないので注意してください。
　1. NONE … ターゲット要素以外の要素の読み込みを待たずに、アクションを実行する。
　2. INTERACTIVE … 一部のアセットがまだ読み込まれている可能性がありますが、
　　ターゲットアプリが準備完了を示すまで待機する。
　3. COMPLETE … 操作を実際に実行する前に、ターゲット アプリのすべての UI 要素が読み込まれるのを待つ。

- [ ] Timeout (milliseconds) (タイムアウト (ミリ秒)) = 0
- [ ] WaitForReady (準備完了まで待機) = Interactive
- [x] WaitForReady (準備完了まで待機) = None
- [ ] SimulateType (入力をシミュレート) = True

* * *

- チケットとその詳細情報を集めてリストを作成するプロセスを開発しました。正規表現を使用してこのリストをフィルターし、APP3 という特定のアプリケーションに対して作成されたすべてのチケットの ID を取得する必要があります。チケットのリストは String (文字列) 変数として抽出され、チケット ID の形式は < ApplicationName > - < TicketNumber >  で < ApplicationName > が APP3 となり、< TicketNumber >  部分が新しく追加されたチケット ID です。追加された新しいチケットの数に関係なく、すべての有効なチケット ID を認識できるようにするには、2 行目に書かれた正規表現をどのように変更すべきですか。
　└　この辺、正規表現手を動かしてみると良いかと思います。
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264141/da96ae86-1022-e579-1aa9-eadeb549776e.png)

* * *

- Orchestrator ログをもとにプロセスをデバッグする必要があります。ログにはエラーや例外メッセージはありませんが、想定される出力結果と異なり、キューアイテムのトランザクション ステータスが「進行中 (In Progress)」のままの状態です。プロセスの実行が終了し、Orchestrator ログには "Execution Ended" がログされています。何が原因だと考えられますか。

　└　完了しているのにステータスが変更されていないので、Set Transaction Statusが機能していない可能性が高いです。
- [x] [トランザクションのステータスを設定 (Set Transaction Status)] アクティビティを使用してステータスを「成功 (Successful)」または「失敗 (Failed)」に変更していないから何が原因だと考えられますか。
- [ ] Orchestrator ユーザーによってステータスが手動で変更されたから
- [ ] 接続障害により、Orchestrator 内のトランザクション ステータスがまだ反映されていないから
- [ ] レビューワーが手動レビューを実行したためステータスが自動的に変更されたから

* * *

- UI automation で「プロジェクト設定 (Project Settings)」の「アクティビティ設定 (Activity Settings)」と [要素の存在を確認 (Element Exists)] アクティビティを次のように設定しました。要素がロードするものとし、デバッグ モードで [要素の存在を確認] アクティビティが実行される前にどれだけの時間が経過しますか。
　└　Delay Before のデフォルト設定が効きます。
- [x] 200 ミリ秒
- [ ] 300 ミリ秒
- [ ] 10000 ミリ秒
- [ ] 15000 ミリ秒

* * *

- 次の 2 つのデータテーブル (DataTable) に含まれた社員データを統合したいと思います:
それぞれのデータテーブルは、社員名、ID、所在地情報で構成されています。データテーブルは ID 順に並べてあります。表示されている画像のとおりの形式で DataTable 3 を出力するためには、どのアクティビティをどの順序で使用しますか。
　└最初にmergeしてSortの後にRemoveColumnですね。

- [ ] [データ テーブルを結合 (Join Data Table)]、[データ テーブルを並べ替え (Sort Data Table)]、[データ列を削除 (Remove Data Column)]
- [ ] [データ列を削除 (Remove Data Column)]、[データ テーブルを結合 (Join Data Table)]、[データ テーブルを並べ替え (Sort Data Table)]
- [ ] [データ テーブルをマージ (Merge Data Table)]、[データ列を削除 (Remove Data Column)]、[データ テーブルを並べ替え (Sort Data Table)]
- [x] [データ テーブルをマージ (Merge Data Table)]、[データ テーブルを並べ替え (Sort Data Table)]、[データ列を削除 (Remove Data Column)]


* * *

- 12/25/2021 に 5 つのキューアイテムが追加されました。キューアイテムのプロパティに応じて、これらのキューアイテムはどのような順番で処理されますか。

　└期限あり/優先度の高さ/期限が処理順として先に来ます。
 
5：処理期限なし (No deadline)
　優先度 = 高 (Priority = High)
4：処理期限 = 12/25/2021 (Deadline = 12/25/2021)
　優先度 = 低 (Priority = Low)
1：処理期限 = 12/26/2021 (Deadline = 12/26/2021)
　優先度 = 高 (Priority = High)
3：処理期限 = 12/26/2021 (Deadline = 12/26/2021)
　優先度 = 中 (Priority = Normal)
2：処理期限 = 12/27/2021 (Deadline = 12/27/2021)
　優先度 = 高 (Priority = High)

* * *

- コールセンター アプリケーションから問い合わせ電話のデータを取得するプロセスを作成しました。このプロセスは担当者が問い合わせの内容詳細を Excel に入力する作業を支援するように設計されています。担当者は、問い合わせ電話を受けた時点で Attended ロボットを起動します。
ロボットは次の 4 つのサブプロセスによって構成されます:プロセスをバックグラウンドで実行するため、プロパティを既定値 (Default) から変更する必要があるアクティビティを含むサブプロセスはどれですか。
　└　Excel シートをアップロードがフォアグラウンドでないと難しいですね。
- [ ] 1. HTTP 要求を使用してコール ID によって顧客を検索し、名前、住所、電子メール、サポート履歴を取得する
- [ ] 2. 取得された顧客情報を Excel シートに保存する
- [x] 3. Web アプリケーションでその顧客の新しいサポート記録を作成し、Excel シートをアップロードし、フォームを送信する
- [ ] 4. 確認の Microsoft Outlook メールを送信する


* * *

- Web サイトから社員 ID を取得し、employeeID 変数に格納します。各 ID は AHX で始まり、その後に 6 つのランダムな数字が続く 9 - 文字長の文字列 (String) です。この文字列から数字を抽出する必要があります。どの表現を使用しますか。
　└　LastIndexOfとか怪しいんですけど、文字列の何番目が返ってくるだけです。
 - [ ] employeeID.Replace(“”, “AHX”)
 - [ ] employeeID.Substring(6, 3)
 - [ ] employeeID.LastIndexOf("AHX").ToString
 - [x] employeeID.Trim("AHX".ToCharArray)

* * *

- REFramework で作成されたワークフローをデバッグしています。[Invoke InitAllSettings workflow] アクティビティでブレークポイントを設定しました。プロセスをデバッグ中、Executor の表示はこのようになりました。ステップオーバー (Step Over) ボタンが押されると、何が起こりますか。
 　└ステップオーバーは、次のアクティビティに飛びます。
 - [x] Executor は「Invoke InitAllSettings workflow」アクティビティ後の、次のアクティビティを指す
 - [ ] Executor は「InitAllSettings」ワークフロー内部の最初のアクティビティを指す
 - [ ] Executor は「Invoke InitAllSettings workflow」アクティビティで一時停止する
 - [ ] Executor が新しいタブで InitAllSettings ワークフローを開き、各アクティビティをひとつずつ実行する


* * *

- [PDF のページ範囲を抽出 (Extract PDF Page Range)] アクティビティを使用して、PDF ファイルから特定のページを読み取る場合の説明として正しいものはどれですか。

　└　PDFからテキスト取得するアクティビティは複数あるので、区別して理解しましょう。

 - [ ] "Range" = "" が指定された場合、PDF ファイルに含まれたすべてのページからデータを読み込む
 - [x] "<StartPageNumber> - <EndPageNumber>" は、「範囲 (Range)」フィールドに指定できる有効な表現である
 - [ ] パスワード保護された PDF ファイルを読み込むことはできない
 - [ ] このアクティビティの出力値は、読み込まれたすべてのページから抽出されたデータを含む文字列型 (String) 変数である



* * *

- キューを伴う REFramework のディスパッチャープロセスの主な利点は何ですか。

　└　一言でいうと分散処理できる事が利点になる認識です。
 
 - [ ] 各キューアイテムは、そのアイテムを処理するロボットによってキューに追加される
 - [ ] REFramework は既定でキューを作成するため、使いやすい
 - [ ] すべてのデータが類似した形式であることを確認し、単一の Orchestrator キューからデータを読む
 - [x] 複数ソースから抽出したデータを直接キューに追加でき、エラー処理の機能に優れている


* * *

- UiPath ベストプラクティスに則り、(RE) Framework を使用してプロセスを自動化しました。このプロセスには整数型 (Integer) の Orchestrator アセットが多数必要です。
　└　資格情報以外はアセットはAssets シートに記述します。
整数アセットの名前は、Config.xlsx ファイルのどこから参照されるべきですか。
後からレビューする
 - [x] Assets シート
 - [ ] Constants シート
 - [ ] Settings シート
 - [ ] New シート

* * *

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