UiRPA(アソシエイト資格試験)の模擬試験の答えと解説　No.1~No.10

UiPath RPA アソシエイト資格試験についての試験対策で公式模擬試験を受けましたが、間違えた部分の解説はしてくれないので、調べる必要がありました。

わざわざ該当のプログラムを見に行くのがとても非効率だな。。。
これ受けた人みんな思っているよな。。。
これを機にアウトプットしてみようとのことで記事を書くことにしました。

今後UiPathのアソシエイト資格を取りたいと思った方が効率よく模擬試験の間違えた問題のフォローができるようにと、解説を簡潔にまとめようと思います。解説が不十分すぎる！という方はリンク先の公式ドキュメントを熟読ください。

マークダウン記法に慣れていないので見やすくなるかわかりませんが、僕も合格するために頑張って書いていきます！！早速、始めます！

### No.1 Attendedロボットが持つ機能は次のうちどれですか

1. Orchestrator の共有フォルダーからプロセスを手動で起動できる
2. Orchestrator からプロセスの実行をスケジュールできる
3. UiPath Assistant またはコマンドプロンプトからプロセスを起動できる
4. 画面がロックされた状態でもプロセスを続行できる

<details><summary>答えを見る</summary>

**3.UiPath Assistant またはコマンドプロンプトからプロセスを起動できる**

表に簡単にまとめました。

| | Atendedロボット | Unattendedロボット |
|:-:|:-:|:-:|
|最適な用途|個々のユーザーによる、小規模で反復的な作業の実行支援|長いプロセスまたはオートメーションの実行。人間の介入は不要|
|動作の仕組み|ユーザー、または特定のユーザーイベント（例：入電）によりプロセスをトリガー| ユーザーに依存せず、Orchestratorで制御してプロセスをトリガー。 
|動作する場所|ユーザーが日常業務を実行するのと同じマシン|Orchestratorに接続されている任意のマシン
起動方法|UiPath Assistant コマンドプロンプト|Orchestrator

