【Salesforce】参照関係について

スポンサーリンク
Salesforceの参照関係 Salesforce

こんにちは、にいるです。

前回同様、リレーションをテーマにしています。

今回は「参照関係」について紹介したいと思います。
主従関係についての記事はこちらをご覧ください。
多対多リレーションについての記事はこちらをご覧ください。

1.参照関係とは

参照関係は2つのオブジェクトの関係を意味しています。

項目を使用して2つのオブジェクトを関連付けることができます。

参照関係は主従関係と似ていますが、積み上げ集計項目はサポートされていませんし、必ずしも項目値を入力しないといけないということはありません。

オブジェクト間の紐付きが厳格ではない、という風に覚えておきましょう!

ただ、レポートやSOQLで参照先が存在するなら関連レコードを引っ張ることが出来ます。

Salesforceの参照関係

※オブジェクトAにオブジェクトBとオブジェクトCの参照関係がある場合、Bはもちろん、Cのように参照項目の値はNULLでもレコードの保存が可能です。

2.参照関係の作成方法

下記のような親オブジェクトと子オブジェクトを作成しました。

Salesforceの参照関係

この2つのオブジェクトを使用して参照関係を作成したいと思います。

2-1.カスタム項目の作成

まずは参照関係を作成するために子オブジェクト側でカスタム項目を作成します。

データ型を参照関係にします。

Salesforceの参照関係

次にリレーションを構築するオブジェクトを指定します。
ここで親オブジェクトを指定します。

Salesforceの参照関係

次に参照項目のラベルとAPI名を指定します。

Salesforceの参照関係

主従関係と同じく、参照関係項目を作成するオブジェクト側がもう一方の方に結びつくイメージです。

2-2.レコードの作成

この設定で親と関連する子レコードを作成してみます。

このように子レコードの親項目に親レコードを入力するだけですね。
ルックアップになっているので、勝手に検索してくれます。

Salesforceの参照関係

もう一個、今度は参照関係を持たない子レコードも作成してみたいと思います。

・レコード作成時

参照関係なのでレコードの編集画面で項目が入力必須になっていないことが確認できますね!

Salesforceの参照関係

・レコード保存後

レコードも問題なく保存できました。
親項目は空欄で保存されていますね!

Salesforceの参照関係

3.参照関係上の設定

参照関係では自己参照することが出来ます。
※自己参照は参照関係のみでしか使用できません。

自己参照

オブジェクトからそのオブジェクト自身にリレーションを作成でき、ここでは地域「有楽町」-地域(沿線)「銀座」というリレーションを作成しています。

他には、参照先レコードが削除されても、参照元レコードの項目履歴管理には参照先レコードの削除記録は残りません。
たとえば、親取引先が削除されても、子取引先の[取引先履歴]関連リストに削除は記載されません。

4.参照関係上の削除

ここでは参照関係の削除について見ていきたいと思います。

削除時の動作については3つあります。

4-1.この項目の値をクリアします

1つは、デフォルトの[この項目の値をクリアします]です。

参照関係

参照先のレコードを削除することが出来、参照元の項目値が無くなるということですね。

4-2.参照関係に含まれる参照レコードは削除できません

2つ目は、[参照関係に含まれる参照レコードは削除できません]です。

参照関係

地域の原宿レコードには、商業施設のラフォーレレコードと参照関係があるので削除できないということですね。

4-3.このレコードも削除します

3つ目は、[このレコードも削除します]で、参照項目で関連しているデータと合わせて削除されます。

この場合、カスケード削除が発生する可能性があります。

※カスケード削除とはアクセス権のないレコードも削除されることですが、デフォルトでは無効になっています。有効にするにはSalesforceに連絡する必要があります。カスケード削除とその関連オプションは、一部の標準オブジェクト(営業時間、コミュニティ、リード、価格表、商品、またはユーザオブジェクト)では使用出来ません。

また、参照関係先のオブジェクトまたはレコードを削除する必要がある場合、2つのリンクされたオブジェクトの合計レコード数を100,000件以下にする必要があります。

なので、この場合はデータローダなどで子レコード側を削除していかないといけないですね。

5.まとめ

いかがでしたでしょうか。

参照関係は主従関係よりは結びつきが強くはありません。
ただ参照関係にあるレコード情報取得が可能な点は同じです。
SOQLやレポートで参照項目を取得する必要がある場合は、積極的に使っていきたいですね。

他にも色々と標準機能やSalesforce機能について紹介しています。
そのまとめ一覧ページはこちらになりますので、よければ見てみてください。
Salesforceの機能ページまとめ一覧ページ

ではでは!

コメント

タイトルとURLをコピーしました