Salesforceで標準オブジェクトの仕様を確認している際に、データを格納する目的以外に使用されていそうなオブジェクトが散見されることがあります。
公式のページで紹介されている説明のみでは理解が難しいため、同様にお悩みの方向けに少し嚙み砕いて説明できればと思いました。
その中でも使用する機会が多く、第三者に説明しても「何故これが必要なの?」と聞かれることが多々あった【連結オブジェクト】(別名、オブジェクトリレーション)という役割のオブジェクトについて説明します。
リレーションとは
Salesforceにおいてのリレーションとは、オブジェクト間の関係性を指します。
例えば、取引先と取引先責任者は参照関係にあり、取引先責任者を登録するときに取引先を参照することができます。
このときの関係性(以下、図1の矢印)をリレーションといいます。
図1 オブジェクト間の関係性
連結オブジェクトとは
公式では「複数のオブジェクト間の関係性を保持するオブジェクト」とあります。
取引先と取引先責任者を考えたとき、取引先1社に対して取引先責任者が複数人いることはありますが、取引先責任者1人が複数の取引先(会社)に属していることは基本的にないと思います。
ですが、例外として取引先責任者1人に対して取引先を複数紐づけたい(親会社と子会社の両方に紐づけたい)といった場合に、連結オブジェクトが役立ちます。
標準機能で用意されている取引先と、取引先責任者の関係性は「1対多」ですが、連結オブジェクトを用いることで「多対多」の関係性を実現することができます。
では、実際にどのような構成になるかを図で見ていきます。
以下のように、それぞれのオブジェクトと参照関係を結んだ、仲介役にあたるオブジェクトを用意することで、2つのオブジェクトの関係を多対多にしています。

図2 連結オブジェクトの例
「ネミビィ社」から見ると「京装太郎」と「奥田次郎」の2人が責任者です。
「京装太郎」から見ると「ネミビィ社」と「ネミビィ社テクノロジ」の2社に属しています。
よって、取引先と取引先責任者の関係性を「多対多」にできていることが分かります。
実際に、Salesforceの標準機能でも各オブジェクトのレコードと、添付ファイルのレコードに対して、連結オブジェクトが使用されています。
以下のように、どの添付ファイルがどのオブジェクトのレコードに添付されているかを、連結オブジェクトでは管理しています。

図3 各オブジェクトのレコードと添付ファイルの関係性
連結オブジェクトの作成方法
では、連結オブジェクトの作成方法も説明していきます。
まずは、仲介役となる連結オブジェクトを作成します。

図4 仲介役(リレーション)の連結オブジェクト作成
次に、多対多の関係にしたいオブジェクト(以降、親オブジェクト)との参照関係を作成します。
手順は[項目とリレーション]タブにある[新規]ボタンを押下します。

図5 新規参照項目の作成
そして、データ型にある「参照関係」を選択します。

図6 新規参照項目のデータ型選択
関連先には、親オブジェクトを選択します。

図7 新規参照項目の関連先選択
以降の設定内容は、デフォルト値とするため割愛します。
同様の手順で、親オブジェクトの分だけ参照項目を作成します。
これで、連結オブジェクトの作成は完了です。
作成した連結オブジェクトの[新規]ボタンから、手動で関係を登録することができます。(アプリケーションにオブジェクトタブを追加する手順は、今回割愛します。)
以下の図では、「ネミビィ社」と「京装太郎」の関係性を作成しています。

図8 関係性の登録
連結オブジェクトに多対多の関係性を登録することで、関係しているレコードを双方で確認することができます。
以下の図では、図2の関係性を登録した場合に「ネミビィ社」に関係しているレコード(取引先責任者)を確認することができています。

図9 「ネミビィ社」に関係している取引先責任者
また、以下の図では「京装太郎」に関係しているレコード(取引先)を確認することができます。

図10 「京装太郎」に関係している取引先
つまり、取引先から見て複数の責任者に紐づけられています。
同様に、責任者から見ても複数の取引先に紐づけられており、それぞれの画面上で複数の関連先を確認できます。
連結オブジェクト利用時の考慮事項
連結オブジェクトでは、参照関係を用います。
そのため、1オブジェクトに作成できる参照関係が40までという制限があることを、考慮しておいてください。
最後に
本投稿では、連結オブジェクトについて説明しました。
Salesforceでオブジェクト構成の検討や、多対多の関係を作成したい場面で効果を発揮します。
今後もSalesforceの開発や仕様等で、気になる観点や公式の情報だけでは理解が難しい疑問点等があれば投稿していきます。
参考
多対多のオブジェクト関係を作成する(Salesforce公式)
https://help.salesforce.com/s/articleView?id=sf.relationships_manytomany.htm&type=5
Salesforceの「ファイル」を使ってみよう(テラスカイ)
https://base.terrasky.co.jp/articles/7KH40
投稿者プロフィール

-
技術領域:VB、Salesforce
経験:建築業務向け生産支援システム、管理会計システム