D365BCの2020ReleaseWave2の新機能としてVirtual Entityが追加されました。BCのVirtual Entityはなんとデータの編集が行えるという強力機能です。(通常のCDSのVirturalEntityは読み取り専用。)今回はこの機能の設定方法を説明し、試しに1件編集してみます。
前提条件
・D365BCのライセンスと環境(フリートライアル可)
・CDSが使えるPowerAppsのプランと環境(フリートライアル可)
手順
1. アプリをインストールする
まずはCDSの環境。USリージョンに環境を作成する。US以外でもOKだと思われるが、日本リージョンで試したところ、後続でエラーになる。。(いきなり残念ポイント)

AppSourceでVirtualEntityのアプリを検索。こちらのURLから直接行ってもOK。

Get it now をクリックしてアプリをインストール。

Continueで進む。

アプリをインストールする環境を指定。チェックボックスをONにしてインストール。

インストールが実行される。しばらく待つ。

インストールが完了。

インストールが完了するとソリューションが4つ増えたことが確認できる。

2. BCの環境を準備する
BCのAdminCenterからEnvironmentを作成しておく。Sandboxで可。今回はUSで作成する。(JPでも問題ないハズ。。)

BCにサインインする。USリージョンだとサンプルデータ入りで作成してくれるので実験に便利。

AAD Applications 機能を検索して実行。

既定で1レコード存在し、StateがDisabelになっているのでEnableに変更する。

サンプルデータを確認する。今回はITEMマスタ(品目)を使用する。検索してItem一覧を開く。

USリージョンで作成すると、以下のようにサンプルデータが事前に入っている。今回は一番上の品目を使用する。

3. CDS側でデフォルトの環境を指定する。
Virtual Entityアプリをインストールした環境でエンティティから「Business Central Virtual Data Source Configuration」を探して開く。

データタブでデータを確認する。Default Company とEnvironmentがブランクになっている。ここに指定しないと、Virtual EntityがBCのどのデータを読んでよいか分からないので指定が必要。

レコードを選択して編集。

以下の画面が開く。EnvironamentとDefault Companyを編集したい。

Environmentを指定する。このタイミングでDefaultCompanyを指定しようとすると選択肢が表示されないので一度保存する。

Environmentが設定されたことを確認して再度編集。

今度はDefaultCompanyを選択できる。

DefaultCompanyを指定して保存。

リフレッシュして念のため確認。

4. 使用するVirtualEntityを指定する。
ソリューションからDynamics 365 Business Central ERP Catalogを選択する。

Available Business Central Entityを選択する。

データタブに移動。

利用可能なVirtual Entityがここに一覧表示される。ただし、利用するにはVisibleをYesにする必要がある。既定ではすべてNoになっている。

今回はItem(品目)を試してみる。Itemのレコードを選択してレコードを編集。

Visibleにチェックを入れて保存。

リフレッシュするとVisibleがYesになっていることが確認できる。

6. カスタムエンティティからBCデータを編集
エンティティに行くとItemエンティティが追加されていることがわかる。テーブルの技術名称の先頭に「dyn365bc」が付いているのが目印。エンティティを選択する。

データタブに移動する。BCユーザーであれば見たことのある項目が並んでいる。データタブに移動。

既定ではフィールドが1つしか表示されていないので、右上のビュー切り替えで「すべてのフィールド」に切り替えてみる。

見覚えのあるデータが表示され、BCのItemマスタが正しく読み込まれていることがわかる。一番上のレコードを選択し、編集する。

以下のフォームが表示される。1項目しか表示されていない(プライマリ項目?)が、実験には十分なので、この項目を変更する。

Display Nameを変更して保存。

リフレッシュすると変更されたことを確認できる。

BC側でItem一覧を開き、F5を押してリストを更新する。見事、Virtual Entity側の変更が反映された。

まとめ
Virtual EntityでCRUD(登録参照変更削除)が出来るようになったのは想定外の嬉しい機能拡張で非常に強力な武器が手に入った。CDSが日本リージョンだと使えないのは残念極まりないが、いずれ対応されると思うので、BCのカスタマイズを減らして、入力周りの細かい制御はCDS/PowerApps側に寄せる流れが加速すると思われる。ただし、BC側のエラーチェックロジックがCDS側でどのようにチェックが掛かるかが気になるところ。引き続き検証が必要。
2件のコメント