モデル駆動型アプリの設計

完了

アプリ開発者として、Power Apps ソリューションの構築を開始する前に、設計プロセスについて確認することをお勧めします。 Power Apps ソリューションを設計する際には、次のようなさまざまな要素を考慮する必要があります。

  • ビジネス要件
  • データ モデル
  • ビジネス ロジック
  • 出力

シンプルな設計プロセスを実行することで、アプリが本番環境で大きな問題を起こす前に、小さな問題を洗い出すことができます。

ここでは、"チャリティー" と呼ばれるモデル駆動型アプリの例について、アプリ デザイナーを簡単に見てみましょう。

Studio のモデル駆動型アプリのレイアウトのスクリーンショット。

アプリを再生モードにすると、異なって表示されます。

再生モードのモデル駆動型アプリのスクリーンショット。

ユーザーのニーズを理解する

モデル駆動型アプリは、その名の通りモデルによって駆動します。 最初の設計目標は、Microsoft Dataverse データ モデルを準備万端整えることです。 これを行うと、Power Apps に接続でき、モデル駆動型アプリがそのモデルから作成されます。

モデル駆動型アプリは、アプリ デザイナーを使用して作成されます。 自分のアプリで使用可能にしたいテーブル、ダッシュボード、ビジネス プロセス フロー、フォーム、およびその他のコンポーネントを選択すると、アプリが作成されます。 アプリがどのように見えるかよりも、ユーザーのニーズを理解することにより多くの時間を費やす必要があります。

ビジネス要件

プロセスの最初の手順は、顧客のビジネス要件を把握することです。 アプリの関係者と協力して、セキュリティ、アクセシビリティ、データ、およびデザインに関するニーズを検討しましょう。

セキュリティのために、Dataverse は堅牢なセキュリティ モデルを備えています。 アプリのデータのセキュリティ保護がアプリにどのように影響するか、またどのセキュリティ モデルがビジネス ニーズに最も適しているかについて考慮する必要があります。 階層セキュリティ、行レベルのセキュリティなど、多くのオプションを使用できます。 ニーズを満たすようにデータがセキュリティで保護されていることを確認すると、アプリがそのセキュリティを保持します。 詳細については、Dataverse のセキュリティ を参照してください。

このプロセスでは、政府規制や認証/承認の要件 (該当する場合) も特定する必要があります。 多要素認証を実装することもできますが、アプリケーションに接続しているユーザーにこのような要件がどのように影響するかを考慮する必要があります。 この段階では、質問に対するすべての答えを持っている必要はありません。すべての要件の洗い出しを行いたいだけです。

最後に、ユーザーがインターネットに接続していないときにアプリを利用できるようにしますか。 これが利用できる状態はオフライン モードと呼ばれ、iOS や Android クライアントを使用する際に Dataverse とモデル駆動型アプリでサポートされます。 設計上の考慮事項がさらに必要になります。 詳細については、Mobile Offline 同期の設定 を参照してください。

データ モデル

データ モデリング プロセスを開始するとき、自問すべき次のような重要な質問があります。

  • ソリューションによって格納または収集されるデータ型はどれですか。
  • このデータは作業中の他のデータとどのように関連しますか、またはどのように一致しますか。

上記の質問は、モデル駆動型アプリケーションがどのように機能するか決定するため、モデル駆動型アプリケーションを設計する際に重要となります。 モデル駆動型アプリケーションでは、メタデータ駆動型アーキテクチャを使用することに注意してください。 モデル駆動型アプリの大部分はデータのモデル化方法に基づいており、アプリのデザインを変更するためにカスタム コードを記述する必要はありません。 これについてもう少し詳しく説明しましょう。「メタデータ」という時、これは「データに関するデータ」を意味しますが、このデータがシステムに格納されている構造を定義します。

アプリのメタデータは、Dataverse のテーブルを確認することによって表示できます。

Dataverse にあるテーブルのアプリ メタデータのスクリーンショット。

アプリを再生モードにすることによってアプリのメタデータを表示することもできます。

再生モードでのアプリ メタデータのスクリーンショット。

前の例では、寄付テーブルに対して、次のような複数のメタデータが収集されています。

  • 送信者
  • 寄付金額
  • ステータスの理由
  • 作成日
  • カテゴリ

