※こちらは過去に公開していたブログからの移行記事です。
やりたいこと
承認プロセスにて、承認完了時にレコードロックされるが数式項目で引用しているデータはロックされません。
これをロックする(=値が承認時のまま変わらないようにする)ことは可能でしょうか?
調査結果とSalesforceの仕様
「数式項目の値の引用元のデータが変更されると、たとえレコードがロックされていても変更されてしまう」という挙動は、Salesforceの仕様通りのものになります。こちらをロックすることは出来ません。また、参照関係項目の場合も、参照元の値が変更されると参照先の値に反映されます。
◇ Salesforce >Trailblazer community > ヘルプ > 数式項目の計算タイミングについて数式が評価されるタイミングは、数式項目が表示される、もしくはアクセスされる時となります。
対処法1
項目の表示のために計算される数式項目や最新の情報を参照する参照項目ではなく、テキスト項目に置き換えます。
テキスト項目のカスタム項目を作り、レコードの作成や編集時に、元々の項目の値を作成したカスタム項目へ反映します。
手順
1.カスタム項目Aを作成
2.項目自動更新を行うワークフロールールを作成
(レコードが作成・編集されたら、値を1のカスタム項目Aに反映する。)

元々の項目はページレイアウトで非表示とし、カスタム項目Aを表示させます。
ワークフロールールは、レコードが作成・編集されない限りは起動されないため、引用元のデータが変更されても、当該レコードを編集しなければ、変更前の値を表示させておくことが可能です。

対処法2
項目の値がある程度決まっているものであれば、数式項目や参照項目で参照せず、はじめから選択リスト値で管理するという手もあります。
{{i18n("articles.view.premium")}}