概要
タイトルの通り、任意のレコードの種別を切り分けるにあたって①オブジェクトで分けるのか②レコードタイプで分けるのか③選択リストで分けるのか、というのは悩ましい場面も多いです。
今回はそれらを判断する基準についてまとめたいと思います。
レコードタイプvs選択リスト
レコードタイプ | ①特定種別でのレコード新規作成に関するプロファイルによる切り分け ②項目表示のレイアウトのプロファイルによる切り分け ③フェーズ管理の切り分け これらのうち少なくとも一つの要件が存在する場合、または将来的にその可能性が強く想定される場合。 |
選択リスト | ①特定種別でのレコード新規作成に関するプロファイルによる切り分け ②項目表示のレイアウトのプロファイルによる切り分け ③フェーズ管理の切り分け これらのいずれにも該当せず、また未来においてもその可能性が想定されない場合。 項目の表示やフェーズの実装に関して分ける必要性がなく、かつ将来的にその可能性が考えられない場合 |
切り分けの要件が弱ければ、わざわざレコードタイプを利用せずとも、「種別」選択リストの項目値で区別するだけで問題ありません。
上記のリストを一言でまとめれば、「導線・UI・フェーズ管理」の三点に関して区別の要件がなければ「種別」などの「選択リスト」で問題ないということになります。
カスタマーオブジェクトvsレコードタイプ
カスタムオブジェクト | ①種別に応じたレコード作成の導線の切り分け ②種別に応じた参照・削除・編集権の切り分け 上記のうち少なくとも一つの要件が存在する場合、または将来的にその可能性が強く想定される場合。 |
レコードタイプ | ①各種別の導線の取りまとめ ②オブジェクトとレコードタイプの関係がアリストテレス以来の伝統的な意味における「類と種の関係」に相当する場合(※これがつまるところ、レポートやリストビューを含む各種UI・UXに適当さに繋がります) カスタムオブジェクトの要件をいずれも満たさず、かつ上記要件の少なくとも一つの要件が存在する場合。 |
まず前提として、「カスタムオブジェクトではできるがレコードタイプではできない」ことはほぼありません。
換言すれば、カスタムオブジェクトかレコードタイプかの判断基準を業務要件や機能要件に求めることは困難です。
従って、UI・UXやアクセス権といった非機能要件が判断のポイントとなるのですが、原則としては切り分けたい種別がアリストテレス的な意味での種(Species)として任意の類(Category)に属しているか否かで判断してしまってよいと思います。
カスタムオブジェクトではなくレコードタイプを用いる具体的なユースとしては、商談という類で「新規・アップセル・クロスセル・ダウンセル・契約更新」などの種を区別したい場合、労務申請という類で「住所変更申請・育休申請・子供手当申請」などの種を区別したい場合などが挙げられるかと思います。