PL-200 学習メモ (7) : モデル駆動型アプリ（ページ、エリア、フォーム、キャンバスアプリの埋め込み）

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

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

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

# 前の投稿

https://qiita.com/atsmin77/items/1bbf110aafbd3dec7876

# モデル駆動型アプリ

キャンバスアプリでは開発者がアプリのデザインをすべて行います。それに対して、モデル駆動型アプリの場合は、利用するデータやフォームを指定するだけで、複雑なアプリケーションを作成することができます。

## モデル駆動型アプリの作成

空のアプリの作成画面で、[Dataverse ベースの空のアプリ] を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/1d043392-ba67-7353-00b9-7cef8eda625f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/59f01d9a-8d8b-9ea1-b983-abb7a535e917.png)

# ページ

作成したアプリにページを追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/bee5728c-eb1a-3cb8-8e28-240c6fcb23a5.png)

[Dataverse テーブル] を選択して、テーブルを指定すると、そのテーブルのビューやフォームを使用した一覧画面、変種画面を持つページが追加されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/0970e5b3-d0f4-128e-c926-0f2314516969.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/f22aef67-05e6-66f1-b727-94971954c4ba.png)

[Dataverse テーブル] 以外にも、Power BI のダッシュボードや Web 上のリンクを指定したページを追加することができます。

# 領域 (エリア)

[設定] から [領域を有効化] をオンにすると、複数の領域 (エリア) をプルダウンで切り替えることができるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/aa521c34-f61e-977f-c12b-b7e6f4e4147f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/a0078732-b71e-0e92-9370-bd9ad56d6aa4.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/2364e63a-5c1e-d911-127c-0daef8d4b9a6.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/661af5fc-0bfa-fd0a-c8eb-8608d1a19d71.png)

ユーザーは領域を画面左下のボタンで切り替えることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/f4465972-e1cf-8b13-35d2-ee0e877ca875.png)


# フォーム

テーブルから作成したフォームはモデル駆動型アプリで利用できます。

## フォームの作成

### メイン フォーム

[テーブル] から任意のテーブルを選択し、[フォーム] - [新しいフォーム] - [メイン フォーム] をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/31fa8004-ba59-722d-2eb6-c7d19264b2cf.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/61a364df-73d3-a259-2fcd-06a826c4194d.png)

テーブルの任意の列をフォームに追加することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/1bf9c90e-75dc-f3e6-66fa-110c60dd578e.png)

[コンポーネント] からフォームに新しいタブやコントロールを追加することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/87f25987-f7e7-e0a4-6e82-42a26d2d79dc.png)

* モデル駆動型アプリからの利用

[保存して公開] したフォームはモデル駆動型アプリの編集画面に表示されます。

::: note info
モデル駆動型アプリの編集画面にフォームが表示されない場合、[ソリューション] から [すべてのカスタマイズの公開] をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/a8cef4ba-ff71-663e-4e22-ab77244b89fd.png)

:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/893ffb1f-7454-bc18-c7d3-32410a1749cb.png)

### クイックビュー フォーム

クイックビュー フォームはリレーション先のテーブルの情報を簡易的に表示するためのビューです。

メイン フォームにコンポーネントとしてクイックビュー フォームを追加することで、リレーション先のテーブルの情報も合わせて表示することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/7a55b8c7-d2f9-2d00-3ebc-951c6ae785a7.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/f3e3e5ad-3901-ef14-e816-841db40b1f11.png)

メイン フォーム内にリレーション先のテーブルの情報も合わせて表示できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/ad71fa5f-d5a3-a1ce-496b-7132b0819dc0.png)

https://learn.microsoft.com/ja-jp/power-apps/maker/model-driven-apps/types-forms

# キャンバスアプリの埋め込み

キャンバスアプリをモデル駆動型アプリに埋め込むには、 2 つの方法があります。

* **カスタムページを追加する方法**
1. [ページ] - [新規] - [カスタムページ] をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/85501e70-18e5-f67d-3b82-abdd37f039f0.png)
2. [カスタムページを作成] からキャンバスアプリの編集画面が開きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/b102a0d6-62d4-d98a-ec22-450b7b1129bc.png)

::: note info
カスタムページのキャンバスアプリには画面の追加が行えません。
:::

* **フォームに追加する方法**
1. [テーブル] - [フォーム] から対象のフォームを編集画面を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/a305e336-c24c-b769-ffeb-9a7df1934f30.png)
2. [コンポーネント] から新しいタブを追加 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/f15ece42-e042-1612-f70a-90433de0a5da.png)
3. [エンティティ名][アプリ名][アプリ ID] を入力し、完了
※ [エンティティ名][アプリ名] は任意の値で構いません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/33036469-fd60-c23f-d78d-c7fb0f70ada1.png)
4. [保存して公開] をクリックすると、キャンバスアプリが埋め込まれます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/e34a5d32-7abe-f00f-d312-c282ae7b9892.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/33d7bc09-5b72-4bc8-8d71-e365a5b1530e.png)

::: note info
アプリ ID はキャンバスアプリの [詳細] 画面から確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/f0a17d3a-0119-a012-24b0-cdf9fd7356ef.png)
:::

::: note info
埋め込まれたキャンバスアプリからモデル駆動型アプリのデータを参照するには ModelDrivenFormIntegration プロパティを使用します。
:::
https://learn.microsoft.com/ja-jp/power-apps/maker/model-driven-apps/add-page-to-model-app

https://learn.microsoft.com/ja-jp/power-apps/maker/model-driven-apps/embed-canvas-app-in-form

https://learn.microsoft.com/ja-jp/power-apps/maker/model-driven-apps/embedded-canvas-app-properties-actions

# 次の投稿

https://qiita.com/atsmin77/items/758c7f80d883acb625fb