公式ドキュメント：[AttendedとUnattendedロボット](https://docs.uipath.com/robot/lang-ja/docs/attended-vs-unattended)

</details>

### No.2 このプロセスで、人による介入を必要とするステップはいくつありますか。

顧客が支払い残高額を確認するためにコールセンターに問い合わせたとします。次のユースケースを例に挙げます。

1. 顧客がコールセンターの担当者に顧客IDを提供する
2. 担当者が顧客IDをウェブアプリケーションに入力する
3. ロボットがウェブアプリケーションからデータをスクレイピングする
4. ロボットが計算を実行する
5. コールセンター担当者が電話にて顧客に支払い残高額を提供する

<details><summary>答えを見る</summary>

**3つ（1,2,5）**

選択肢をよく見たらすぐわかりますね。
顧客→人
担当者→人
コールセンターの担当者→人

**問題文、選択肢をよく読むこと**で難なく正解できると思います。

</details>

### No3 UiPath で実装が可能な自動化のタイプはどれですか。

1. Attended、Attended と Unattended の組み合わせのみ
2. Unattended のみ
3. Attended と Unattended の組み合わせ、Unattended のみ
4. Attended、Attended と Unattended の組み合わせ、Unattended

<details><summary>答えを見る</summary>

**4.Attended、Attended と Unattended の組み合わせ、Unattended**

UiPathはすべての組み合わせで実装することが可能です。

</details>

### No.4 ワークフロー開発に使用する UiPath プラットフォームのコンポーネントはどれですか。

1. UiPath Studio
2. UiPath Orchestrator
3. UI Explorer
4. UiPath Agent

<details><summary>答えを見る</summary>

**1. UiPath Studio**

それぞれの役割を整理しましょう。

~~UiPath Agent~~ → **UiPath Assistant**（これは、現在のUiPath Assistantのこと）
作ったプロセスを実行するためのツールです。

**UiPath Orchestrator**
複数のロボット・プロセスを一元管理するためのツールです。

**UiPath Studio**
開発ツールです。UiPath StudioXよりも、開発寄りの難しい設計ができる。

**UI Explorer**
ウェブページやアプリケーションの、ボタンやテキストボックスといった構成要素を把握し、要素を特定して選択する（＝セレクターを設定する）ためのツールです。

</details>

### No.5 UiPath ロボットと UiPath Orchestrator は、どのように動作しますか。

1. Windows 認証資格を入力せず、Attended ロボットを UiPath Orchestrator に接続できる
2. Unattended ロボットは、Windows ユーザー名がなくても UiPath Orchestrator に接続できる
3. UiPath Orchestrator は、UiPath ロボットに対してアップロードされたキューアイテムを処理する
4. アクティブまたは待機中のジョブが割り当てられていても UiPath ロボットを削除できる

<details><summary>答えを見る</summary>

**1.Windows 認証資格を入力せず、Attended ロボットを UiPath Orchestrator に接続できる**

それぞれ整理しましょう。

**キュー**とは、無制限にアイテムを保持できる収納機能です。
UiPath ロボットに対してではなく、UiPath Orchestrator に対してアップロードするものですので、誤りです。

Unattended ロボット を **UiPath Orchestrator に接続するためには**、
「**マシン名（Windows ユーザー名）**」「Orchestrator URL」「マシンキー」が必要なので誤りです。

Robot を Orchestratorに接続するのに、下記の3つの方法があります。

・標準認証
・ハイブリット認証
・セキュリティで保護された認証

公式ドキュメント:[Robot を Orchestrator に接続する](https://docs.uipath.com/orchestrator/lang-ja/docs/connecting-robots-to-orchestrator)

ロボットを削除できるのは、ロボットに保留中またはアクティブなジョブが割り当てられていない場合のみですので誤りです。

公式ドキュメント:[ロボットを管理する](https://docs.uipath.com/orchestrator/lang-ja/docs/managing-robots-classic-folders)

</details>

### No.6 開発中、ある1つのアクティビティにてブレークポイントを有効にしました。その後、パッケージを UiPath Orchestrator 2020.10 にパブリッシュしました。プロセスが UiPath Robot からUnattended モードで実行された場合、どのような動作が予想されますか。

1. プロセス実行中ブレークポイントによる例外エラーが発生する。
2. ブレークポイントはプロセスを無期限停止させる。
3. ブレークポイントはプロセスの実行に影響しない。
4. ブレークポイントによりプロセス実行中にロボットがクラッシュする。

<details><summary>答えを見る</summary>

**3. ブレークポイントはプロセスの実行に影響しない。**

**ブレークポイント**
ワークフロー内に印をつけて実行を一時停止することができる機能です。
印を付けたアクティビティの直前までワークフローが実行され、その後、一時停止します。
一時停止することで、その時点での変数の値などを確認することができます。

ブレークポイントは、**デバッグモードで実行した場合にのみ**、機能します。通常通り実行した場合や、Unattended モードで実行した場合には機能しません。

</details>

### No.7 変数のスコープが変更できる UiPath Studio パネルはどれすか。

1. [プロジェクト (Project)] パネル
2. [変数 (Variables)] パネル
3. [アウトライン (Outline)] パネル
4. [ローカル (Locals)] パネル

<details><summary>答えを見る</summary>

**2.[変数 (Variables)] パネル**

この問題来るたびに誤字が気になります(笑)

**変数のスコープ**
変数のスコープとは、変数の適用範囲のことで、このスコープを設定することで、どの範囲で変数を使用することができるか定義することができます。

変数のスコープを広く設定すると、変数値の参照・変更の箇所を把握しにくくなります。各変数には可能な限り狭いスコープを設定しましょう。

公式ドキュメント:[ユーザーインターフェース](https://docs.uipath.com/studio/lang-ja/docs/the-user-interface)

それぞれの選択肢を整理しましょう。

[プロジェクト (Project)] はプロジェクトレベルでアクティビティのプロパティを設定する項目ですので誤りです。

[変数 (Variables)] パネルは変数を管理する項目ですので正解です。

[アウトライン (Outline)] パネルは現在のワークフローと利用可能なすべてのノードの階層を表示しますので誤りです。

[ローカル (Locals)] パネルはデバッグする際に使用するデバッグパネル内にある項目ですので誤りです。
公式ドキュメント:[ローカルパネル](https://docs.uipath.com/studio/lang-ja/docs/the-locals-panel)

</details>

### No8.変数と引数の違いは何ですか。

1. 変数には必ず方向がある。引数は変数値に代入することができる。
2. 変数は1つのワークフロー内部のアクティビティ間でデータを受け渡すために使用される。引数はワークフローファイル間でデータを受け渡すために使用される。
3. 変数は必ず引数値に代入される必要がある。引数には必ず方向がある。
4. 変数はワークフローファイル間でデータを受け渡すために使用される。引数は1つのワークフロー内部のアクティビティ間でデータを受け渡すために使用される。

<details><summary>答えを見る</summary>

**2.変数は1つのワークフロー内部のアクティビティ間でデータを受け渡すために使用される。引数はワークフローファイル間でデータを受け渡すために使用される。**

**引数とは**
プロジェクト間でデータの受け渡しをする場合に使用するものです。データを動的に格納して渡すので、広い意味では変数に似ています。変数はアクティビティ間でデータを渡しますが、引数はオートメーション間でデータを渡します。

**引数の方向**
引数には3つの種類（方向、という言葉で表現されている）があります。

・[入力 (In)]
他のワークフローから値を受け取る場合に使用する。
・[出力 (Out)]
他のワークフローに値を受け渡す場合に使用する。
・[入力/出力 (In/Out)]
他のワークフローから値を受け取り、処理後の値を受け渡す場合に使用する。

選択肢を整理しましょう。

1. 変数には方向はありませんので誤りです。

2. 説明の通りで正しいです。

3. 変数は必ず引数値に代入されるものではなく、値を自由に設定することができますので誤りです。

4. 変数と引数の説明が逆ですので誤りです。

公式ドキュメント：[引数の管理](https://docs.uipath.com/studio/lang-ja/docs/managing-arguments)

</details>

### No.9 次のような自動化プロセスを作成しました

Main.xaml ファイルにはこのようなワークフローがあります:  
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/4be87709-b79a-d0cc-dabe-63b5612d6e73.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/e97222b7-ff2e-7b75-e827-7dff821c8c59.png)
Main.xaml がこの引数を使用して SuperMarket.xaml ワークフローを呼び出します:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/59054f9b-4901-e06e-66d9-8abaade30967.png)
SuperMarket.xaml シーケンスの詳細と [代入(Assign)] 式の右側は次のように指定されています:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1744893/60e0938d-b424-fb0d-33d5-0e8f5c9388ff.png)
これらの情報にもとづき、Main.xaml ファイル内部の [1 行を書き込み (Write Line)] アクティビティの出力結果はどうなりますか。

1. Orange
2. Apple
3. , Orange
4. Apple, Orange

<details><summary>答えを見る</summary>

**2.Apple**

引数は、呼び出される側で定義する必要があります。
今回の場合、**4.Apple, Orange**を返すことを期待していると思われますが、呼び出される側（SuperMarket.xaml）で定義していないのでうまく値が渡っておらず処理がされていない状態です。
そのため、Main.xamlで宣言した変数はSuperMarket.xamlで値の更新がされず、そのまま**Apple**が出力されます。

</details>

### No10. UiPath Studio には、どんな引数方向がありますか。

1. 入力 (Input) のみ
2. 入出力 (Input/Output) のみ
3. 出力 (Output) のみ
4. 入力 (Input)、出力 (Output)、入出力 (Input/Output)

<details><summary>答えを見る</summary>

**4.入力 (Input)、出力 (Output)、入出力 (Input/Output)**

前述の通り、引数の方向は３通りです。

</details>

### まとめ

今回の１０問は下記の試験範囲のうち
「RPA の基礎」「UiPath Studio の概要」 「変数と引数」 となります。

**RPA の基礎** 
**UiPath Studio の概要** 
**変数と引数** 
セレクター 
制御フロー 
データ操作 
UiPath の自動化概念とあらゆるテクニック 
UiPath Orchestrator の概要

:::note warn
注意
この模擬試験は答えられて終わるのではなく、しっかりと説明できるようになることが重要です。
:::

今回参考にさせていただいたサイトを共有します。

https://streamlineoperations.hatenablog.com/

続きはこちらからどうぞ！

https://qiita.com/y-matsunaga/items/f5321a510ef024adeb87

https://qiita.com/y-matsunaga/items/2f387f8567852506c47d

https://qiita.com/y-matsunaga/items/69937a7d9d14965eeccd

https://qiita.com/y-matsunaga/items/69937a7d9d14965eeccd

https://qiita.com/y-matsunaga/items/8abbb8ececca4ef69bce