Power Appsのアプリで他のシステムのデータを使いたいときの方法としては、主に3つあります。
①アプリから他のシステムに直接連携する
②他システムのスキーマ・テーブルをDataverseに持ってくる
③スキーマだけをDataverseに持ってくる(データは他システムに置いたままにする)
今回は③の方法について、Dataverseの「仮想テーブル」をご紹介します。
概要
仮想テーブルでは、Dataverseからデータを見ることができますが、実際にデータがストアされているのは接続元の外部システムになります。
Dataverseから透過的に、他のシステムのデータを見ているようなイメージです。
仮想テーブルを使用するメリットは以下のようになっています。
- コーディングなしに、外部システムに存在するデータの統合が可能
- 実行時に外部データソースに直接接続できるので、データレプリケーションをする必要がない
- アプリから見た時にDataverseのテーブルとして扱える
- Dataverse内の他のテーブルとリレーションを張ることができる
操作方法
では、実際に仮想テーブルを作っていきましょう。
接続元データベース
接続元データベースを見てみます。
今回はAzure SQL Databaseと接続させます。
実際のデータは以下の画像のようになっています。
ProductCategoryID、ParentProductCategoryID、Name、rowguid、ModifiedDateなどの列があります。
Dataverseから接続
Power Appsスタジオ(https://make.powerapps.com )にアクセス
[テーブル]>[新しいテーブル]>[外部データによる新しいテーブル]
SQL Serverの[+]をクリック
ここでPower Platformの中に接続というオブジェクトを作成しています。
認証やサーバーの場所、いわゆる接続文字列を入れたら[作成]ボタンをクリック
テナントID 取得方法
Azure Portalを開いたら、[Azure Active Directory]>[概要]>[テナントID]横のコピーマークをクリック
登録が完了していると、接続情報が表示される為、使用する接続情報を選択して[次へ]ボタンをクリック
サーバー名とデータベース名を入力して[次へ]ボタンをクリック
SQLDatabaseの先ほどのテーブルの中を読み取ってくれて、自動でスキーマを持ってきてくれます。
変更したい項目はここで編集します。
プライマリキーは重要なので、正しく持ってこれているか確認してください。
設定し終えたら、[次へ]をクリック
プレビューを確認して、[完了]ボタンをクリック
これで完了です!
実際にテーブルを見てみる
[テーブル]で作成したテーブルを選択し、テーブルの詳細画面を開くと実際のデータが入っているように見えますが、スキーマのみを持ってきている為、この中のデータは実はDataverseの中には存在していません。
SQL Serverを透過的に見に行っています。
チナミになる話
Dataverse側でデータを編集すると元のデータを編集することができます。
参考