【Salesforce】オブジェクトリレーションとは?作成手順まで優しく解説!
2024.4.25

しかし使いなれていない人にとっては、なかなかイメージするのが難しい項目でもあります。
今回はそんな初心者の方向けに、Salesforceのオブジェクトリレーションについて解説していきます。
オブジェクトリレーションとは
オブジェクトリレーションとは、異なるオブジェクト同士のデータの関連付けです。
例えば「取引先」と「取引先責任者」オブジェクトには参照関係があり、「取引先責任者」の取引先名項目は、「取引先」の取引先名項目と紐づいています。
参照される側(取引先)のオブジェクトを親オブジェクトといい、参照する側(取引先責任者)のオブジェクトを子オブジェクトといいます。
異なるオブジェクト間でデータを紐づけることで、一方のオブジェクトにあるデータを参照してレコードを作成したり、紐づけたレコードの項目を合計して表示したりすることができます。
リレーションの種類
Salesforceのオブジェクトリレーションにはいくつかの種類がありますが、使用する頻度が多いのは主従関係と参照関係の2つです。
扱うレコードに応じて、適切なリレーションを持たせる必要があります。
以下でそれぞれのリレーションについて解説していきます。
<主従関係>
主従関係では、2つのオブジェクトを密接にリンクさせます。主従関係を持つ項目は1つのオブジェクトにつき2つまで作成できます。レコードを作成する際、主従関係を持つ項目は必ず入力する必要があります。
また、親レコードが削除されると、子レコードも自動的に削除されます。親レコードには「積み上げ集計項目」というものを設定して子レコードの値を集計することができます。
例えば、「見積」(親)と「見積明細」(子)に主従関係を持たせた場合、「見積明細」レコードを作成する際に「見積名」項目の入力は必須になります。「見積」レコードを削除した場合、それに紐づいた「見積明細」レコードも削除されます。
さらに「見積」に「積み上げ集計項目」を設定して、「見積明細」の総額や件数を集計することも可能です。
<参照関係>
参照関係では、2つのオブジェクトをリンクさせます。参照関係を持つ項目は1つのオブジェクトにつき40個まで作成できます。主従関係とは異なり、参照関係を持つ項目の入力は任意です。
また、親レコードが削除されても、子レコードは削除されません。「積み上げ集計項目」の設定もできません。
例えば、「取引先責任者」(親)と「見積」(子)に参照関係を持たせた場合、「見積」レコードを作成する際に「取引先責任者」項目の入力は任意です。「取引先責任者」レコードを削除しても、それに紐づく「見積」レコードは削除されません。
また、「取引先責任者」に「積み上げ集計項目」を設定することはできません。

<階層>
階層では、1つのオブジェクト内で参照関係を持たせます。あるオブジェクト自身に参照関係を持たせることで階層を作ることができます。
例えば、「取引先責任者」オブジェクトの中には「上司」項目があります。
この「上司」項目は「取引先責任者」オブジェクト自身を参照している項目となっています。
<多対多>
Salesforceのオブジェクトは1対多の関係性でしか結ぶことができませんが、主従関係を利用して2つのオブジェクト間で「多対多」の関係を持たせることができます。多対多の関係にしたいオブジェクトとは別にもう一つオブジェクトを作り、それぞれを主従関係で結びます。
例えば、担当者のレコードを持つ「担当者」オブジェクトと、契約のレコードを持つ「契約」オブジェクトを作成するとします。
1人の担当者が複数の契約を持ち、1つの契約に複数の担当者が関わる場合、「契約」と「担当者」の間に「契約/担当者」という別のオブジェクトを作成し、それぞれを主従関係で結んでリレーションを作成する必要があります。

リレーションを持った項目の作成方法
オブジェクト間にリレーションがある項目を作成する手順を説明していきます。
今回は、見積情報を管理するための「見積」オブジェクトとその明細を管理する「見積明細」オブジェクトに主従関係を、「取引先責任者」オブジェクトと「見積」オブジェクトに参照関係を持たせます。
事前に、見積オブジェクトと見積明細オブジェクトの作成を行います。
カスタムオブジェクトの詳しい作成方法は近日公開予定です。


