編集

次の方法で共有


Power Apps と Power Automate を使用した Power BI データの書き戻し

Power BI
Power Apps
Power Automate
Microsoft Power Platform

このソリューションは、Power BI のネイティブ Power Apps ビジュアルを使用して、Power Apps キャンバス アプリを実装するものです。 Power Automate は、一括処理と更新のためのバックグラウンド自動化を提供します。

Architecture

Diagram that shows an architecture for Power BI data write-back.

このアーキテクチャの Visio ファイルをダウンロードします。

データフロー

このソリューションのコア コンポーネントには、Power BI から事前にフィルター処理されたデータを Power Apps や Power Automate ファネルに渡し、対応するバックエンドで更新を行う機能が組み込まれています。 Power BI データ セット (またはデータフロー) を最新の情報に更新して、すべてのユーザーが更新を確認できるようにすることが重要です。

デプロイ

(詳細については、この記事で後述する「このシナリオのデプロイ」を参照してください)。

A. Dataverse と、関連するカスタム テーブルを含む対応するモデル駆動型アプリをデプロイします。

B. すべてのバックエンド テーブルとビューを Power BI データ セット (PBIX) にインポートします。

C. デスクトップ アプリケーションの Power Apps 視覚化を使用して、Power BI と Power Apps の統合を開始します。

D. Power Apps を使用して、必要なすべてのデータを操作および更新する機能を提供するキャンバス アプリを作成します。

プロセス フロー

  1. データを収集する。 Power BI レポートの視覚化の一部を選択して、選択した行またはデータ セットをクロス フィルター処理します。 この操作により、必要な基になるデータが Power BI レポート インターフェイスから埋め込みキャンバス アプリに渡されます。
  2. キャンバス アプリの UI を使用して、データを更新するか、Dataverse に挿入する。 Power Apps にネイティブな、バックエンド データに直接結びついたフォームやギャラリーなどのバウンド コントロールを利用することで、これを行うことができます。 あるいは、バインドされていないコントロールを利用して、よりカスタマイズされた機能を実装することもできます。 これらのコントロールには、追加の Power Fx コードが必要です。 単一更新シナリオでは、SubmitFormPatchUpdateIf 関数を使用して、バックエンドにデータを直接コミットするようにアプリをコーディングすることができます。 一括更新シナリオでは、Collect 関数を使用してコレクション (仮想テーブル) を確立することができます。 その後、コレクションを渡して、すべてのデータ更新を一度に処理することができます。 キャンバス アプリのスクリーンショットについては、「Power App UI」を参照してください。
  3. ソースに更新をプッシュする。 Power Automate フローでは、シナリオの要求に応じてバックグラウンド自動化が提供されます。 選択したテーブルの 1 行のみを更新する単一更新シナリオでは、単純なフローが実行され PBIX データ セットが更新されます。 これにより、更新データが Dataverse バックエンドとレポート レイヤーに確実に反映されます。 一括更新シナリオでは、より複雑なフローが実行されます。 前の手順で説明した、Power Apps コレクションから渡された入れ子になったオブジェクトの JSON コレクションが使用されます。 その後、このフローにより、入れ子になった各オブジェクトが反復処理され、必要に応じて Dataverse 内のデータが個別に更新されます。 更新手順が完了すると、フローによって PBIX が更新されます。 Power BI レポートで DirectQuery を使用する場合は、PBIX の更新に関連する自動化手順は必要ありません。
  4. 更新を視覚化する。 すべてのデータが更新され、最新の情報に更新されます。 エンド ユーザーは、ブラウザー ウィンドウを最新の情報に更新して、更新内容を確認することができます。

Components

  • Dataverse。 高度なセキュリティ、カスタマイズ性、拡張性を備えた環境でデータを格納するために使用できる、バックエンド データベース ソリューションです。 この環境は、Dynamics 365、Azure、Visual Studio、Power Query とシームレスに連携します。 Dataverse により、効率的なデータ処理と、セマンティックの一貫性を実現するオープンソースの共有データ モデルが提供されます。
  • を公開します。 ソフトウェア サービス、アプリ、コネクタのコレクションであり、これらを組み合わせることで、関連性のないデータ ソースから、まとまりがあり、実体験的な対話型の分析情報を得ることができます。
  • Power Apps。 アプリ、サービス、コネクタのスイートであり、すべてを包括的なデータ プラットフォームで利用することができます。 このサービスを利用することで、カスタムのビジネス ニーズを満たすアプリケーションをすばやく作成することができます。 このソリューションでは、直感的な UI でデータの更新や挿入を行うために Power Apps を使用します。 また、自動化のトリガーとしても機能します。
  • Power Automate 接続されたさまざまなアプリと外部サービスとの間で、自動化されたワークフローを作成するために利用できるサービスです。 データの転送、通知の送信、成果物の収集などを行うようにこれを構成することができます。 このソリューションでは、更新データの一括処理と、PBIX および Dataflow レイヤーでのデータ更新に Power Automate を使用し、更新データを Power BI レポートへプッシュ バックします。

