2022/06/21

Salesforceにおけるreferencedとは?詳細や注意点をご紹介

 
  

Salesforceにおけるreferencedとは?

referencedとは、Salesforce内で変数や関数など、メモリ空間上での所在を指し示すデータを参照することです。 例えば、FOR REFERENCE句をSOQLクエリで使用した場合、モバイルアプリケーションなどといった、カスタムインターフェースもしくはカスタムページからレコードが参照されると、Salesforceに通知されます。 また、レコードは関連レコードが表示される、そのたびに参照されます。

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を活用しよう!

今回は、Salesforceにおける「referenced」について紹介しました。 Salesforceでの「referenced」の使い方を正しく理解することで、Salesforceの業務をより深く知ることができます。 Salesforceエンジニアに転職したい人、もしくはSalesforceを転職先の1つとして考えている人にとっては、ぜひとも知っておくべき知識です。 これまで説明してきたとおり、「referenced」は変数や関数を参照するのに非常に優れています。また、設定、注意点等も説明しました。 Salesforceで知るべき内容の1つとして「referenced」を理解し、これからの転職活動にぜひとも活かしていきましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

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

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】