Common Data Service (CDS) を作ると自動的にエンティティが作成されます。消したい!という声も聞こえますが、今回はこれらのエンティティについて紹介します。エンティティとはデータベースでいうところのテーブルに相当するものです。
Common Data Model (CDM)
ビジネスアプリで使うデータのモデルってほぼ一緒なんですが、これまで統一規格がなく、微妙にスキーマ名が違ったり、サイズが違ったり、型が違ったりと課題になってきました。そんな中 2018 年 9 月に Adobe、Microsoft、SAP が共同で「Open Data Initiative」を発表しました。
これを受けて Microsoft は長年 Dynamics や Office で得た知見を元に、以下のような Common Data Model を公開。スキーマも GitHub で公開されています。
GitHub: Common Data Model
Core
全てのアプリケーションで必要になるであろうモデルは、Core レイヤーに定義されます。
- 取引先企業、取引先担当者
- 活動 (Activity, Email, Letter, Phone, Fax, Task, etc)
- 部署、チーム、組織、ユーザー、ポジション
- 通貨
- 添付ファイルやメモ
CRM、Web、Talent など
アプリケーション固有で必要となるモデルが定義されます。
Common Data Service (CDS)
CDS は CDM を実装するデータプラットフォームサービスです。つまり CDM を使った開発が前提にあり、必然的に Core となるエンティティがどんな環境にも提供されるわけです。
既定
既定のフィルターを使うと Core に相当するエンティティとカスタムエンティティが表示されます。
すべて
Core やカスタムエンティティだけでなく、内部的に使われるエンティティもすべて表示されます。それぞれに意味があり、開発者が使うものもありますが、あくまで内部システムのデータストアであり、モデルとして利用する必要はありません。
グループ化表示
まとめ
今回はなぜ CDS を作成すると既にエンティティができるのかを説明してみました。例えば、取引先企業を使わないことはあるかもしれませんが、セキュリティに関わるものを使わないことはありませんし、エンティティで自動的に追加されるシステムフィールドが利用するものもあります。
既に実装されている機能であるため、有効活用してください。不明点があれば遠慮なくコメントに質問してください。