🐴
Salesforce:標準機能を使わずに特定の項目の変更履歴を追いたい
前提:標準機能:[項目履歴管理]の仕様
・データ保持期間が24ヶ月
→ 履歴オブジェクトには保持されるがデータローダーが必要
・別のオブジェクトに保存されるため、ビュー,レポートには表示できない
結論
プロセスビルダーを使って、別の項目に値を追加するように設定する
レコード作成時に初期値を取得しておくことで変更前の値を保持する
要件
- 特定項目が変更されたときに、変更前→変更後 の値を保持しておきたい
- 無期限に保持したい
- いつ、誰が、何を、何に変更したかを一つの項目に保存しておきたい
手順
設定 → プロセスビルダー → 新規作成
対象オブジェクト選択
このアクショングループの条件を定義
ルール適用時のアクション:レコードを更新
関数
SUBSTITUTE(
TEXT(
Today()),
"-", "/")
& ": "
& PRIORVALUE([CustomObject1__c].shodanstatus__c )
& "→"
& Text([CustomObject1__c].shodanstatus__c)
& ": (" & [CustomObject1__c].LastModifiedBy.LastName
& " " & [CustomObject1__c].LastModifiedBy.FirstName & ")"
& BR()
& [CustomObject1__c].StatusChangeHistory__c
以上でかんりょ
備考
変更前の値を明確に取得したい場合はApexトリガーを書く必要がある。
Discussion