Salesforce数式項目の計算タイミングと注意点を徹底解説


【数式項目的値が間違っている理由】よくある原因

Salesforceの数式項目の値が期待通りにならない理由の多くは、数式項目がリアルタイムで計算される仕組みに起因します。その計算タイミングを理解しないと、意図しない結果が表示されることがあります。

計算タイミング

Salesforceの数式項目は、リアルタイムで計算され、以下のタイミングで評価されます:

  • 数式項目が画面に表示されるとき
  • 数式項目にアクセスされたとき
  • APIを使用してレコードをSELECTしたとき

そのため、数式項目の値はレコードに保存されているわけではなく、アクセス時に最新の状態が計算されて表示されます。


注意すべきポイント

  1. Apexでの利用

    • ApexコードでレコードをINSERTした直後に数式項目を参照すると、評価が行われていないため、期待通りの値にならない場合があります。
  2. ワークフロールールでの挙動

    • ワークフロールールの条件やアクションに数式項目を使用する場合、ワークフロールールが実行される際に数式項目が計算されます。
  3. トリガーにおける動作

    • Trigger.oldでは、レコードが読み込まれたタイミングでの値が計算されます。
    • Trigger.newでは、新しい値が読み込まれたタイミングで再評価されます。
  4. 承認プロセスでの挙動

    • レコードがロックされている場合でも、数式項目が参照しているフィールドの値が更新されれば、数式項目も最新の値に反映されます。

数式項目の値を固定する方法

数式項目を固定値として扱いたい場合は、以下のアプローチが有効です:

  1. テキスト項目への置き換え

    • 数式項目をテキスト項目に変更し、ワークフロールールやプロセスビルダーを使って値を更新します。
  2. 選択リスト項目を使用

    • 値の選択肢が限定的な場合、選択リスト項目を利用することで値を固定化できます。

これらの方法を使えば、レコードが編集されない限り値を固定したまま維持できます。

コメント