6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Power Appsのアプリで他のシステムのデータを使いたいときの方法としては、主に3つあります。

①アプリから他のシステムに直接連携する
②他システムのスキーマ・テーブルをDataverseに持ってくる
③スキーマだけをDataverseに持ってくる(データは他システムに置いたままにする)

今回は③の方法について、Dataverseの「仮想テーブル」をご紹介します。

概要

仮想テーブルでは、Dataverseからデータを見ることができますが、実際にデータがストアされているのは接続元の外部システムになります。
Dataverseから透過的に、他のシステムのデータを見ているようなイメージです。

image.png

仮想テーブルを使用するメリットは以下のようになっています。

  • コーディングなしに、外部システムに存在するデータの統合が可能
  • 実行時に外部データソースに直接接続できるので、データレプリケーションをする必要がない
  • アプリから見た時にDataverseのテーブルとして扱える
  • Dataverse内の他のテーブルとリレーションを張ることができる

操作方法

では、実際に仮想テーブルを作っていきましょう。

接続元データベース

接続元データベースを見てみます。
今回はAzure SQL Databaseと接続させます。

image.png

実際のデータは以下の画像のようになっています。
ProductCategoryID、ParentProductCategoryID、Name、rowguid、ModifiedDateなどの列があります。
image.png

Dataverseから接続

Power Appsスタジオ(https://make.powerapps.com )にアクセス
[テーブル]>[新しいテーブル]>[外部データによる新しいテーブル]

image.png

[新しい接続]をクリック
image.png

SQL Serverの[+]をクリック
ここでPower Platformの中に接続というオブジェクトを作成しています。
image.png

認証やサーバーの場所、いわゆる接続文字列を入れたら[作成]ボタンをクリック
image.png

テナントID 取得方法
Azure Portalを開いたら、[Azure Active Directory]>[概要]>[テナントID]横のコピーマークをクリック
image.png

もとのブラウザに戻り、[更新]ボタンをクリック
image.png

登録が完了していると、接続情報が表示される為、使用する接続情報を選択して[次へ]ボタンをクリック

サーバー名とデータベース名を入力して[次へ]ボタンをクリック

SQL Serverの中のテーブルを選択し、[次へ]を選択

SQLDatabaseの先ほどのテーブルの中を読み取ってくれて、自動でスキーマを持ってきてくれます。
変更したい項目はここで編集します。
プライマリキーは重要なので、正しく持ってこれているか確認してください。
設定し終えたら、[次へ]をクリック
image.png

プレビューを確認して、[完了]ボタンをクリック
これで完了です!
image.png

実際にテーブルを見てみる

[テーブル]で作成したテーブルを選択し、テーブルの詳細画面を開くと実際のデータが入っているように見えますが、スキーマのみを持ってきている為、この中のデータは実はDataverseの中には存在していません。
SQL Serverを透過的に見に行っています。

image.png

チナミになる話
Dataverse側でデータを編集すると元のデータを編集することができます。

参考

6
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?