Power Apps iconPower AppsことはじめPower Apps icon
【比較検証】3ステップで進化させる資産管理アプリ
Step 5 / 7

[開発] Dataverseを使い、アプリを開発する

Dataverseで設定したリレーションシップを活用し、アプリにします。

Dataverseでアプリを作る手順

  1. Power Appsの「作成」>「Start from data」にある「Dataverse」を選択します。
  2. データ選択の画面で「資産管理」と検索し、表示された「資産管理サンプル」を選択後、「アプリを作成する」を実行します。
  3. RightContainer内のFormで「フィールド」を選択し、適切に並び替えて表示順序を変更します。
  4. SidebarContainerのRecordGalleryで、「Items」を選択し、下記の式に変更します。
Search([@資産管理サンプルs], SearchInput1.Text, 資産名, 管理者)
  1. アプリ名を設定して保存後、「アプリのプレビュー」からアプリを確認します。

Dataverseデータソースのアプリ

ExcelやSharePointとの違い

委任のエラーは出ない

まず、SharePointリストと異なるのは、Galleryの「Items」に出ていた委任エラーがないことです。

Search([@資産管理サンプルs], SearchInput1.Text, 資産名, 管理者)

Dataverseは委任エラーが出ない

一意列の違い

SharePointの一意列の取り扱いは、特定の列を「タイトル」として設定し、一意性を決めています。
 ※SharePointリストで開発したアプリの「No.」列が「Title」になっている点に留意

SharePointリストをインポートしてDataverseテーブルを作成したため、リストの「Title(No.)」列が主キーとなります。
この列名の違いにより、Power Apps側でも「Title」と「No.」に表示が分かれています。

なお、Excelをデータソースとして開発したアプリは、Excelテーブルで主キーを設定できないため、事実上主キーは存在しません。
 ※ただし、「No.」列などのインデックスを付け、主キーとしての役割を持たせている

Dataverseの主キー

リレーションの使用

Dataverseで設定したリレーションを使うと、Power Apps内の表示も非常にスマートになります。

例えば、部署や使用状態を選択式のコントロールに置き換えるケースを想定します。
部署テーブルに「部署名」と「代表者」、使用状態テーブルと「状態名」と「棚卸対象」がある場合、「部署名」や「状態名」を選択すると、選択した値に従い、「代表者」や「棚卸対象」の値が使用できます。

ただし、テキスト入力の値はGUIDがないため、関連させることができません
GUIDは値を一意に決めるIDで、値の見た目は同じでも、取り扱う場合には違うものになります。
選択式であれば、GUIDは選択肢ごとに作られ、選ばれた選択肢のGUIDで関連付けることが可能です。
 ※SharePointリストからインポートした値はテキスト値のため、状態テーブルの「状態名」とはリレーションできない

Caution: リレーションを使う場合、選択式のコントロールを必ず使うこと。

とはいえ、テキスト値でも各マスターテーブルと関連付ける方法はあり、それはLookup関数を使います。

Tips: リレーションを使う場合は選択式のコントロール、テキスト値から関連付ける場合はLookup関数を使います。

Dataverseを選ぶデメリット

ライセンスの壁

Dataverseを使ったアプリを公開し、自分以外のユーザーが利用するためには、Power Apps Premiumプランが必要です。
Microsoft 365の標準ライセンスでは、開発者プランとしての開発、開発者本人のみの利用にとどまります。
 ※開発者プランではDataverseのフル機能を使えるため、導入前の技術検証では有効

また、Premiumプランに加入してもDataverseには使用上限があり、その上限を超える分は別途コストが発生します。

学習コスト

Dataverseは多機能ではありますが、それだけ綿密な設計が要求されます。
データ型、アクセス制御(セキュリティ)、リレーションなど、正しく使うための知識が必要です。

データ移行の難易度

SharePointリストからDataverseでの移行で見たように、そもそもDataverseに沿ったデータ型などの設計をしていないと、うまく対応できないケースに直面します。
このステップでも見たように、リレーションは選択式にする必要があるため、SharePointリストでテキスト入力を受け付けていた場合、その列のリレーションは困難が予想されます。

広告