<主従関係>
見積明細オブジェクトと見積オブジェクトで主従関係を持つカスタム項目「見積」を作成します。
設定アイコン→オブジェクトマネージャ→見積明細→項目とリレーション→新規 を押下します。

データ型の選択で「主従関係」を選択し、「次へ」を押下します。

関連オブジェクトで「見積」を選択し、「次へ」を押下します。

項目の表示ラベルで「見積」を選択し、項目名に「Quote」、子リレーション名に「QuoteItem」と入力して「次へ」を押下します。
※「親の変更を許可」チェックボックスをオンにすることで、子レコード作成後に別の親レコードの子に変更することができます。

プロファイル別項目レベルセキュリティでは、そのまま「次へ」を押下します。
セキュリティについての詳しい解説は近日公開予定です。

「次へ」を押下します。

「保存」を押下します。

「見積明細」オブジェクトと主従関係を持つ「見積」のカスタム項目が作成できました。

<参照関係>
「見積」と「取引先責任者」で参照関係を持つカスタム項目「取引先責任者」を作成します。
オブジェクトマネージャ→見積→項目とリレーション→新規 を押下します。

データ型の選択で「参照関係」を選択し、「次へ」を押下します。

関連先で「取引先責任者」を選択し、「次へ」を押下します。

項目の表示ラベルに「取引先責任者」、項目名に「Contact」、子リレーション名に「Quote」と入力します。
※「参照レコードが削除された場合の対処方法」で「この項目の値をクリアします。」を選択すると、 参照先(取引先責任者)のレコードが削除された際、参照元(見積)レコードの対象項目(取引先責任者項目)はクリアされます。
「参照関係に含まれる参照レコードは削除できません。」を選択すると、参照先となっているレコードは削除することができなくなります。

「次へ」を押下します。

「次へ」を押下します。

「保存」を押下します。

「見積」オブジェクトと参照関係を持つ「取引先責任者」のカスタム項目が作成できました。

リレーションの確認方法
作成したオブジェクトリレーションを確認するには、「スキーマビルダー」を使用します。
先ほど作成した、「見積」オブジェクト、「見積明細」オブジェクト、「取引先責任者」オブジェクトのリレーションを確認します。
設定アイコン→検索ボックスに「スキーマビルダー」と入力し、「スキーマビルダー」を押下します。

スキーマビルダーの画面に遷移後、「選択解除」を押下し、入力欄に「Quote」と入力後、「Quote_c」と「QuoteItem_c」チェックボックスをオンにします。

入力欄に「Contact」と入力後、「Contact」チェックボックスをオンにします。

それぞれのオブジェクトから出ているラインにカーソルを当てると、どのようなリレーションで結ばれているかを参照できます。
1本の線とつながっている方が親オブジェクト(参照される側)、複数の線とつながっている方が子オブジェクト(参照する側)です。
青い線は参照関係、赤い線は主従関係を示します。
①の線は、「取引先責任者」(Contact)オブジェクトに参照関係(階層)があるということを示しています。

②の線は、「見積」(Quote_c)オブジェクトに「取引先責任者」(Contact)オブジェクトと参照関係があるということを示しています。

③の線は、「見積明細」(QuoteItem_c)オブジェクトに「見積」(Quote_c)オブジェクトと主従関係があるということを示しています。

まとめ
今回はSalesforce初心者の方向けに、オブジェクトリレーションについて解説しました。
自社向けにアプリケーションをカスタマイズする際は、用途に合わせて適切なリレーションでオブジェクト同士を紐づけることが重要です。
カスタムオブジェクトの詳しい作成方法や、レコードの閲覧、編集制限についての説明も今後紹介していく予定ですので、ぜひご参照ください。
最後まで読んでいただき、ありがとうございました。
システム開発・保守、導入支援など、
お気軽にご相談ください