LoginSignup
14
12

More than 3 years have passed since last update.

Common Data Service で自動的に作られるフィールドについて

Posted at

Power Platform の勉強会で最近話題に出る、Common Data Service (CDS) に自動で作られるフィールドについてです。

自動生成されるフィールド

新規にカスタムエンティティを作ると、以下のようなフィールドが自動で作成されます。こちらのフィールドについて説明します。
image.png

一意識別子

全てのレコードは内部的に区別するよう、Guid 列が作成されます。これにより各レコードの一意性が保証されます。またレコードを特定する際に使います。

状態 (statecode) とステータス (statuscode)

レコードの状況を指定するために使い、各状態に対して複数のステータスを作成できます。

既定では以下のような状態のためイメージが沸かないかもしれません。

状態 ステータス
アクティブ アクティブ
非アクティブ 非アクティブ

しかしより細かくステータスを管理したい場合、以下のようにカスタマイズできます。ここでは登壇用プレゼン資料の管理を考えます。

状態 ステータス
アクティブ 資料テーマ検討中
資料ドラフト作成中
資料レビュー中
資料レビュー完了
非アクティブ 公開済
非公開

尚、編集は現時点でクラシックエクスペリエンスのみでサポートされます。
image.png

作成日 (createdon)、修正日 (modifiedon)、レコード作成日 (overriddencreatedon)

レコードは作成された日や最終更新日が自動で管理されます。

  • 作成日: レコードが作成された時点の UTC 時間が入ります
  • 修正日: レコードに変更があった時点の UTC 時間が入ります
  • レコード作成日: データインポートなどでレコードを作成する場合、明示的に作成日を指定できます

UTC 変換タイムゾーンコード (utcconversiontimezonecode)、タイムゾーン規則のバージョン番号 (timezoneruleversionnumber)

レコードが作成された際、作成者のタイムゾーンと時刻を使って UTC 時間を計算しますが、その際に利用した情報が残ります。

バージョン番号 (versionnumber)

各レコードの変更管理につかわれ、更新がある度に更新されます。バージョン番号はシステム全体で管理されるため、前回同期を実行した以降に作成、更新さえたレコードの一覧が取得できるようになっています。

参照: 変更の追跡を使用してデータを外部システムに同期

作成者(createdby)、作成者代理 (createdonbehalfby)、修正者 (modifiedby)、修正者代理 (modifiedonbehalfby)

レコードを作成または修正したユーザーの GUID を格納します。
またインポートや SDK 経由などで作成、修正した場合に使ったアカウントも代理者に格納します。

所有者 (ownerid)、所有チーム (owningteam)、所属部署 (owningbusinessunit)

CDS ではレコードのセキュリティとして以下の 5 段階を用意しています。

  • グローバル (組織全体): すべてのレコードにアクセスできます
  • ディープ (部署配下): 所属する部署とその配下のすべての部署のレコードにアクセスできます
  • ローカル (部署): 所属する部署のレコードにアクセスできます
  • ベーシック (ユーザー): 自分が所有しているレコード、ユーザーが共有しているオブジェクト、ユーザーがメンバーになっているチームが共有しているオブジェクトにアクセスできます
  • なし: アクセスは許可されません

上記のモデルを効率よく適用するため、各レコードは所有者、所有チーム、所属部署があり、所属部署は所有者が設定された時点で、そのユーザーの部署が自動的に入ります。

尚、エンティティは個人とチームが所有するモデルと組織が所有するモデルがあり、組織が所有する場合はこれらのフィールドは不要なため追加されません。

インポート シーケンス番号 (importsequencenumber)

データのインポートを使用した場合、インポートのソースとレコードをマップするために保持するフィールドです。

まとめ

CDS を使うと、以下の機能が自動的に使えます。

  • レコードの状態管理
  • 所有者や部署など、階層的なセキュリティ + 共有などより柔軟なセキュリティ
  • レコードの作成日や修正日の自動付与
  • レコードの作成者や編集者の自動付与
  • 複数タイムゾーンのサポート
  • 複数言語、通貨のサポート

上記の機能を満たすため、多くのフィールドが自動で追加されるのです。これらのフィールドはシステムフィールドであり削除できませんが、便利な者なので、邪魔者扱いせず活用してください。

14
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
12