Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

空白の参照項目の数式を参照する数式が、null ではなく値を返す

公開日: Oct 13, 2022
説明
他のオブジェクト上の数式項目を参照するクロスオブジェクト数式は、それらのオブジェクトをつなぐ参照項目が空白であっても、値を返すことがあります。

例:
  • 2 つのオブジェクト (「オブジェクト A」と 「オブジェクト B」) があります。
  • オブジェクト A には、テキスト項目 (text_field__c) と、数式項目 (formula_field__c) があります。数式項目では、text_field__c とテキスト文字列を結合します (text_field__c & "@test.com" のような構文)。
  • オブジェクト B は、オブジェクト A と参照関係にあり、オブジェクト A の formula_field__c の値を取得するための数式項目を持っています (次のような構文です: Object_A__r.formula_field__c)。

結果: 「オブジェクト A」への参照が空白である「オブジェクト B」のレコードでは、オブジェクト B の数式に "@test.com" が表示されます。
 
解決策
これは想定通りの結果です。

数式が数式項目を参照する場合、その項目の構文 (値ではなく) を取得します。

上記の例では、「オブジェクト B」の数式項目の構文が「Object_A__r.formula_field__c」であっても、実際には「Object_A__r.text_field__c & "@test.com"」というロジックであることを意味します。

オブジェクト A への参照が空白の場合、この数式は「Object_A__r.text_field__c」を取得できないため、数式のその部分は null になります。式のロジックは「null & "@test.com"」と評価され、「@test.com」と出力されます。

このような動作を防ぐには、「オブジェクト B」の数式ロジックを IF 関数で更新し、オブジェクト A への参照が NULL の場合に NULL を返すようにします。

関連情報:
コンテキストごとの数式の演算子と関数
[高度な数式] タブでのクロスオブジェクト数式の作成
クロスオブジェクト数式の作成のヒント
ナレッジ記事番号

000381947

 
読み込み中
Salesforce Help | Article