開発およびデプロイする各ソリューションごとに、それぞれ違うメタデータ セットを収集します。 こういったメタデータに関する基本的な理解は、設計プロセスを続行し、アプリ データをモデリングする上で重要です。

データ モデルでは、列タイプについても検討する必要があります。 Dataverse でテーブルに列を追加する場合、選択した列タイプによって、モデル駆動型アプリでのユーザーの入力方法と表示方法が決定されます。 オプション セットはドロップダウンとして表示され、通貨は通貨記号付きで表示されますが、小数点以下は表示されません。 テーブルのこういった小さな変更は、ユーザーがアプリを体験する方法に大きな影響を与える可能性があります。

注意

列タイプを別の列タイプに変更する必要がある場合 (テキスト列を選択式に変更する場合など)、その列を削除して、正しい列タイプで再作成する必要があります。 これを行うと、その列に関連付けられているデータがすべて失われてしまいます。

ユーザー インターフェイス (UI) とユーザー エクスペリエンス (UX)

モデル駆動型アプリを作成する際は、ほとんどの UI と UX が事前に決められています。 ビルドの基になるデータ モデルを定義すると、Power Apps が、アプリで使用されるコントロールを決定します。 含めるテーブル資産を自ら決定することで、そのコントロールに影響を与えることができます。 アプリ デザイナーの場合、アプリで使用するフォーム、ビュー、グラフ、およびダッシュボードを自分で定義します。 ナビゲーション オプションは制御することもできます。 アプリを計画している場合は、アプリの設計で必要なコンポーネントを特定し、アプリを構築する前に作成します。

このモジュール全体で使用してしてきた例を基にビルドを続けましょう。以下はシンプルなモデル駆動フォームです。これは、新しいチャリティーを作成するためのさまざまな情報をキャプチャします。

ここでは、アプリ デザイナーから編集したときに新しいチャリティー フォームがどのようになるかを示します。

新しいチャリティー フォームの例のスクリーンショット。

ビジネス ロジック

アプリにビジネス ロジックを組み込む際は、2 つの主要なオプションがあります。 Dataverse テーブルに対して ビジネス ルール を設定するか、または ビジネス プロセス フロー を作成することができます。

ビジネス ルール を使用すると、データ レイヤーで動作を定義することができます。 ビジネス ルールは、列が必要なときの変更、既定値の設定、または基準に基づいた列の表示と非表示を切り替える場合に便利です。 例としては、経費を追跡するためのテーブルが挙げられます。 旅行のタイプの列を作成してから、「自動車」を選択した場合はマイレージ列が必須であり、それ以外の場合はオプションであるというビジネス ルールを作成できます。 ビジネス ルールにより、すべてのシナリオにおいてデータの一貫性を確実に維持することができます。

ビジネス プロセス フロー は、ユーザーによるアプリの使用をガイドするために使用されます。 これらのワークフローでは、データのステータスに基づいて次の手順のビジュアルを提供し、ユーザーがアプリを使用する際に実行するその他のアクションを容易にすることができます。 ビジネス プロセス フローはアプリに自動化を提供し、データを入力するための単なる場所でなく、ガイド付きのエクスペリエンスであるアプリを実現できます。

出力

アプリの一般的な出力ニーズは、データをビジュアル化することです。 このニーズを満たすには、カスタム フィルターとビジュアル グラフィックを含むダッシュボードを実装して、これらすべてのデータをアプリで相互に関連付けることができます。 ダッシュボードを作成する場合は、すべてのデータでユーザーを圧倒することなく、ユーザーが簡単に使用できるようにしてください。 データのおおまかなスナップショットを用意し、必要に応じてフィルターを使用してより詳しいデータに掘り下げることができるようにします。

データをビジュアル化するための再生モードでのチャリティー アプリのスクリーンショット。

サードパーティ製の追加のソリューションとアプリ アクセラレータ

また、利用可能なさまざまなアプリ アクセラレータとサードパーティ ソリューションについても把握しておくことが重要です。 健康、財務、銀行業、教育、非営利団体、自動車産業、またはメディアなどの業界に応じて、Microsoft は、ソリューションの迅速な立ち上げに役立つアクセラレータまたは基本コンポーネントを数多くリリースしました。 詳細は、Industry accelerators overview を参照してください。

詳細情報 Planning a Power Apps project を参照してください。