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