Power Platformでは、ExcelやSharePointリストなど多種多様なデータソースを利用することができます。
本記事では、Microsoft 365 のライセンスの範囲内で利用できるデータソースとしてDataverse for Teamsを用いた、Power Apps キャンバスアプリの作成方法についてご紹介します。
- Microsoft Dataverse for Teamsでのテーブル作成
- アクセス権の設定とアプリの公開
- Microsoft Dataverse for Teamsをデータソースとするメリット
- まとめ
Microsoft Dataverse for Teamsでのテーブル作成
Dataverse for Teams環境のプロビジョニング
Dataverse for Teams 環境は、Teams上でアプリやチャットボットを作成することで自動的にプロビジョニングされます。
詳しい手順は以下の Microsoft Learnをご確認ください。
テーブルの作成
Dataverse for Teamsの環境が作成できたら、追加したPower Appsアプリからテーブルを作成します。
- [新しいテーブルの作成] - [空白のテーブルから開始する] ボタンを選択します。
- ヘッダー リボンから [テーブルのプロパティを編集する] をクリックしてテーブル名を変更します。
- ヘッダー リボンから [+ 新しい列] を選択し、必要な列を追加します。
- [保存して閉じる] をクリックします。
今回は以下の列設定でテーブルを作成しました。
列名 |
列の種類 |
No. |
オートナンバー |
name |
一行テキスト |
date |
日付と時刻(書式:日付のみ) |
attendance |
選択肢 |
impression |
複数行テキスト |
schedule |
複数行テキスト |
task |
複数行テキスト |
アプリの編集
- アプリ編集画面の [データあり] をクリックし、先ほど作成したテーブルを選択します。
- 検索ボックスを追加します。
「新しいレコード」を右クリックしてコピーします。 - EditFormの位置を調整し、空いてる場所に貼り付けます。
- 以下の通りコントロールの削除と追加を行います。
▼削除
・TouchTarget_New1_1
・IconButton_Add_Icon1_1
・IconButton_Add_Label1_1
▼追加
・検索アイコン
・リセットアイコン
Onselect:Reset(ComboBox1)
・ComboBox1
Items:'テーブル名'
※手順④作業後の画面は下図のようになります。 - EditFormのItemsを以下に設定します。
If(IsBlank(ComboBox1.Selected),'テーブル名',Filter('テーブル名',Name=Text(ComboBox1.Selected.Name))) - 氏名の自動入力を設定します。
データタブから[データの追加] - [Office365ユーザー]を選択します。 - 接続の追加画面が開くので、 [Office365ユーザー]をクリックし作成します。
- Teams画面に戻り、以下のポップアップの[完了]をクリックします。
- [データの追加] - [コネクタ] から [Office365ユーザー] の接続を追加します。
- EditFormの[Name_DataCard]の[DataCardValue]のValueを以下に設定します。
If(newMode,Office365ユーザー.MyProfileV2().displayName,Parent.Default) - レイアウトやカードの表示名、背景を調整して完了です。
今回作成したアプリは以下のような画面に設定しました。
アクセス権の設定とアプリの公開
アプリが作成できたら以下の手順でテーブルへのアクセス権を設定し、アプリをチームに公開します。
- アプリを保存してビルド画面へ戻り、テーブルの […] - [アクセス許可を管理する]をクリックします。
- メンバーおよびゲストユーザーのアクセス許可を設定します。
- リソース一覧の画面に戻り、アプリ名の[…] - [Teamsに追加]をクリックします。
Microsoft Dataverse for Teamsをデータソースとするメリット
上記の手順でMicrosoft Dataverse for Teamsを利用したキャンバスアプリを簡単に作成できました。
では、SharePointリストやExcelファイルをデータソースとする場合と比べ、Microsoft Dataverse for Teamsはどのようなメリットがあるかご紹介します。
ソリューション
作成したアプリを別環境に移行したい場合、データソースごとソリューションをエクスポートしてインポートすれば良いため、他のデータソースを利用するより楽に実行できます。
SharePointリストをデータソースとした場合、移行先でリストの再作成、Power Appsへの再接続が必要です。また、リスト名や列名は同一でないとエラーが起きてしまうため、Microsoft Dataverse for Teamsより移行時の考慮点が多いです。
リレーションシップ
1つのアプリに対して複数のテーブルが必要な場合、Dataverse for Teamsではリレーションでテーブル間の関係を設定し矛盾を無くすことが可能です。
例えば、ユーザーテーブルで一意なユーザー情報を格納したり、勤怠データを別テーブルで管理したりするなど、使用するテーブル数が多い場合に有効です。
委任について
アプリの効率を向上させるためには、必要なデータだけを取り込むことが重要です。これにより処理能力やメモリ、ネットワーク帯域の削減が可能で、ユーザーの応答時間も短縮されます。Power Appsの委任機能を利用すれば、ネットワーク経由でのデータ移動を最小化し、データ処理をデータソースに委任することができます。
Microsoft Dataverse for Teamsの場合、上記の委任が可能です。しかし、Excelは委任機能がないのでデータを2000件までしか扱えません。
また、SharePointは委任機能はありますが、Dataverse と比較すると委任できる処理が少ないです。
委任に関しての詳細情報は以下をご参照ください。
まとめ
今回は、Microsoft Dataverse for Teamsを用いた日報アプリの作成と他データソースと比べた場合のメリットについてご紹介いたしました。
SharePointリストをデータソースにした場合とアプリ内での列名の指定方法が異なり、関数の設定に躓きましたが、比較的簡単に作成することができました。
また、Dataverse for Teamsは容量が2GBまでという制限があるため、Dataverseの試験利用や、チーム内(数十~数百人)で少ないデータを運用する場合に有効であると思いました。
Power Appsアプリを作成する際のデータソース選びの際に、ぜひ参考にしてみてください。