モデル駆動型アプリの設計
アプリ開発者として、Power Apps ソリューションの構築を開始する前に、アプリに何をさせる必要があるかを計画します。 まず、アプリで何を実現したいですか? つまりビジネス要件やユーザーのニーズはどのようなものですか? 次に、モデル駆動型アプリはデータから始まるため、データ モデルを定義して開発する必要があります。 ビジネス要件を念頭に置いて、ビジネス ロジックを設計に追加し、最終的にビジネス ロジックの結果を出力としてどのように表現するかを決定します。
モデル アプリの設計で考慮すべき要素:
- ビジネス要件
- データ モデル
- ビジネス ロジック
- 出力
シンプルな設計プロセスを実行することで、アプリが実稼働後に大きな問題を起こす前に、小さな問題を洗い出すことができます。
モデル駆動型アプリをアプリ デザイナーを使用して作成します。 自分のアプリで使用可能にしたいテーブル、ダッシュボード、ビジネス プロセス フロー、フォーム、およびその他のコンポーネントを選択すると、Power Apps アプリによってアプリが作成されます。 モデル駆動型アプリを設計する際には、アプリがどのように見えるかよりも、ユーザーのニーズを理解することにより多くの時間を費やす必要があります。
ビジネス要件
プロセスの最初の手順は、顧客のビジネス要件を把握することです。 アプリの関係者と協力して、セキュリティ、アクセシビリティ、データ、およびデザインに関するニーズを検討しましょう。
前の単元で述べたように、Dataverse は堅牢なセキュリティ モデルを備えています。 アプリのデータのセキュリティ保護がアプリにどのように影響するか、またどのセキュリティ モデルがビジネス ニーズに最も適しているかについて考慮します。 階層セキュリティ、行レベルのセキュリティをはじめ、多くのオプションを使用できます。 ニーズを満たすようにデータがセキュリティで保護されていることを確認すると、アプリがそのセキュリティを保持します。
また、政府規制や認証/認可の要件 (該当する場合) も明確にする必要があります。 多要素認証を実装することもできますが、アプリケーションに接続しているユーザーにこのような要件がどのように影響するかを考慮する必要があります。 この段階では、質問に対するすべての答えを持っている必要はありません。すべての要件の洗い出しを行いたいだけです。
最後に、ユーザーがインターネットに接続していないときにアプリを利用できるようにしますか。 これが利用できる状態はオフライン モードと呼ばれ、iOS や Android クライアントを使用する際に Dataverse とモデル駆動型アプリでサポートされます。 設計上の考慮事項が追加で必要になります。
データ モデル
データ モデリングを実施する場合に、自問すべき次のような重要な質問があります。
- ソリューションによって格納または収集されるデータ型はどれですか。
- このデータは作業中の他のデータとどのように関連しますか?
データ モデルの 3 つの最も重要な要素をテーブル、列 、リレーションシップとして考えてみます。 作成するテーブル、各テーブルの列、テーブル間のリレーションシップを明確に定義したら、フォーム、ビュー、ビジュアル化を開発し、微調整することができます。 データはモデル駆動型アプリの基盤です。
モデル駆動型アプリケーションでは、メタデータ駆動型アーキテクチャを使用することに注意してください。 モデル駆動型アプリの大部分はデータのモデル化方法に基づいており、アプリのデザインを変更するためにカスタム コードを記述する必要はありません。 これについてもう少し詳しく説明しましょう。「メタデータ」という時、これは「データに関するデータ」を意味しますが、このデータがシステムに格納されている構造を定義します。
Power Apps では、Power Apps ポータルを介してテーブルを確認することで、アプリのメタデータを表示/変更できます。
また、アプリを再生モードにすることによってアプリのメタデータを表示/変更できます。
前の例では、寄付テーブルに対して、次のような複数のメタデータが収集されていますが、これらに限定されません。
- ペットの名前
- 予約日
- 種
- 品種
種は、Dataverse テーブルの選択であり、種と呼ばれる別の Dataverse テーブルに接続 (または関連付け) されています。 テーブル間のリレーションシップによって、種テーブルにはペット テーブルがアクセスできるメタデータがあります。そのため、種テーブルからメタデータを保持するためにペット テーブルに追加の行を作成する必要はありません。
データ モデルでは、列タイプについても検討する必要があります。 Dataverse でテーブルに列を追加する場合、選択した列タイプによって、モデル駆動型アプリでのユーザーの入力方法と表示方法が決定されます。 オプション セットはドロップダウンとして表示され、通貨は通貨記号付きで表示されますが、小数点以下では通貨記号は表示されません。 テーブル列の設定のこういった小さな変更は、ユーザーがアプリを体験する方法に大きな影響を与える可能性があります。
注
列タイプを別の列タイプに変更する必要がある場合 (テキスト列を選択式に変更する場合など)、その列を削除して、正しい列タイプで再作成する必要があります。 ただし、これを行うと、その列に関連付けられているデータがすべて失われてしまいます。
ユーザー インターフェイス (UI) とユーザー エクスペリエンス (UX)
モデル駆動型アプリを作成する際は、ほとんどの UI と UX が Power Apps によって決められます。 ビルドの基になるデータ モデルを定義すると、Power Apps が、アプリで使用されるコントロールを決定します。 含めるテーブル資産を自ら決定することで、そのコントロールに影響を与えることができます。 アプリ デザイナーでアプリのフォーム、ビュー、グラフ、およびダッシュボードを自分で定義します。 ナビゲーション オプションは制御することもできます。 アプリを計画している場合は、アプリの設計で必要なコンポーネントを決定ししてから、アプリを構築する前にテーブルからそれらを作成できます。
以下は、データ入力用のシンプルなモデル駆動型フォームです。
ビジネス ロジック
アプリにビジネス ロジックを組み込む際は、2 つの主要なオプションがあります。 Dataverse テーブルに対してビジネス ルールを設定するか、またはビジネス プロセス フローを作成することができます。
ビジネス ルールを使用すると、データ レイヤーで動作を定義することができます。 ビジネス ルールは、列が必要なときの変更、既定値の設定、または基準に基づいた列の表示と非表示を切り替える場合に便利です。 例としては、経費を追跡するためのテーブルが挙げられます。 旅行のタイプの列を作成してから、ユーザーが "自動車" を選択した場合は "マイレージ" 列が必須であり、それ以外の場合はオプションであるというビジネス ルールを作成できます。 ビジネス ルールにより、すべてのシナリオにおいてデータの一貫性を確実に維持することができます。
ビジネス プロセス フローは、ユーザーによるアプリの使用をガイドします。 モデル駆動型アプリでのみ機能します。 これらのワークフローでは、データの状態に基づいて次の手順のビジュアルを提供し、ユーザーがアプリを使用する際に実行するその他のアクションを容易にすることができます。 ビジネス プロセス フローはアプリに自動化を提供し、データを入力するための単なる場所でなく、ガイド付きのエクスペリエンスであるアプリを実現できます。
出力
アプリの一般的な出力ニーズは、データのビジュアル化です。 このニーズを満たすには、カスタム フィルターとビジュアル グラフィックを含むダッシュボードを実装して、これらすべてのデータをアプリで相互に関連付けることができます。 ダッシュボードを作成する場合は、多くのデータでユーザーを圧倒することなく、ユーザーが簡単に使用できるようにしてください。 データのおおまかなスナップショットを用意すると、ユーザーは必要に応じてフィルターを適用してより詳しいデータに掘り下げることができます。
業界向けアクセラレータ
Microsoft はさまざまな業界の代表者と緊密に協力し、業界アクセラレータを作成して Dataverse データ モデルをより関連性の高いものにしています。 健康、財務、銀行業、教育、非営利団体、自動車産業、またはメディアなどの業種に応じて、Microsoft は、ソリューションの迅速な設定に役立つアクセラレータまたは基本コンポーネントを数多くリリースし続けています。 詳細情報については、このモジュールのサマリー ユニットにリンクがあります。