- リンクを取得
- ×
- メール
- 他のアプリ
- リンクを取得
- ×
- メール
- 他のアプリ
【数式項目的値が間違っている理由】よくある原因
Salesforceの数式項目の値が期待通りにならない理由の多くは、数式項目がリアルタイムで計算される仕組みに起因します。その計算タイミングを理解しないと、意図しない結果が表示されることがあります。
計算タイミング
Salesforceの数式項目は、リアルタイムで計算され、以下のタイミングで評価されます:
- 数式項目が画面に表示されるとき
- 数式項目にアクセスされたとき
- APIを使用してレコードをSELECTしたとき
そのため、数式項目の値はレコードに保存されているわけではなく、アクセス時に最新の状態が計算されて表示されます。
注意すべきポイント
Apexでの利用
- Apexコードでレコードを
INSERT
した直後に数式項目を参照すると、評価が行われていないため、期待通りの値にならない場合があります。
- Apexコードでレコードを
ワークフロールールでの挙動
- ワークフロールールの条件やアクションに数式項目を使用する場合、ワークフロールールが実行される際に数式項目が計算されます。
トリガーにおける動作
Trigger.old
では、レコードが読み込まれたタイミングでの値が計算されます。Trigger.new
では、新しい値が読み込まれたタイミングで再評価されます。
承認プロセスでの挙動
- レコードがロックされている場合でも、数式項目が参照しているフィールドの値が更新されれば、数式項目も最新の値に反映されます。
数式項目の値を固定する方法
数式項目を固定値として扱いたい場合は、以下のアプローチが有効です:
テキスト項目への置き換え
- 数式項目をテキスト項目に変更し、ワークフロールールやプロセスビルダーを使って値を更新します。
選択リスト項目を使用
- 値の選択肢が限定的な場合、選択リスト項目を利用することで値を固定化できます。
これらの方法を使えば、レコードが編集されない限り値を固定したまま維持できます。
コメント
コメントを投稿