記事公開日
最終更新日
モデル駆動型アプリ概説 ①モデル駆動型アプリの概要

こんにちは。システムソリューション営業本部の吾妻です。
最近、多くのお客様に、大量のデータをPower Platformで扱うためにはどうすればいいのかご質問をいただいたり、キャンバスアプリを自分達で内製してみたもののデータ量が予想以上に増えてしまいパフォーマンス面、コスト面で困っている、といったご相談をいただいたりします。
Power Appsで大量データを扱いたい場合には、ほぼモデル駆動型アプリ一択なのですが、テーブル(データの定義)がなくても作り始めることができるキャンバスアプリとは異なり、まずは画面の雰囲気を固めてから要件を詰めていく、といった進め方が難しく、取っつきにくいと感じている方が多いように思います。
そこで今回の連載では、モデル駆動型アプリとはどのようなものか、モデル駆動型アプリを作成していく際にどのような手順で進めていけば良いのか、応用的なことをやろうと思った際にどのように実現すればいいのか、といった事柄について、簡単にご紹介していこうと考えています。
事前準備
今回も、予め試用環境を準備していただいた上で、実際の画面を操作しながら読み進めていただければと思います。モデル駆動型アプリとは
キャンバスアプリとの比較
まずは、キャンバスアプリと比較してみます。Dataverseテーブルさえ事前に用意しておけば、時間をかけずに、リレーションを考慮したレスポンシブデザインなアプリを作成することができるのが、モデル駆動型アプリの特徴となっています。モデル駆動型アプリ | 比較項目 | キャンバスアプリ |
Dataverseのみ | 利用するデータソース | ・Dataverse ・コネクタが用意されている外部サービス ・カスタムコネクタ経由で外部サービス |
コンポーネント※1を追加 | アプリ仕様の設計 | Power Fx 式を使用 |
低 | UIデザインの柔軟性 | 高 |
高 | UIデザインの一貫性 | 低 |
低 | 環境を跨いだ移行の難易度 | 高 |
短 | 作成にかかる時間 | 長 |
自動 | レスポンシブデザイン | 要実装 |
自動 | リレーションのUI | 要実装 |
対応 | アクセシビリティ | 対応 |
対応 | オフライン実行 | 要実装 |
要設定 | 多言語対応 | 要実装 |
※1 ... 以下を総称してコンポーネントと呼ぶ(キャンバスアプリの「コンポーネント」機能とは異なる)
大区分 | 小区分 |
データ | ・テーブル ・リレーションシップ ・列 |
UI | ・サイトマップ ・フォーム ・ビュー |
ロジック | ・ビジネスプロセスフロー ・ビジネスルール |
ビジュアル化 | ・チャート ・ダッシュボード ・Power BIタイル |
必要なライセンスと要件
モデル駆動型アプリを作成するために必要なライセンスや要件として、以下のものが挙げられます。まずは検証目的で作成したい、という場合は、いったん試用版ライセンスを利用してアプリを作成し、本運用になってからソリューションをエクスポート・インポートして移行する、という手順を取ることもできます。項目 | 内容 |
Power Apps | ・有償版ライセンス ・環境を作成するための容量(1GB~) |
Dataverse | ・Dataverseデータベース ・セキュリティロール(システムカスタマイザーまたは環境作成者) ・Dataverseテーブル ・列 ・ビュー ・フォーム |
大まかなモデル駆動型アプリの作成手順
モデル駆動型アプリを作成するための手順として、以下のものがあります。Dataverseテーブルの列、フォーム、ビューを準備すれば最低限のモデル駆動型アプリを作成することができますが、ビジネスルールやクラウドフローといった機能も利用することで、より業務を効率化したり、属人化を防いだりするようなアプリを実現することができます。手順 | 内容 |
①ビジネスデータのモデル化 | 既存の標準テーブルを利用する or カスタムテーブルを作成する ・Dataverseテーブルの列 ・フォーム ・ビュー ・グラフ ・ダッシュボード |
②ビジネスプロセスの定義 | 一貫性のあるビジネスプロセスを定義して、誰でも確実にタスクを実施できるようにする ・ビジネスルール ・Dataverseプロセス ・リアルタイムワークフロー ・アクション ・Power Automate ・ビジネスプロセスフロー ・クラウドフロー ・インスタントフロー ・スケジュールされたフロー ・デスクトップフロー(RPA) |
③モデル駆動型アプリの作成 | 「サイトマップ」を作成し、モデル駆動型アプリを作成する ・サイトマップ ・モデル駆動型アプリ(アプリデザイナー) |
④セキュリティロールの構成 | ユーザーごとの権限に応じたデータのみにアクセスできるようにする ・セキュリティグループ ・セキュリティロール |
⑤アプリの共有 | アプリをユーザーに配布する |
⑥応用的なカスタマイズ | 以下の機能を利用したカスタマイズを行う ・Webリソース ・クライアントスクリプト(Webリソースの一部) ・コマンドとリボンのカスタマイズ ・カスタムページ ・PCF(Power Apps Component Framework) ・Dataverse検索 ・Dataverseプラグイン ・XRMToolBoxの活用 |
最低限のモデル駆動型アプリを作る
Power Platform環境に予め用意されているDataverseテーブルを利用することによって、最低限の手順でモデル駆動型アプリを作成するための手順をご紹介します。①Power Appsメーカーポータルを開きます。右上に表示される「環境」として、Dataverseデータベースが用意された環境が選択されていることを確認します。
②左側パネルの「作成」をクリックして開いた画面で、「空のアプリ」をクリックし、ポップアップ画面の「Dataverseベースの空のアプリ」の「作成」をクリックします。

