プログラミング

【Salesforce】Flow Builderでリッチテキストの変更履歴を作成する

-プログラミング
-

Salesforceでは項目履歴管理で項目の変更履歴を残せるようになっています。

変更前後の値も記録してくれるので便利なのですが、制約もあってロングテキストやリッチテキストなど255 文字を超える項目に対する変更は、編集済みとして追跡され元の値と新しい値は記録されません

できないなら諦めようとも思いましたが、社内の利用者から熱い要望があったので、Flow Builderとカスタムオブジェクトを使って自前の変更履歴を作ってみました。

対応概要

今回は以下のような対応をとりました。

詳細手順はこの後まとめます。

  1. 記録保存用のカスタムオブジェクト作成
    →項目単位でオブジェクトを作成
  2. 記録用カスタムオブジェクトと商談の関連付け
    →商談を親にして小オブジェクトとして用意
  3. Flow Builderでカスタムオブジェクトに項目の値を挿入してレコード作成
    →対象項目のデータを格納

対応手順

今回は商談に作ったリッチテキスト項目の「リッチテキスト(10,000文字)」の履歴を保存するようにします。

1. 記録保存用のカスタムオブジェクト作成

最初に履歴記録用の履歴オブジェクトを作成します。

詳細は省きますが、データ型は自動採番としています。

履歴オブジェクトの項目とリレーションで項目を作ります。

ラベル項目名データ型桁数備考
商談opportunity参照関係(商談)
変更前oldリッチテキスト10000履歴を残したい元の項目に桁数を合わせる
変更後newリッチテキスト10000履歴を残したい元の項目に桁数を合わせる

ポイント

履歴は勝手に変更されたくないので、権限を参照のみ可とすることを推奨します。

ページレイアウトを調整する。(お好みで良いです)

2. 記録用カスタムオブジェクトと商談の関連付け

商談の関連リストに履歴を追加します。

表示項目はお好みで。新規で作成する必要は無いのでボタンは全部非表示とします。

3. Flow Builderでカスタムオブジェクトに商談の値を挿入してレコード作成

「新規フロー」をクリックします。

「レコードトリガフロー」を選択して「作成」をクリックします。

開始の設定の各項目を設定して「完了」をクリックします。

項目内容
オブジェクトの選択(オブジェクト)商談
トリガを設定(フローをトリガする条件)レコードが更新された
エントリ条件を設定(条件の要件設定)すべての条件に一致(AND)
エントリ条件を設定(項目)履歴を保存したい項目
エントリ条件を設定(演算子)変更済み
エントリ条件を設定(値)True
フローを最適化アクションと関連レコード

「要素を追加」から「レコードを作成」をクリックします。

「新規のレコードの作成」の各項目を入力して「完了」をクリックします。

項目内容備考
表示ラベル任意
API参照名任意
説明任意
作成するレコード数1
このオブジェクトのレコードを作成(オブジェクト)履歴履歴保存用に作成したオブジェクト
このオブジェクトのレコードを作成(項目)1個目new__c履歴オブジェクトの変更後に商談からリッチテキスト(10,000文字)の変更後の値をコピー
このオブジェクトのレコードを作成(値)1個目$Record > リッチテキスト(1,000文字)履歴オブジェクトの変更後に商談からリッチテキスト(10,000文字)の変更後の値をコピー
このオブジェクトのレコードを作成(項目)2個目old__c履歴オブジェクトの変更前に商談からリッチテキスト(10,000文字)の変更前の値をコピー
このオブジェクトのレコードを作成(値)2個目$Record__Prior > リッチテキスト(1,000文字)履歴オブジェクトの変更前に商談からリッチテキスト(10,000文字)の変更前の値をコピー
このオブジェクトのレコードを作成(項目)3個目opportunity__c履歴オブジェクトの参照項目に関連付けるため商談IDをコピー
このオブジェクトのレコードを作成(値)3個目$Record > 商談 ID履歴オブジェクトの参照項目に関連付けるため商談IDをコピー

ポイント

「$Record」はトリガーとなるオブジェクトの変更後のレコード情報「$Record__Prior」はトリガーとなるオブジェクトの変更前のレコード情報が格納されています。

参照項目はIDによって関連付けされるので商談IDをセットしています。

「保存」をクリックします。

各項目を入力して「保存」をクリックする。

項目備考
フローの表示ラベル任意わかりやすい名前を付ける
フローのAPI参照名任意履歴を残したい元の項目に桁数を合わせる
説明任意履歴を残したい元の項目に桁数を合わせる

「有効化」をクリックする。

4. 動作確認

商談を開いて適当に内容を編集して保存します。

ポイント

トリガーで「変更」をチェックしているので、変更せずに保存をしただけでは履歴は記録されません。

履歴が作成されていればOKです。

履歴の詳細を開くと更新者や更新日時、更新前後の内容が確認できます。

これで、リッチテキストでも更新内容が履歴として残せるようになりました!

-プログラミング
-