PL-200 学習メモ (1) : ライセンス、環境、Dataverse

# はじめに
この投稿は PL-200: Microsoft Power Platform 業務コンサルタントの学習をした内容のメモです。

投稿の一覧は以下のリンク先にあります。

https://qiita.com/atsmin77/items/f25bd707921c421cee03

# Power Apps のライセンス

|#|名称  |金額 |備考 |
|---|---|---|---|
|1|Power Apps Premium  |$20/user|ユーザーごとに課金されるライセンス、アプリの数は無制限（per user plan から名前が変わった？）、30 日間の無料試用あり|
|2|Power Apps per app  plan |$5/user/app|ユーザーとアプリごとに課金されるライセンス、 アプリが 4 つ未満だと Premium よりお得|
|3|従量課金プラン |-|別途ライセンスを購入せず、Azure サブスクリプションにより支払いを行う |
|4| 開発者 (Developer) |無償|職場または学校のメールアドレスで登録が必要、開発/テスト目的のみ、環境は 3 つまで作成可能、90 日間非アクティブと判断されると環境が削除される|

https://learn.microsoft.com/ja-jp/power-platform/admin/powerapps-flow-licensing-faq

https://learn.microsoft.com/ja-jp/power-platform/developer/plan

# Power Platform における「環境」

Power Platform における「環境」は、テナントにおける Power Apps アプリや Power Automate フロー、データベースなどのコンテナ。アプリの役割やセキュリティ要件などにより、環境を分けて管理する

環境は Power Platform 管理センターから作成できる。

## 環境の種類

|#  |名前  |備考  |
|---|---|---|
|1  |既定 (default)  |テナントに自動的に作成される環境、テナントの全ユーザーからアクセス可能|
|2|実稼働 (Production) |実運用環境  |
|3|サンドボックス (Sandbox) |Production 環境を模したテスト環境、Production 環境をコピーして作成できる、リセットして環境を初期化できる  |
|4|試用版 (Trial) |試用版ライセンスで作成できる環境（作成できるのは 1 つだけ）  |
|5|開発者 (Developer) |Developer ライセンスで作成できる環境（3 つまで作成できる）  |
|6|Dataverse for Teams|Teams からアプリやボットを作成した際に自動的に作成される環境、チームごとに 1 つの環境があり、チーム内のアプリやフローが保存される|

https://learn.microsoft.com/ja-jp/power-platform/admin/create-environment

https://learn.microsoft.com/ja-jp/power-platform/admin/sandbox-environments

https://learn.microsoft.com/ja-jp/power-platform/admin/trial-environments

https://learn.microsoft.com/ja-jp/power-platform/admin/about-teams-environment

# Dataverse

* 環境におけるデータの保存先、データはテーブルに保存される

* あらかじめ一般的な用途のテーブルが既定で用意されていて、環境を作成する際にテーブルとサンプルデータを追加することができる

* データのバリデーションを行うビジネスプロセスや、ビューやフォームを定義し、Power Apps などから利用できる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/de57251c-8eeb-1e1e-0e0a-876b411b90a3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/00954f85-3899-eba2-85f4-62bb8bbd69f7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/0205afc6-140b-53fc-12cf-415e205b25ea.png)


https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/data-platform-intro

## Dataverse テーブル
### テーブルの種類
* 標準 (Standard)
  * アカウント、部署、連絡先、タスク、およびユーザー テーブルなど
  * テーブル名の変更や列の追加などのカスタマイズを行うことができる

* アクティビティ (Activity)
  * 開始時刻、終了時刻、期日、期間などのアクティビティのテーブル
  * 予定、タスク、電子メール、電話 テーブルなど

* 仮想 (Virtual)
  * Dataverse 以外の外部ソースからデータを投入するテーブル

https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/types-of-entities

### テーブルの所有者
* テーブルの所有者はテーブル作成時に設定することができ、後から変更できない
  * ユーザーまたはチーム
    ビジネスユニット、またはユーザーごとのアクセス権を制御できる
  * 組織
    組織全体のアクセス権のみを制御できる

https://learn.microsoft.com/ja-jp/power-platform/admin/wp-security-cds

### テーブルの新規作成

1. [新しいテーブル] からテーブルを新規作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/552c03f4-4d44-f56c-98e7-1d86ded23f06.png)

2. [高度なオプション] からテーブルの種類や所有者を指定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/9b5aacdd-0be9-2828-d6a6-c7a1530a5f91.png)

3. [プライマリ列] からテーブルで一意なキーとなる列を指定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/8392aee1-eece-701e-91b6-0bade93cade3.png)

