ブログ

フローを活用したレコードロック制御 〜Summer’24で広がる新しい可能性〜

#Salesforce #レコードロック #Summer'24

積極採用中
セミナー情報

Salesforceを使用している組織で、こんな課題に直面したことはありませんか。商談がクローズした後でも金額が変更できてしまう。重要な契約情報が誤って書き換えられてしまう。そういった状況を防ぐため、様々な制御を設定している方も多いのではないでしょうか。

今回は、Summer’24で追加された「フローによるレコードロック制御」機能を使って、これらの課題を解決する方法をご紹介します。この機能を活用することで、従来は個別開発が必要だった制御も、フローで簡単に実現できるようになりました。

レコードロック制御の基礎知識

Salesforceでレコードの編集を制御する場合、これまでは主に以下のような方法が使われてきました。

  • 入力規則による項目単位での制御
  • 参照のみのページレイアウトを用意し、レコードタイプで切り替える
  • 承認プロセスを利用したレコードロック

しかし、これらの方法にはそれぞれ課題がありました。入力規則は項目ごとに設定が必要で、項目数が多いと管理が煩雑になります。ページレイアウトによる制御は、新しい項目が追加されるたびに設定の見直しが必要です。承認プロセスは、承認ワークフロー以外での利用が難しいという制限がありました。

Summer’24で追加された「レコードロック」アクションを使用すると、これらの課題を一気に解決できます。フローから直接レコードをロックできるため、柔軟な制御が可能になりました。

フローによるレコードロック制御の実装

それでは、具体的な実装手順をご紹介します。今回は以下の要件で実装を進めていきます。

  1. 商談がクローズした時点でレコードをロックし、編集できないようにする
  2. 営業責任者とシステム管理者のみが使用できる「ロック解除」「再ロック」ボタンを配置する

事前準備:カスタム項目の作成

まず、商談オブジェクトに以下のカスタム項目を作成します。

  • 項目名:レコードロック
  • API参照名:Record_Lock__c
  • データ型:チェックボックス

この項目は、現在のレコードロックの状態を管理するために使用します。フローだけではロック状態を直接取得できないため、この項目で状態を管理する必要があります。

レコードトリガーフローの作成

次に、申請承認時のロック処理を実装します。

  1. 新しいレコードトリガーフローを作成し、以下の設定を行います。
  2.   オブジェクト:申請
      トリガー条件:レコードが更新された場合
      エントリ条件:IsApproved = true

  3. 「レコードの更新」要素を配置し、レコードロック項目をTrueに更新します。
  4. 「レコードのロック」アクションを配置し、以下の値を設定します。

  アクション:Lock
  レコードID:$Record.Id
  許可されるID:含まない

このフローにより、申請が承認された時点で自動的にレコードがロックされます。

画面フローの作成

続いて、任意のタイミングでロック解除と再ロックを行う画面フローを作成します。

  1. 新しい画面フローを作成します。
  2. 「レコードの取得」要素で取引先レコードを取得します。
  3. 「数式」要素を作成し、現在のロック状態に応じて実行するアクションを決定します。
  4.  

    Copy

    IF({!$Record.Record_Lock__c}, "Unlock", "Lock")
     
    
    
  5. 「確認画面」要素を配置し、ユーザーに操作の確認を求めます。
  6. 「レコードのロック」アクションを配置し、以下の値を設定します。
  7.   アクション:{!Action}(先ほどの数式の結果)
      レコードID:{!$Record.Id}

  8. レコードロック項目の更新処理を追加します。

動作確認とトラブルシューティング

実装したフローが正しく動作するか、以下の点を確認します。

  1. 商談クローズ時の動作
  2.   ● 商談をクローズすると、レコードがロックされること
      ● ロックされた状態で編集しようとすると、エラーが表示されること

  3. ロック解除・再ロックの動作
  4.   ● 営業管理者でログインし、ロック解除ボタンが機能すること
      ● ロック解除後、レコードが編集可能になること
      ● 再ロックボタンで、再度ロック状態に戻せること

運用時には以下の点に注意が必要です。

  • システム管理者は、ロックされたレコードでも編集可能です
  • すでにロックされているレコードに対して再度ロックを実行するとエラーになります
  • ロックされていないレコードに対するロック解除は、エラーにはなりません

まとめ

Summer’24で追加された「レコードのロック」アクションにより、これまで個別開発や複雑な設定が必要だったレコードロック制御が、フローで簡単に実現できるようになりました。

実装のポイントをまとめると、

  • ロック状態を管理するカスタム項目を用意する
  • レコードトリガーフローでクローズ時の自動ロックを実現
  • 画面フローでロック解除・再ロック機能を提供

この機能を活用することで、データの整合性を保ちながら、必要な時に柔軟な制御が可能になります。
ぜひ、みなさんの組織でも活用してみてください。

<Salesforce>
弊社ではSalesforceをはじめとするさまざまな無料オンラインセミナーを実施しています!
>>セミナー一覧はこちら

また、弊社ではSalesforceの導入支援のサポートも行っています。ぜひお気軽にお問い合わせください。
>>Salesforceについての詳細はこちら
>>Salesforceの導入支援実績はこちらからご覧いただけます!

医療業界に特化した営業支援、顧客管理(SFA/CRM)のコンサルティングも提供しております。こちらもぜひお気軽にお問い合わせください。
>>顧客管理(SFA/CRM)のコンサルティングの詳細はこちら

CONTACT
お問い合わせ

ご相談やご依頼、病院マスタなどについてのお問い合わせはこちらのお問い合わせフォームから。

サービスなどについてのお問い合わせ 病院マスタについてのお問い合わせ

メールお問い合わせ