Power BI上にPower Appsを表示させてリアルタイムに更新、反映させよう! Dataverseで

## はじめに
　Power BI上にPower Appsを表示させ、Power BIのフィルターでPower Apps内のデータも動かしてみましょう。更新もリアルで反映させます。
データソースは、Microsoft Dataverse（旧名 Common Data Service）で、TDS endpointをオンにして、Power BIからはDirectQueryモードでつなぎます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/ffb5c1d4-2d75-8a61-a1fd-49d40b0cb55f.png)

### Microsoft Dataverseのデータ準備
　Power Appsは、Dataverseが使えるライセンス、環境で行います（私は、Per Userライセンスを使用）。
　Power Appsの[データ]/[テーブル]から、新しいテーブルを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/ad463986-f28e-97fe-e429-dfe615bf448c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/81880160-7d4f-cb8c-4bc9-03939dbfb06f.png)

　Excelの元データを、Power Appsの[データ]/[データフロー]で、取り込みます。
Power Queryの使い勝手は、Power BIのものとほぼ同じですね。データの型を指定する等行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/40b706c6-bce2-91cf-7940-2b9c11a8a251.png)

マップテーブルも進めて...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/7c4569ae-05c6-c050-4e68-58a7cbbe8b7a.png)

取り込みを実行して...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/c3ec8bf6-e92b-f206-a2ee-f652974f5d8d.png)

ビューの選択を全てにすると、無事取り込まれました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/90b078ba-11ea-05e8-e7ec-153b05c10255.png)

### TDS endpointに関する設定
　Power BI からDirectQueryモードでDataverseに接続するには、Power Apps側で設定がいります。Power Appsの右上のギアマークより、Power Platform管理センターにいきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/b8759f26-4868-3d23-53c2-356e275e9937.png)
　対象の環境を選び
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/b376a227-f004-293a-1b7c-9d3b68d3a9a8.png)

　[設定]/[製品][機能]へ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/0c74c2fc-ff13-c096-2356-d52348f82ac0.png)

右下の[TDS endpoint]を有効にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/2c3e70ca-a8e4-c747-466e-a64a59986dcd.png)

### Power BIから接続

　Power Appsの[データ]/[テーブル]を選択したときに、上にある[Power BIで分析]より、pbidsファイルをダウンロードします。それを開くと、POwer BI Desktopが立ち上がります。サインインではM365の認証を行い接続すると...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/21a14f0e-5b52-2eab-0bf3-99714d343815.png)

前述のTDS endpointの設定をしていないと、このようなエラーになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/df5441fc-a655-2fa9-8779-f6da0cf232f6.png)

ナビゲーターまできました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/f3335e4d-6d72-928d-70ec-c8224c7d56f9.png)

あとはいつも、Power Queryでデータの確認、ビジュアル作りなので、ここは割愛します。

右下をみると、DirectQueryでつながっていることがわかりますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/aed98e70-baf0-03ff-d27b-cf64668cc8ba.png)

### Power Apps for Power BIを呼び出す
　一定のエリアを開けておいた上で、[視覚化]から[Power Apps for Power BI]を呼び出します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/9db93718-5ff9-2368-fdda-c707276f34f6.png)

　Power Appsで呼び出すフィールドを適当に[視覚化]の[Power Apps Data]に指定します。
　Power Appsのビジュアル部分の左上からDataverseがあるPower Apps環境を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/9bc0fdff-41b3-7eea-8023-ad0be45b96c3.png)
　そして新規に作成します

### Power Appsでアプリ作り
　この流れで呼び出されたたPower Appsは、「PowerBIIntegration」というコネクターが追加されています。そして、Power BIで表示していたDataversceのデータが呼び出されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/6daa2973-d2f8-0a7e-f714-7952711b9ad8.png)
　アプリを好みに整えます（詳細は割愛します）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/856a84f2-2e37-8d31-6747-1b88a1f29a98.png)
　保存、共有したら、一度Power Appsはブラウザを閉じて終了します。

　Power BI Desktopに戻るとアプリが表示されるものの、データが表示されないかもです。ここで、Power BI Serviceに発行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/0b0e8851-98d2-9c44-15b8-09975d75b042.png)

### Power BI Serviceでの微修正
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/0b2841f0-f8d4-74fb-71e7-cb95dc42e6b9.png)

　データソースの接続でエラーが出ているようです。データセットの設定を見てみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/0b9b7ed6-edbf-2d29-ec24-e1e98b04ca9a.png)

　初めての発行で、資格情報がないことがわかります。M365の認証を行い、接続を完了させます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/823c2a8e-1c3b-9da7-6c05-0cafbf885856.png)

プライバシーレベルの設定は[Organizational]です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/6fe8618b-fef7-9d1b-3966-df42ee6d06c7.png)

ビジュアルに戻り、リロードすると無事表示されました。Power BIで絞り込むと、Power Appsも合わせて絞り込まれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/38468b5f-849e-9731-df42-4395bceb02bd.png)

### Power Appsに編集画面を追加
　Power BI Serviceで編集にして、Power Appsを編集にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/3e604f64-72cf-c1f5-cbef-9a7b332a2966.png)
　新規に編集画面用のフォームを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/dac27a5d-fde1-e22a-e822-922a2c260eae.png)
　EditForm1のデータソースで、DataVersiseを指定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/aa1a28a9-60bc-ead7-0c76-b8d205d25109.png)

 必要な項目を表示したりします（この辺りは通常のPower Appsの操作で）

 Screen1からのOnSelectに、EditForm1をEditFormモードと明示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/de6927ed-0dda-2954-4b92-010a80369436.png)

```
Select(Parent);EditForm(EditForm1);Navigate(Screen2)
```
 
 EditForm1のDataSouceを指定します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/08eceed9-32db-f365-388e-064b2d410d61.png)



 Item属性で、LookUpさせます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/df21163d-e53e-3371-c887-b4447eed3f3e.png)


```
LookUp(乃木坂名簿, 名前 = Gallery1.Selected.名前)
```


　OnSuccessに、更新メッセージと、画面移動、加えてPowerBIIntegrationのRefreshを入れます（ここが大事）

```
Notify("更新しました",NotificationType.Success,1000);
Navigate(Screen1);PowerBIIntegration.Refresh()
```

Power Appsを保存、発行し閉じます。Power BI Serviceでも保存して、閲覧表示にします。ブラウザのリロードを行い、動作確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/a4e56b1b-beef-87a7-1bdc-b3883fae01f5.png)

更新されました～

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/79c05f1e-7f2b-c991-0fb4-8bf61f2a99dd.png)


## おわりに


　とても便利です... お試しを。