この参照アーキテクチャでは、モデル駆動型アプリでカスタム ページを使用して、ドキュメントをSharePointにアップロードするときにメタデータをキャプチャする方法について説明します。 このアプローチにより、モデル駆動型アプリのユーザー エクスペリエンスが向上し、アップロード時にメタデータを適用することで、SharePointでのドキュメント ガバナンスと検索可能性がサポートされます。
Tip
この記事では、モデル駆動型アプリからSharePointへのメタデータ対応ドキュメントのアップロードにカスタム ページを使用する方法を示すシナリオと視覚的表現の例を示します。 このソリューションは、さまざまなシナリオや業界で使用できる、一般化されたシナリオ アーキテクチャの例です。
アーキテクチャ ダイアグラム
Workflow
ユーザーがモデル駆動型アプリを開き、ドキュメントのアップロードを必要とするレコード (ケース、連絡先、アカウントなど) に移動します。
ユーザーが [ドキュメントの アップロード ] アクション (コマンド バー ボタン) を選択すると、モデル駆動型アプリ内のダイアログとしてカスタム ページが起動されます。
カスタム ページには次のものが用意されています。
- ファイルの選択 (単一または複数のファイル)。
- SharePoint ドキュメント ライブラリの列に整合されたメタデータフィールド。
- ビジネス ルールに基づく検証とガイダンス。
- モデル駆動型アプリ URL のレコード ID を使用した、元のレコードのコンテキスト。
ユーザーがフォームを送信すると、カスタム ページによってPower Automateクラウド フローが呼び出されます。
Power Automate:
フロー内の目的の場所ロジックに基づいて、ターゲット SharePointドキュメント ライブラリまたはフォルダーにファイルをアップロードします。
カスタムページで指定された値を使用して、SharePointのメタデータを設定します。
組み込みの Dataverse およびSharePoint統合との下位互換性を維持するために、Dataverse で対応するドキュメントの場所レコードを作成または更新します。
アップロードされたドキュメントは次のとおりです。
- 元の Dataverse レコードに関連付けられます。
- メタデータを使用してSharePointで検索およびフィルター処理できます。
シナリオの詳細
組織では、SharePointドキュメント管理とモデル駆動型アプリを頻繁に使用して、ビジネス レコードに関連するドキュメントを格納します。 ただし、組み込みのSharePoint統合では、ユーザーがアップロード中に必要なメタデータを設定することは許可されないため、次のようになります。
- 不完全または不整合なメタデータ
- 検索可能性とコンプライアンスの低下
- アップロード後にドキュメントを分類するための手動手直し
このアーキテクチャでは、アップロード時にメタデータをキャプチャするカスタム ページ ベースのアップロード エクスペリエンスを導入することで、これらの制限に対処します。 このアプローチにより、データの品質、ユーザー エクスペリエンス、コンプライアンスが向上し、Power Platform と Microsoft 365 エコシステム内に完全に残ります。
主要なビジネス価値には次のものが含まれます。
- ドキュメント ガバナンスとメタデータの品質の向上
- モデル駆動型アプリに埋め込まれた一貫したユーザー エクスペリエンス
- 手動による介入と再分類の削減
- カスタム コードを使用しない複雑なワークフローの拡張性
Components
Power Apps (モデル駆動型アプリ): コア ビジネス エクスペリエンスをホストし、ドキュメントのアップロードのコンテキストを提供します。
Power Apps カスタム ページ: モデル駆動型アプリ内でモーダル ダイアログとして表示される、ファイルのアップロードとメタデータ キャプチャ用の柔軟で低コードの UI を提供します。
Power Automate: ネイティブ SharePointコネクタと Dataverse コネクタを使用して、ファイルのアップロード、メタデータの割り当て、およびオプションのダウンストリーム プロセスを調整します。
SharePoint: ドキュメント管理、メタデータ、バージョン管理、セキュリティを提供するドキュメント リポジトリとして機能します。
Microsoft Dataverse: SharePointドキュメントをモデル駆動型アプリ レコードにリンクするビジネス データとドキュメントの場所レコードを格納します。
代替案を検討する (開発とメンテナンス作業の増加):
- カスタム Web リソース
- Power Apps コンポーネント フレームワーク (PCF) コード コンポーネント
考慮事項
これらの考慮事項は、ワークロードの品質を向上させる一連の基本原則である Power Platform Well-Architected の柱を実行します。 詳細については、Microsoft Power Platform Well-Architected を参照してください。
Reliability
このアーキテクチャにより、プラットフォーム コンポーネント間での信頼性の高いドキュメントのアップロードとメタデータの永続化が保証されます。
分離された UI とストレージ: カスタム ページは、ユーザーの操作とデータ キャプチャを処理します。 SharePointは、ファイル ストレージとメタデータの永続化と、SharePointとモデル駆動型アプリ レコード間の Dataverse リンクを管理します。
トランザクション ドキュメント処理: ドキュメントのアップロードとメタデータの割り当ては、1 つの論理操作です。 メタデータ アプリケーションが失敗した場合、プロセスはアップロードを再試行またはロールバックするため、孤立したドキュメントや部分的に分類されたドキュメントは取得されません。
Platform ネイティブ持続性: SharePointは、ドキュメント ストレージに組み込みの持続性、バージョン管理、冗長性を提供します。 Dataverse は、ドキュメントの場所とビジネス データの信頼性の高い永続化を保証します。
Retry and failure handling: Power Automateでは、ネイティブ再試行ポリシーとエラー処理を使用して、SharePointまたは Dataverse と対話するときの一時的なエラーを管理します。 この方法では、カスタム インフラストラクチャを導入することなく回復性が向上します。
セキュリティ
セキュリティは、ユーザー エクスペリエンス、オーケストレーション、およびストレージレイヤー全体で一貫して適用されます。
Identity ベースのアクセス制御: ユーザーはMicrosoft Entra IDを介して認証します。 ロールベースのセキュリティとSharePointのアクセス許可は、モデル駆動型アプリ、カスタム ページ、およびSharePoint ドキュメントへのアクセスを制御します。
最小限の特権の設計: ユーザーは、Dataverse でアクセスする権限を持つレコードに対してのみドキュメントをアップロードおよび表示できます。
直接SharePoint公開しない: ユーザーはSharePointライブラリと直接やり取りすることはありません。 すべてのアップロードはモデル駆動型アプリ内のカスタム ページを通じて行われるため、ビジネス ルールやメタデータ要件をバイパスするリスクが軽減されます。
安全なコネクタの使用状況: Power Automate接続では、必要に応じてマネージド ID またはサービス プリンシパルが使用されます。
Data 境界の一貫性: カスタム ページでキャプチャされたメタデータは、Dataverse スキーマとSharePointスキーマに対して検証され、未承認の値や形式が正しくない値が挿入されないようにします。
オペレーショナル エクセレンス
このアーキテクチャでは、保守性、可観測性、変更の容易さを重視しています。
ローコード拡張性: カスタム ページとPower Automateを利用することで、カスタムコードを再展開することなく、メタデータ要件、検証ルール、またはアップロード動作を変更できます。
懸念事項の明確な分離:
- モデル駆動型アプリ: ビジネス コンテキストとナビゲーション
- カスタム ページ: ドキュメントのアップロードとメタデータキャプチャ
- Power Automate: オーケストレーションと統合
- SharePoint: ドキュメントの管理とコンプライアンス
監視と診断: Power Automate実行履歴と Dataverse 監査により、アップロードエラー、メタデータの問題、およびユーザーの動作を可視化できます。 必要に応じて、Azure アプリケーション Insights で使用するためにこの監視を拡張できます。
Environment strategy alignment: このソリューションは、マネージド ソリューションと環境変数を使用して、SharePointターゲットの標準的な Power Platform 環境戦略 (開発、テスト、運用) をサポートします。
変更の分離: 基になるモデル駆動型アプリの構造に影響を与えることなく、SharePoint 内のカスタムページUIにメタデータスキーマの変更を反映できます。
パフォーマンス効率
パフォーマンスに関する考慮事項では、ユーザーの待機時間と不要な処理を最小限に抑えることに重点を置きます。
1 回の対話アップロード: 最初のアップロードではメタデータがキャプチャされて適用されるため、セカンダリの手動更新やバックグラウンドの再処理を回避できます。
モーダル、コンテキスト内 UI: カスタム ページは、モデル駆動型アプリ内でモーダル ダイアログとして実行されます。 この方法では、ページ ナビゲーションが減少し、認識される応答性が向上します。
非同期処理: 通知や分類などの重要でないアップロード後のアクションは非同期的に処理され、ユーザーがブロックされないようにします。
最適化されたデータ転送: ファイルは、Dataverse に一時的に格納するのではなく、ネイティブ コネクタを使用してSharePointに直接転送されます。
スケール可能なプラットフォーム サービス: SharePointとPower Automateは、手動で容量を計画することなく、さまざまなドキュメント ボリュームをサポートするように自動的にスケーリングされます。
エクスペリエンスの最適化
このアーキテクチャは、一貫性のある直感的なユーザー エクスペリエンスを提供します。
コンテキスト対応ドキュメントのアップロード: ユーザーは関連するビジネス レコードからドキュメントを直接アップロードするため、ドキュメントが自動的に正しく関連付けられます。
ガイド付きメタデータ キャプチャ: カスタム ページでは、必要なメタデータが適用され、検証が提供され、ドキュメントの種類またはレコード コンテキストに基づいてフィールドを動的に調整できます。
コグニティブ負荷の軽減: モーダル操作により、ユーザーはモデル駆動型アプリから離れることなく、タスクに集中できます。
Power Platform UX との整合性: このソリューションでは、ネイティブのPower Appsコントロールとパターンが使用され、アクセシビリティ、応答性、使い慣れ性が確保されます。
即時のフィードバック: ユーザーは、ドキュメントとメタデータが正常に保存されたという確認を受け取り、システムの信頼性と信頼を高めます。
貢献者達
Microsoft では、この記事を保持しています。 この記事を書いたのは、以下の寄稿者です。
主要な著者:
- Kevin McDonald(エンタープライズ アーキテクト)