6.1 Dataverseについて
DataverseはPower Platformが提供するSaaSサービスで、主にPower Platformで構築したシステムのデータソースとして使用します。
Dataverseを使用したアプリを実行するためには有償のライセンスが必要ですが、多機能かつ高機能なデータソースサービスのため、複雑なデータ操作や、データの処理速度が必要となるプロジェクトで使用されます。
6.2 Dataverseのデータ管理
DataverseはデータをRDB形式で管理することができます。
テーブルや列をローコード/ノーコードで編集することができ、ユーザーはテーブルの設計に注力することができます。
また、Dataverseではロールベースのセキュリティモデルを採用し、列単位でのセキュリティ設定もできるため、非常に細やかな権限設定を行うことができます。
詳しくはこちらを参照してください。
6.3 Dataverseの種類
Dataverseには以下2種類あり、プロジェクトの規模や要件によって使い分けます。
- Dataverse
- Dataverse for Teams
6.3.1 Dataverse for Teams
Dataverse for TeamsはTeams上で動作するPower Appsからのみ使用することができるDataverseで、通常のDataverseと違い無料で使用することができます。
Dataverse for Teamsは無料で使用できる分、Dataverseに比べ以下の制約があります。
- Teams上で動作するPower Appsからのみ使用可能
- テナントで作成できる数に制限がある
- データの容量がDataverseより少ない
- Dataverseよりセキュリティモデルの設定を細やかにできない
など
上記以外にもDataverseとの違いがありますので、こちらを参考にプロジェクトに適したデータソースを選択してください。
6.4 Dataverseの基本的な使い方
ここではDataverseの基本的な使い方を説明します。
6.4.1 事前準備
事前準備として、Dataverseが有効な環境を作成します。
もし有償ライセンスを持たない場合は試用版環境を作成し、その環境を使用します。
※環境の作成方法については章「Power PlatformのALM」で記述します。
6.5 テーブルの作り方
サンプルとして「商品カテゴリ」テーブルと「商品」テーブルを作成し、2つのテーブルを1 : Nのリレーションで結んでみます。
6.5.1 テーブル「商品カテゴリ」の作成
Dataverseが有効な環境を開き、[テーブル]タブの[空白のテーブルから開始する]を選択し、
テーブルの「表示名」「複数形の名前」共に「商品カテゴリ」を設定し、スキーマ名に任意の名前(サンプルではproduct_category)を設定します。
※スキーマ名は英数字のみ
続いて既定で作成される列「新しい列」の名称を「カテゴリ名」に変更し、任意のスキーマ名を設定し保存を押します。
列の追加ボタン(+)から新しい列を追加し、表示名を「カテゴリID」、データの種類を「1行テキスト」、任意のスキーマ名を設定して「保存」を押します。
2つの列が作成されたらテーブル「商品カテゴリ」の作成は完了です。
6.5.2 テーブル「商品」の作成
商品カテゴリと同様に空白のテーブルの作成からテーブルを作成し、既定の列名を「商品名」に変更します。
続いて新しい列として「価格」を作成し、データの種類を「整数」に設定して保存を押します。
列「商品名」と「価格」が追加されたことを確認したら「作成」を押下し、テーブル「商品」の作成は完了です。
6.5.3 リレーションの作成
作成したテーブル「商品」をクリックし詳細を開いたら、[新規]→[リレーションシップ]→[多対一]を選択します。
関連テーブルにテーブル「商品カテゴリ」を選択し、[ルックアップ列の表示名]を「カテゴリ」に変更し、[完了]ボタンを押します。
[スキーマ]の[リレーションシップ]を選択し、
商品カテゴリとのリレーションが作成されていたら、テーブルの構築は完了です。
お困りですか?
- Power Platform チュートリアルでつまづいて先に進めない…
- 用語が理解できない…
- 追加実装についてのアドバイス…etc
学習しているときに疑問が出てきたら、以下のメールアドレスにご連絡ください!
弊社の担当者が折り返し回答させていただきます。
6.6 データの追加
続いて作成したテーブルにデータを追加していきます。
テーブル「商品カテゴリ」の詳細を開き、[編集]を押下します。
一括編集画面に遷移するので、Excelと同様にカテゴリIDをカテゴリ名を入力していき、データの追加が完了したら[戻る]ボタンを押下します。
※この画面は自動保存が有効になっているため、保存操作は不要です。
追加したデータが登録されていることを確認します。
続いてテーブル「商品」にデータを追加します。
先ほどと同様に詳細画面の[編集]ボタンから編一括集画面へ遷移し、非表示になっている列「カテゴリ」を表示します。
「追加(+)」ボタンから列「商品ID(1行テキスト)」を追加し、データを入力したら[戻る]ボタンを押します。
データが追加されていることを確認します。
これでDataverseへのデータの追加は完了です。
※実際の開発ではこの画面からデータを追加することはあまりなく、
- ユーザーがアプリ(キャンバス、モデル駆動など)から登録
- Excelからデータをインポート
- Power Queryを利用し他のデータサービスからデータをインポート
することが多いです。
6.7キャンバスアプリでDataverseを扱う
この章では先ほど作成したテーブルを、キャンバスアプリから操作する方法を説明します。
6.7.1 Dataverseのデータの表示
空のアプリを作成し、[データの追加]から先ほど作成したテーブルを追加します。
SharePoint Onlineのデータを一覧表示する際と同様、画面にギャラリーコントロールを表示し、Itemsプロパティにテーブルを設定することで、Dataverseのデータを一覧表示することができます。
各プロパティには「ThisItem」を使用してアクセスします。方の列続いてギャラリーで選択されているカテゴリに結び付く商品を一覧表示します。
続いてギャラリーで選択されているカテゴリに結び付く商品を一覧表示します。
画面にギャラリーを追加し、Itemsプロパティに以下の式を設定します。
Filter(商品, カテゴリ.商品カテゴリ=Gallery1.Selected.商品カテゴリ)
上記Filter式により最初に追加したギャラリーで選択されているカテゴリの商品のみが表示されます。
このFilter式ではDataverseにテーブルを追加した際に自動で作成される「一意識別子」型の列を使用しています。
この「一意識別子」型の列はテーブル名と同じ名前で作成され、レコードが追加される際に自動でGUIDが採番されます。
※GUID:128ビットの整数値で構成されるレコードを一意に識別可能な値。
このFilter式は、
テーブル「商品」のレコードのうち、
列「カテゴリ」に設定された「商品カテゴリ」レコードのGUIDが、
ギャラリーで選択されている「商品カテゴリ」レコードのGUIDと一致するレコードのみを抽出
といった式になります。
Filter(商品, カテゴリ.商品カテゴリ=Gallery1.Selected.商品カテゴリ)
Tips:委任の制限なしで「in」が使える
SharePointリストと違い、DataverseへのFilter式では委任制限なく「in」演算子が使用できます。
これにより、全てのレコードに対しテキストの部分一致検索を行うことができます。
6.7.2 データの追加/編集
Dataverseのデータの追加や編集は、SharePointリストと同様にフォームコントロールを使用します。
編集フォームを画面に追加し、データソースにDataverseのテーブルを指定します。
今回の例ではデータの追加を試すため「既定モード」を新規に設定し、データを入力してSubmitForm関数を呼ぶと、
Dataverseにデータが追加されます。
編集も同様にフォームコントロールを使用することで実現が可能です。
お困りですか?
- Power Platform チュートリアルでつまづいて先に進めない…
- 用語が理解できない…
- 追加実装についてのアドバイス…etc
学習しているときに疑問が出てきたら、以下のメールアドレスにご連絡ください!
弊社の担当者が折り返し回答させていただきます。