::: note info
[高度なオプション] からはテーブルについての[様々なプロパティ](https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/create-edit-entities-portal?tabs=excel#%E8%A9%B3%E7%B4%B0%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3)の有効/無効を指定することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/1035f289-81bd-d4f4-942d-9a7fd3636c9f.png)
:::

https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/create-edit-entities-portal?tabs=excel

### 列の種類

以下のような種類の列を作成できます。
■ 例：
* テキスト
  * 1 行テキスト/複数行テキスト
* 数値
  * 整数
  * 小数
  * 浮動小数点
* 通貨 
* 日付
  * 日時
  * 日付のみ
* 選択肢
  * 複数選択
  * Yes/No 
* 画像

::: note info
[オートナンバー列](https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/autonumber-fields)を使用すると行が作成される度に、自動的に番号が採番される列を作成することもできます。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/8cdfb0f2-a775-3026-7bd6-9718e9ce1a96.png)

#### 小数 (Decimal) と浮動小数点 (Floating) の違い

[正確な値を保存する必要がある場合には [小数] を使用します]()。

| 名前 | 小数点以下の桁数 |
|:-:|:-:|
| 小数  | 0 から 10 |
| 浮動小数点  | 0 から 5  |
|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/c87bdfde-894e-1139-3187-504194445f63.png)|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/bf721bd0-ba25-d0ac-b6f8-7ae19b349f00.png)|

::: note info 
[高度なオプション] から [列レベルのセキュリティ](https://learn.microsoft.com/ja-jp/power-platform/admin/field-level-security) を有効にすることで、[セキュリティプロファイル] による列レベルのアクセス制御を行うことができます。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/6938cb2e-f30e-44d2-65df-468f52d5d3f0.png)
:::

https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/types-of-fields

### テーブルのキー列

一意なキー列として設定するプライマリ列は [データの種類] として [オートナンバー] を指定することができ、桁数やプレフィックスを指定して自動採番することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/5049c5b4-1c79-f899-5b49-9965518207e2.png)

https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/autonumber-fields

プライマリ列以外の列の組み合わせを一意なキーとして指定することもできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/606e8c51-e12b-7870-295a-06b5db903550.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/fc90ffac-50e2-82bb-f0d5-af34c42d2f18.png)

https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/define-alternate-keys-portal

### リレーションシップ

* テーブル間のリレーションを定義
  * 多対一 
  * 多対多

::: note warn
Dataverse テーブルには一対一のリレーションシップがありません。
:::

* 関連付けされたテーブルの行が削除された際の動作を設定
  * 合わせて削除（親子関係：Parental）
  * 参照されている行は削除できないように制限

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/c18feb83-909f-11d4-e496-7e4f79d7b340.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/bc01a761-9d4f-7df5-5f14-20fb648c93af.png)

https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/create-edit-entity-relationships

### 数式列/ロールアップ列

* 数式列
数式で列の値を定義
値はリアルタイムで算出される
算出された値によるソートは行えない

* ロールアップ列
12 時間ごとのバッチ処理で非同期に値が算出される
通所の列と同様にフィルタやソートが行える

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/355a5753-c375-9440-a82b-de174591598f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/00290d62-0848-a06f-45ef-bafeca12e718.png)

https://learn.microsoft.com/ja-jp/power-apps/maker/data-platform/formula-columns?tabs=type-or-paste

https://learn.microsoft.com/ja-jp/power-apps/developer/data-platform/calculated-rollup-attributes

### その他のテーブル作成方法
### Copilot から作成

Copilot を使って対話形式でテーブルを作成することができます。列の変更や追加も対話形式で行えます。テーブルとキャンバスアプリを一括で作成できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/2b4c7719-a566-75cd-8b67-a68c07a4b6cd.png)

### Excel ファイルからインポート

Excel ファイルからインポートしてテーブルを作成できます。既存のテーブルを Excel ファイルにエクスポートしたり、Excel 上で編集することもできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/3af29afc-ab97-e13d-0571-73bb254b9915.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/886778f3-a98f-d90a-8ed0-f197cad79024.png)

### その他の機能

PowerPlatform 管理センターの [環境] - [設定] - [データ管理] から、以下のような設定を行うこともできます。

| 名前 | 説明 |
|:-:|:-:|
| [重複データの検出](https://learn.microsoft.com/ja-jp/power-platform/admin/detect-duplicate-records)  | 重複しているレコードを検出し、自動的にマージするよう設定できます。重複の条件は値の完全/部分一致、日付/時刻の一致などの条件を指定できます。  |
| [一括削除](https://learn.microsoft.com/ja-jp/power-apps/developer/data-platform/delete-data-bulk?tabs=sdk)  | 誤ってインポートしたデータや古いデータなどを一括削除することができます。  |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/f00dae00-e230-2520-8df8-e365d5e198ec.png)

# 次の投稿

https://qiita.com/atsmin77/items/a8821f48a53cdacd7a5d