代替

  • Dataverse の代替として、次のソリューションがあります。
  • このソリューションでは、ご利用の環境におけるデータの規模や効率に応じて、Power Query データフローを単独で、あるいは Power BI データ セットと共に使用することができます。 ソリューションでデータフローを使用する場合は、Power Automate 拡張機能を管理して、各データフローまたはデータ セットを適宜更新する必要があります。
  • JavaScript、HTML、C# などの言語を使用してカスタム アプリケーションを構築し、Power BI レポートに埋め込んで、選択したデータを更新することができます。 ただし、これらのアプリは、Power Apps のようなネイティブの視覚化がないため、Power BI レポート レイヤーで異なる方法で実装する必要があります。 これらのアプリにスケーラビリティを実装する場合は、それを監視する必要があります。 Power BI でカスタム コンポーネントを最適に実装する方法については、Power BI デベロッパー センターに関するページを参照してください。
  • 書き戻しシナリオに Power BI 用 Power Automate ビジュアルを使用することもできます。 このビジュアルは、大規模なデータ セットを処理するために最適化されており、Power Apps は委任を処理します。 Power Automate と Power Apps ビジュアルを併用することで、スケーラブルな効率化を実現することができます。 Power Automate ビジュアルを使用すると、表示される UI がなくてもバックグラウンドでデータ更新が行われます。

シナリオの詳細

Power BI のデータの書き戻し機能のためのこのソリューションにより、Power BI からデータを直接変更するための対話型で効率的な方法が提供されます。 Power BI には、レポートやダッシュボードを操作しながらデータをインラインまたは一括で更新するために利用できるネイティブ ソリューションが現時点ではありません。 変更をデータにプッシュするには、データ ストアで直接更新を行い、DirectQuery を使用していない場合は、データ セットを最新の情報に更新してプロセス フローを完了する必要があります。 このプロセスは非効率的であり、特定のバックエンドや基になるデータにアクセスできないユーザーにとって問題となる可能性があります。

考えられるユース ケース

このアーキテクチャは極めて反復的です。 複数の異なるバックエンド データ ストアで使用し、さまざまなユース ケースに適応させることができます。 このアーキテクチャの実用的な用途は次のとおりです。

  • インライン編集。 このソリューションは、バックエンド データベースへのプロビジョニング済みアクセスがなくても、その場で更新する必要のあるデータに使用することができます。
  • 承認ワークフロー。 Power Apps と Power Automate で Power BI の機能を拡張することで、エンド ユーザーがダッシュボードから直接レビューの必要なデータを収集し、後続の承認者にそれを送信することができます。
  • データドリブン アラート。 このソリューションにより、レコードの送信や、Power Automate フローへのデータ パケットの受け渡しを通じて、特定の分析情報に関する自動通知をカスタマイズすることができます。

Power App UI

次のスクリーンショットは、Power BI から基になるデータベースにデータが渡されるプロセスを示しています。

キャンバス アプリのホーム画面を次に示します。

Screenshot that shows the home screen for the canvas app.

次のスクリーンショットは、単一更新プロセスを示しています。

Screenshot that shows the process for a single update.

次のスクリーンショットは、一括更新プロセスを示しています。

Screenshot that shows the process for a bulk update.

考慮事項

これらの考慮事項は、ワークロードの品質向上に使用できる一連の基本原則である Azure Well-Architected Framework の要素を組み込んでいます。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。

スケーラビリティ

Power BI とキャンバス アプリの統合を正しく確立して書き戻しに対応するには、Power BI レポート上の Power Apps 視覚化からキャンバス アプリを直接作成して、それを設定する必要があります。 この統合が正しく設定されていないと、Power BI レポート レイヤーから Power Apps UI にクロスフィルター処理されたデータを渡す手段がなくなります。

スケーラビリティを考慮する際には、委任に対処する必要があります。 委任は、アプリのロジックの実行中にクラウド経由でデータ処理のスコープを制限する、Power Apps (キャンバス アプリ) に固有の概念です。 このソリューションで実装されるキャンバス アプリは、ループまたは複雑なフィルター ステートメントを使用する大規模なデータ セットを処理するため、バックエンド データベース、そして Power BI データ セットへの更新を実行する際にすべてのデータが確実にカバーされるように適切にプロビジョニングする必要があります。 このシナリオでは、Power Automate を使用することで、2,000 行を超える大規模な一括更新を処理する際に効率を向上させることができます。

