アプリ開発の調査にかかる
時間を削減したい
内製化支援サービス
アプリを自分たちで
作成できるようになりたい
DX人材育成プログラム
プロに開発を依頼したい
アプリ開発導入支援サービス
機能拡張サービス
X-SP Feature
デザイン拡張サービス
X-SP Design
モダン化から運用管理までサポート
構築支援サービス
Dataverseテーブル作成講座、第5回は「モデル駆動型アプリ」の作成になります!
これまで第1回から第4回にかけて、Dataverseで「テーブル」「列」「リレーション」「キー」といったテーブルとデータ構造を作ってきました。
しかし、単にテーブルを作っただけでは、実際にデータを入力したり閲覧したり、検索するのは大変ですよね。
とはいえ、Power Appsで管理アプリを作るのも時間がかかって大変ですよね…
そこで登場するのがモデル駆動型アプリです。
今回は、DataverseとPower Appsの強力な連携機能である「モデル駆動型アプリを使って、一瞬で注文管理アプリを作る」を解説していきます!
【このシリーズの過去回一覧】
弊社はPower Platform(Power Apps・Power Automate)に関するアプリ開発や、
皆様が内製化を行う際の支援サービスを提供しておりますので、
Power
Platformに関する内容でお悩みがある場合は、以下からぜひお問い合わせください。
モデル駆動型アプリとは?キャンバスアプリとの違い
多くの方が「Power Apps」と聞くと思い浮かべるのは、「キャンバスアプリ」と呼ばれるタイプで作られたものだと思います。
対して、「モデル駆動型アプリ」って名前は聞いたことあるけどキャンバスアプリと何が違うの?どっちを使えばいいの?と迷ったことのある方も多いのではないでしょうか。
ざっくりと以下の違いがあります。
特徴 |
キャンバスアプリ |
モデル駆動型アプリ |
|---|---|---|
画面デザイン |
複雑で自由度の高いレイアウトを実現可能 |
ある程度固定のレイアウト |
データソース |
Dataverse、SharePoint、 Excel、外部のデータベース |
基本的にはDataverse |
得意なアプリ |
デザイン性が高く、自動入力や複雑な処理を備えた高機能なアプリ |
大量のデータを管理するシンプルなアプリ |
開発スピード |
1から画面にコンポーネントを配置してコードを書くため時間がかかる |
Dataverseテーブルをもとに一瞬で完成 |
Dataverseを使う最大のメリットの一つが、この「モデル駆動型アプリ」とも言えます。
テーブルの設定さえしてしまえば、入力フォームや一覧画面、検索機能などが、一切コードを書かずに構築することができます。
今回は、これまでに作成した「顧客」「商品」「注文」「注文明細」テーブル使って、実際に注文管理アプリを作ってみましょう!
ハンズオン:モデル駆動型アプリを作ってみよう
それでは、実際にアプリを作っていきます。
1. アプリの作成
Power Apps のホーム画面から作成を始めます。
-
Power Apps にアクセスし、左メニューの「アプリ」をクリックします。
-
「+新しいアプリ」から「ページデザインで開始する」を選択します。
-
「ナビゲーション付きの空白ページ」を選択します。
-
アプリ名を入力します。今回は「注文管理アプリ」とします。「作成」をクリックします。
これで、モデル駆動型アプリの枠が完成しました!
ですが、これだけでは画面は空の状態ですので、続いてDataverseテーブルと接続していきます!
2. メニュー(サイトマップ)の追加
次に、アプリのメニューに表示するテーブルを選びます。これまでの記事で作ってきたテーブルを追加していきましょう。
-
画面中央の「ページの追加」から「Dataverseテーブル」をクリックします。
-
テーブルの選択画面が出ますので、検索窓を使って以下の4つのテーブルを探し、チェックを入れます。
顧客
商品
注文
注文明細
全てチェックできたら「追加」をクリックします!
-
すると、画面左側のナビゲーションに各テーブルが追加され、ビューとフォームが表示されます!
これでモデル駆動型アプリにDataverseテーブルを追加することができました!
3. ビューとフォームのカスタマイズ
さて、アプリにテーブルを追加することはできましたが、「あれ?一覧画面に『顧客テーブルの住所』や『商品の価格』が表示されていないぞ?」と気づいた方もいるかもしれません。
実はモデル駆動型アプリでは、Dataverseテーブル側で設定した「ビュー」と「フォーム」の設定がそのままアプリに反映されます。
そのため、ビューやフォームに表示したい項目を変更したいときは、テーブルの設定画面に戻って設定を行います。
ビュー(一覧画面)の設定
-
商品テーブルの設定画面を開き、「データエクスペリエンス」の「ビュー」を選択します。
-
一覧の中から「アクティブな商品」をクリックしてビューの編集画面を開きます。
-
画面左側のテーブル列一覧から、「商品コード」や「在庫数」をクリック(またはドラッグ&ドロップ)して、ビューに追加します。
列の並びやビューの名前が変更できるほか、ビューにデフォルトで適用されるソートやフィルターもここで設定することができます!
-
表示したいように設定ができたら、「保存して公開」をクリックで反映されます!
フォーム(入力画面)の設定
同様に、入力フォームもカスタマイズできます。
-
テーブル設定画面に戻り、「フォーム」をクリックします。
-
フォームの種類が「メイン」となっているフォームをクリックして編集します。
-
ビューと同じように、画面左側の列一覧からフォームに表示したい項目(価格、在庫数、カテゴリなど)を追加し、並び替えます。
-
同じく「保存して公開」をクリックして、フォームの編集が反映されます。
この手順をアプリと接続している各テーブルで行えば準備は完了です!
モデル駆動型アプリ側に戻って、「プレビューを更新する」を実施してみましょう。
-
商品ビュー
-
商品フォーム
すると、ビューやフォームが設定した通りのレイアウトになっていることが確認できますね!
(※アプリ側で変更が反映されない場合は、ブラウザをリロードするか、少し待ってから再度開いてみてください)
4. アプリの公開
基本的な設定はこれだけで、あっという間にレコードの表示や検索、作成、編集を行えるアプリが完成してしまいました!
キャンバスアプリと比べると非常に簡単かつ、スピーディに作れますね!
それでは、アプリを利用可能にするために保存して公開しましょう。
画面右上の「保存して公開する」をクリックします。
以上で基本的なモデル駆動型アプリの作成は完了です!
5. 動作確認
それではさっそく、「商品」のデータを登録してみましょう。
-
画面左のメニューから「商品」を選び、上部の「+新規」をクリックします。
-
入力フォームが表示されます。登録したい商品のデータを入力して「保存して閉じる」をクリックします。
-
すると先ほど追加した商品が、設定したビューの通り表示されていますね!
これでモデル駆動型アプリから商品テーブルを管理できる状態になりました!
キャンバスアプリと比べると、1行もコードを書かずに、あっという間にテーブルの管理アプリが完成してしまいました!
顧客テーブルも同じような手順で、フォームとビューを設定すればすぐにできてしまいますね!
ハンズオン:リレーションを登録してみよう
これで商品や顧客の情報を管理できるようになりました!
そのまま注文データも登録できるようにしていきたいのですが、
これまでの商品テーブルや顧客テーブルと違い、フォームを作るタイミングで1つ工夫をしなければいけない点があります。
それは以下のER図のように、注文テーブルや注文詳細テーブルにはリレーションがある、という点です。
ということで次は、フォームからリレーション先のテーブルを選択できるようにする手順を解説していきます!
1. 多対1のリレーション
まずは多対1のリレーションである、注文明細テーブルと商品テーブルの設定をしていきましょう。
こちらは非常に簡単です!
-
これまでと同じように、注文詳細テーブルのメインフォーム設定の画面へ進みます。
-
追加できるテーブル列の中に「商品」という項目があるので、それをフォームへ追加します。
多対1のリレーションの設定はたったこれだけで、他の列と特に変わりはありません!
-
数量など、他に入力したい列も追加できたら「保存して公開」をしましょう!
2. 1対多のリレーション
続いて1対多のリレーションとなる、「注文テーブル」から「注文明細テーブル」の設定をしていきます。
-
注文テーブルのメインフォーム設定の画面を開いて、画面左の「コンポーネント」からサブグリッドを選択します。
-
関連テーブルを選択するメニューが開くので、「注文詳細テーブル」を選択して、「完了」をクリックしましょう。
-
すると、フォームに「サブグリッド」が追加されます!
このサブグリッドというコンポーネントをフォームに追加することで、注文に紐づく注文詳細のレコードを作成したり、既に紐づいている注文詳細のレコードを表示することができるようになります! -
その他に顧客や注文日などの列も追加できたら、最後に「保存して公開」をしましょう!
3. 動作確認
それでは注文データを登録できるか、動作確認をしてみましょう!
-
画面左のメニューから「注文」を選び、上部の「+新規」をクリックします。
-
注文情報の入力フォームが表示されるので、まずは注文番号、顧客、注文日を入力して、一度「保存」をクリックします。
-
「保存」をクリックすると、フォームの下側に先ほど追加した「サブグリッド(明細一覧)」が表示されます!
表示されたら、「+ 新しい注文明細」をクリックしましょう! -
すると「注文明細の入力フォーム」画面に遷移します!
明細の情報を入力して、「保存して閉じる」をクリックしましょう。 -
これで注文と注文詳細のレコードを作成し、紐づけることができました!
このようにフォームにサブグリッドを追加してあげることで、リレーション先のレコードを作成して紐づけることができます!
ちょっとだけ手間は増えますが、それでもキャンバスアプリと比べて非常に簡単なのではないでしょうか!
モデル駆動型アプリのメリット
今回見ていただいたように、モデル駆動型アプリには多くのメリットがあります。
-
開発工数が圧倒的に少ない
アプリにテーブルを追加して、フォームとビューを設定しただけでアプリができてしまいます!
-
コードを書く必要がない
今回のような注文管理アプリをキャンバスアプリで構築しようとすると、どうしてもPatch関数やFilter関数などのコードを書く必要がありますが、モデル駆動型アプリであればノーコードで構築できてしまいます!
-
標準機能が豊富
今回は紹介できませんでしたが、以下のような機能も標準で実装されています!
Excelにエクスポート機能で、テーブル内のレコードを出力することができます。
ビュー画面での列幅の調整、ソート、フィルター、ビューの作成と共有も柔軟に設定できます。
レコードを一括選択して削除することもできます。
デメリットとしてはキャンバスアプリのようにデザインを作りこめなかったり、入力補助機能の実装が難しいなどが考えられます。
ですが今回のようにシンプルな管理アプリであれば、モデル駆動型アプリなら1時間もかからずに作れてしまうケースもあるでしょうから、
しっかりと要件を整理したうえで、モデル駆動型アプリも選択肢に入れていただければ、よりPower Platformを活用して業務の効率化を実現いただけるでしょう!
おわりに
今回は、DataverseとPower Appsの強力な連携機能である「モデル駆動型アプリ」を作成しました。
ビューやフォームの設定にさえ慣れてしまえば、1テーブルあたり10分もかからずアプリが作れてしまいます!
さて、これで当初目標にしていた注文管理アプリを作成することができましたが、実際の業務を想定すると権限管理の部分が気になるのではないでしょうか?
例えば、営業部の担当者には自分の担当顧客だけを見せたい、経理部の人は全データを見れるが編集はさせたくない、といった要件はよくありますよね。
そこで、最終回となる次回のテーマは「セキュリティと権限」についてとなります。
これまで5回にかけて作ったテーブルとモデル駆動型アプリを使って、Dataverseの堅牢なセキュリティ設定(部署、セキュリティロール)をハンズオンで解説していきます!
それでは!
【こちらも合わせて読みたい】
こんにちは。アーティサン株式会社の伊礼(いれい)です。