③作成するモデル駆動型アプリの名前を入力して、作成をクリックします。

④アプリデザイナーが開くので、真ん中にある「ページの追加」をクリックします。

⑤モデル駆動型アプリを通してユーザーにアクセスさせたいDataverseテーブルを選択して、「追加」をクリックします。今回は、Power Platform環境におけるユーザーマスタである「ユーザー(SystemUser)テーブル」を選択します。

⑥「ページ」(テーブル)が追加されたら、アプリデザイナーの右上にある「保存」、「公開」、「再生」を順にクリックします。

⑦作成されたモデル駆動型アプリが開き、テーブルの中身(レコード)が表示されます。付与されているセキュリティロールによっては、アプリの枠組みだけ見えて、レコードは見えないことがあります(環境作成者ロールなど)。アプリを開くと、まずはDataverseテーブルの「ビュー」が表示されます。

⑧Dataverseテーブルの「ビュー」から単一のレコードを選択すると、「フォーム」が表示され、Dataverseテーブルの各列に格納されている値を参照したり更新したりできます。ここまでの手順で、最低限のモデル駆動型アプリとしては完成です。

⑨先程はアプリデザイナーからアプリを「再生」しましたが、メーカーポータルのアプリ一覧からモデル駆動型アプリを選択して、再生することもできます。

⑩作成したアプリは、組織内のPower Apps有償版ライセンスが付与されている他ユーザーに共有することができます。共有する際には、共有先のユーザーとセキュリティロールを指定します。

まとめ
今回は、モデル駆動型アプリとはどのようなもので、作成していく際にどのような手順で進めていけば良いのかについて、簡単にご紹介しました。ベースとなるDataverseテーブルさえ存在していれば、簡単にアプリケーションを作成できることをご理解いただけたかと思います。次回以降の記事で、個別の機能についてもう少し細かな粒度でご紹介できればと考えています。QESの Power Platform サポート&アプリカタログサービス は、キャンバスアプリやモデル駆動型アプリ、Power Pagesといった各種Power Platform製品群の導入、環境構築、弊社で開発したカタログアプリのご提供などを行うサービスです。まずはお気軽にお問い合わせください。
本連載の記事一覧
このブログで参照されている、Microsoft、Windows、その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。