可用性

このアーキテクチャで説明されているすべてのコンポーネントは、リージョンの可用性に応じて自動的にスケーリングされるマネージド サービスです。 現在、Power Apps は 6 つのコア リージョンと 42 の言語で利用できます。 詳しくは、サービスの可用性に関するページをご覧ください。

Dataverse は、サービスを中断させる可能性のある悪意のある動作を軽減するために、サービスの保護制限を用いることで、エンタープライズ レベルのスケーラビリティのニーズに対応できるように設計されています。

SLA の詳細については、「サービス レベル契約」を参照してください。

セキュリティ

行レベルセキュリティ (RLS) は、Power BI で個々のユーザーまたはグループのデータ アクセスを制限するための最適な方法です。 RLS モデルは、このソリューションで保持されます。 Power BI のユーザーのアクセス許可が、データ モデル全体のサブセットのみを表示するように設定されている場合は、そのサブセットのみが Power Apps レイヤーに渡されます。 ただし、エンド ユーザーが特定のデータにのみアクセスできるように Power Apps レイヤーを構成する必要があります。

Power Apps のデータ セキュリティは、Dataverse バックエンドでロール ベース セキュリティを使用して構成します。 チーム、グループ、または個々のユーザーにロールを適用して、このソリューションで操作可能なレコードを指定することができます。 この機能により、バックエンドへの異なるレベルのアクセス権を持つユーザーに対して、1 つのキャンバス アプリを使用することができます。 ソリューション全体の一貫性を確保するために、ロール ベース セキュリティ構成が、各チーム、グループ、またはユーザーの Power BI 行レベルのセキュリティ モデルで説明されているアクセス許可と一致していることを確認してください。

Well-Architected フレームワークを実装する方法の詳細については、Microsoft のセキュリティの柱に関する記事を参照してください。

コスト最適化

コストの最適化とは、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳しくは、コスト最適化の柱の概要に関する記事をご覧ください。

Power AppsPower Automate は、柔軟な価格モデルを持つサービスとしてのソフトウェア (SaaS) アプリケーションです。 ビジネス ニーズに合ったアプリ単位またはユーザー単位のプランを利用して、Power Apps のライセンスを取得することができます。 同様に、ユーザー単位またはフロー単位 (単一の自動化) のプランを利用して Power Automate のライセンスを取得することができます。

複数のバージョンの Power BI が利用可能です。 取り込まれるデータの量に応じて選択することができます。 Power BI Pro については、ユーザー単位のプランのみ利用可能です。 Power BI Premium では、ユーザー単位と容量単位のプランが提供されます。

このシナリオのデプロイ

運用環境でこのソリューションを実行するには、関連する Power Platform のライセンスが必要です。 また、ソリューションの管理者またはカスタマイザーは、Power Appsと Power Automate へのアクセスを有効にするために適切なセキュリティ ロールも必要です。 これらのライセンスまたはロールにまだアクセスできない場合は、Power Apps 開発者向けプランを利用して、それまでの間に開発を開始することができます。

このソリューションをデプロイするには、以下を実行します。

  1. レポート レイヤーの基本コンポーネントとして、Power BI Desktop に PBIX ファイルを作成します。 Dataverse または使用しているバックエンドから必要なデータをすべてインポートします。
  2. Power BI 用の Power Apps ビジュアルを [視覚化] ウィンドウから直接追加します。 Power BI 用の Power Apps ビジュアルから直接アプリを作成することが、Power BI と Power Apps の統合を実装する唯一の方法です。
  3. 統合を実装したら、合理化するビジネス プロセスを実行するためのキャンバス アプリを開発、設計、コーディングする必要があります。
  4. 一括処理が必要な場合、開発者は、Power Apps のデータの使用とその Dataverse への反映を処理する Power Automate フローを作成する必要があります。 自動化に組み込む通知や承認ワークフローを提供するように、このフローを構成することができます。
  5. アプリが完成したら、それを Power BI レポートに組み込む必要があります。 Power BI レポート画面で直接実行するか、ドリルスルー ページを構成することでこれを行うことができます。

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパルの作成者:

その他の共同作成者:

パブリックでない LinkedIn プロファイルを表示するには、LinkedIn にサインインします。

次の手順

製品ドキュメント:

Microsoft Learn トレーニング モジュール: