フローを活用したレコードロック制御 〜Summer’24で広がる新しい可能性〜
#Salesforce #レコードロック #Summer'24
目次
Salesforceを使用している組織で、こんな課題に直面したことはありませんか。商談がクローズした後でも金額が変更できてしまう。重要な契約情報が誤って書き換えられてしまう。そういった状況を防ぐため、様々な制御を設定している方も多いのではないでしょうか。
今回は、Summer’24で追加された「フローによるレコードロック制御」機能を使って、これらの課題を解決する方法をご紹介します。この機能を活用することで、従来は個別開発が必要だった制御も、フローで簡単に実現できるようになりました。
レコードロック制御の基礎知識
Salesforceでレコードの編集を制御する場合、これまでは主に以下のような方法が使われてきました。
- 入力規則による項目単位での制御
- 参照のみのページレイアウトを用意し、レコードタイプで切り替える
- 承認プロセスを利用したレコードロック
しかし、これらの方法にはそれぞれ課題がありました。入力規則は項目ごとに設定が必要で、項目数が多いと管理が煩雑になります。ページレイアウトによる制御は、新しい項目が追加されるたびに設定の見直しが必要です。承認プロセスは、承認ワークフロー以外での利用が難しいという制限がありました。
Summer’24で追加された「レコードロック」アクションを使用すると、これらの課題を一気に解決できます。フローから直接レコードをロックできるため、柔軟な制御が可能になりました。
フローによるレコードロック制御の実装
それでは、具体的な実装手順をご紹介します。今回は以下の要件で実装を進めていきます。
- 商談がクローズした時点でレコードをロックし、編集できないようにする
- 営業責任者とシステム管理者のみが使用できる「ロック解除」「再ロック」ボタンを配置する
事前準備:カスタム項目の作成
まず、商談オブジェクトに以下のカスタム項目を作成します。
- 項目名:レコードロック
- API参照名:Record_Lock__c
- データ型:チェックボックス
この項目は、現在のレコードロックの状態を管理するために使用します。フローだけではロック状態を直接取得できないため、この項目で状態を管理する必要があります。
レコードトリガーフローの作成
次に、申請承認時のロック処理を実装します。
- 新しいレコードトリガーフローを作成し、以下の設定を行います。
- 「レコードの更新」要素を配置し、レコードロック項目をTrueに更新します。
- 「レコードのロック」アクションを配置し、以下の値を設定します。
オブジェクト:申請
トリガー条件:レコードが更新された場合
エントリ条件:IsApproved = true
アクション:Lock
レコードID:$Record.Id
許可されるID:含まない
このフローにより、申請が承認された時点で自動的にレコードがロックされます。
画面フローの作成
続いて、任意のタイミングでロック解除と再ロックを行う画面フローを作成します。
- 新しい画面フローを作成します。
- 「レコードの取得」要素で取引先レコードを取得します。
- 「数式」要素を作成し、現在のロック状態に応じて実行するアクションを決定します。
- 「確認画面」要素を配置し、ユーザーに操作の確認を求めます。
- 「レコードのロック」アクションを配置し、以下の値を設定します。
- レコードロック項目の更新処理を追加します。
Copy
IF({!$Record.Record_Lock__c}, "Unlock", "Lock")
アクション:{!Action}(先ほどの数式の結果)
レコードID:{!$Record.Id}
動作確認とトラブルシューティング
実装したフローが正しく動作するか、以下の点を確認します。
- 商談クローズ時の動作
- ロック解除・再ロックの動作
● 商談をクローズすると、レコードがロックされること
● ロックされた状態で編集しようとすると、エラーが表示されること
● 営業管理者でログインし、ロック解除ボタンが機能すること
● ロック解除後、レコードが編集可能になること
● 再ロックボタンで、再度ロック状態に戻せること
運用時には以下の点に注意が必要です。
- システム管理者は、ロックされたレコードでも編集可能です
- すでにロックされているレコードに対して再度ロックを実行するとエラーになります
- ロックされていないレコードに対するロック解除は、エラーにはなりません
まとめ
Summer’24で追加された「レコードのロック」アクションにより、これまで個別開発や複雑な設定が必要だったレコードロック制御が、フローで簡単に実現できるようになりました。
実装のポイントをまとめると、
- ロック状態を管理するカスタム項目を用意する
- レコードトリガーフローでクローズ時の自動ロックを実現
- 画面フローでロック解除・再ロック機能を提供
この機能を活用することで、データの整合性を保ちながら、必要な時に柔軟な制御が可能になります。
ぜひ、みなさんの組織でも活用してみてください。
<Salesforce>
弊社ではSalesforceをはじめとするさまざまな無料オンラインセミナーを実施しています!
>>セミナー一覧はこちら
また、弊社ではSalesforceの導入支援のサポートも行っています。ぜひお気軽にお問い合わせください。
>>Salesforceについての詳細はこちら
>>Salesforceの導入支援実績はこちらからご覧いただけます!
医療業界に特化した営業支援、顧客管理(SFA/CRM)のコンサルティングも提供しております。こちらもぜひお気軽にお問い合わせください。
>>顧客管理(SFA/CRM)のコンサルティングの詳細はこちら