この記事の目次
Salesforceにおけるreferencedとは?

Salesforceにおけるreferencedの概要
Salesforceにおけるreferencedについて概要を説明します。 「FOR REFERENCE句」を用いた場合、例えばユーザーが取引先レコードを表示すると、すべての関連レコードに対して参照されます。取得されたオブジェクトの利用状況データを更新するのであれば、「FOR REFERENCE句」を「FOR VIEW句」と一緒に使いましょう。 「FOR REFERENCE句」をクエリで使用すると、取得されたレコードの「LastReferencedDate項目」が更新されます。また、レコードが「RecentlyViewedオブジェクト」に追加されますので、取得されたレコードごとに、参照したデータが反映されることになります。FOR REFERENCE句の注意点
「FOR REFERENCE句」を使用するのは、「クエリの影響を受けるレコード」が間違いなく、参照される場合のみにしましょう。 もし参照されなかったら、取得されたレコードの参照した情報が、「FOR REFERENCE句」で誤って更新されることになります。 さらに「最近使ったデータ」 や、「グローバル検索のオートコンプリートリスト」で間違って更新されたレコードが表示される場合、ユーザーは間違っていることがわかりません。 また、「RecentlyViewedオブジェクト」は、ユーザーがレコードを表示もしくは参照するごとに更新されます。「SOQLクエリ」で「FOR VIEW」または「FOR REFERENCE句」を使ってレコードを取得したときも更新されます。 例)SELECT Name, ID FROM Contact LIMIT 1 FOR REFERENCE
referencedの設定
「NotifyForFields」を「referenced」に設定した場合について説明します。 「PushTopic.NotifyForFields」の値を「referenced」に設定した場合、レコードの中でいずれかの項目値が変更され、変更された項目がクエリの「SELECT句」もしくは「WHERE句」で参照されていれば、「ストリーミングAPI一致ロジック」がレコードを評価します。 その上で、通知の生成可否について判断することが可能です。 「PushTopic.NotifyForFields値」が「referenced」の場合、「PushTopicクエリ」には「ID以外の項目を1つ以上含むSELECT句」、もしくは「ID以外の項目を1つ以上含むWHERE句」のいずれかが必要になってきます。Salesforceのデータ型について
Salesforceのデータ型について説明します。 Salesforceでは、プリミティブデータ型に加えて、APIで項目のデータ型を定義しています。 文字列を含む項目ですと、APIバージョン15.0以降、動作が違ってきますので注意しましょう。APIバージョン15.0以前のAPIの場合、項目に値を指定し、その値が大きすぎると、値は切り捨てになります。 一方、APIバージョン15.0以降の場合、もし大きすぎる値が指定されれば、操作は失敗となり、失敗コード「STRING_TOO_LONG」が返ってきます。 「AllowFieldTruncationHeaderヘッダー」を使った場合、APIバージョン15.0以降の動作ではなく、APIバージョン15.0以前の動作である切り捨てを指定して使うことが可能です。ページ参照の使用について
「referenced」はページを参照し、アプリケーション間の移動でも使用することが可能です。 「pageReference JavaScriptオブジェクト」はページのURLを表しますが、URLを直接、解析もしくは作成する代わりとして、「pageReference」を使用できます。 「pageReference」を使用した場合、SalesforceがもしURL形式を変更したとしても、ナビゲーションを破損せずにすみます。 ナビゲーションリソースは、「Lightning Experience、Lightningコミュニティ」と「Salesforceモバイルアプリケーション」のみでサポートされています。「Visualforce」の「Lightningコンポーネント」、「Lightning Out」などの他のコンテナではサポートがされていません。フィールドにおけるreferencedについて
フィールドにおける「referenced」の詳細について説明します。 まず、Salesforceの標準オブジェクトについて、重要な詳細が記載されているところを紹介します。 ・すべてのフィールド ・各フィールドのデータ型 ・各フィールドに適用可能なサイズ制限 これらと他のリソースを一緒に使用します。まずSalesforceおよびLightningPlatformのオブジェクトreferenceについては、「オブジェクトについての主な情報」および「SalesforceAPIのオブジェクト使用方法」を提供します。 Salesforceヘルプについては、Salesforceユーザインターフェースのオブジェクト使用方法の説明があります。 「組織の設定」と「SalesforceEdition」は、これらのオブジェクト、フィールドの一部について、使えないこともあるので注意しましょう。オブジェクト参照のエラーについて
すべてのオブジェクトについて制限があります。 15を超えたオブジェクトを参照する式を作成する場合、エラーメッセージが表示されることがあります。「ロジック」が数式エンジンに対し、複雑になりすぎているからです。 エラーが出たら、未使用のスパニング関係を削減、もしくは削除することが必要です。 もしすべてのオプションを使ってしまったら、Salesforceサポートチームがこの制限を増やす支援をしてくれます。スパン関係の制限は20に拡張することもできますが、潜在的なパフォーマンスに影響があります。 それ以上に複雑な式を使った場合、式評価の応答時間が長くなる可能性もあるでしょう。例として、スパンが多いフィールドが表示された場合、ページの速度が低下します。そのため、スパン関係の数を減らす方法は、効率的に使用されるために重要です。Salesforceでreferencedを活用しよう!

この記事の監修者・著者

-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