見出し画像

【Salesforce】レコードの入力ロックがしたい!

入力ロックについて社内から依頼がありましたのでつくりました。
自分用メモも含めて記載します。


入力ロックがしたい!

現在、私の会社はようやく全社的に業務の見直しや営業活動の見直しをしなければならないと、現在の業務フロー等が出てきました…(涙)

そこで、現在営業手法や活動の洗い直しを行っており、暫定処理として以下のようにしたいと依頼が出てきました。(今後も継続するかもしれませんが…)

  • 営業メンバーが受注成約した内容をSalesforceの商談レコードに入力後、修正は営業管理者のみ行うようにしたい

受注成約した日付や金額を勝手に修正されたくないという意図のことです。
(あるあるかな?と思います)

なので、営業管理者が入力内容のチェックを行い、問題がないことを確認して入力ロックを行うような手順にしました。

入力ロックしてみた(入力規則を使用)

レコードの入力ロックですが、入力規則で行うのが一般的かと思いますので私も入力規則を使用しました。
レコードタイプをつくってフローで切り替えるというのも手としてあるとは思いますが、大がかりになってしまうので、暫定処理ということもあって入力規則にしました。

要件

  • 営業メンバーが受注成約した内容を商談レコードに入力

  • 入力された内容を営業管理者が確認し、問題なければ入力ロック

  • 入力ロック後に編集できるのは営業管理者と経理部門のみ

という要件のため、フェーズで縛ることは難しいですね。
なので、入力ロック用のチェックボックスを作成して制御することにしました。

少しネックだったのが、営業メンバーと営業管理者のプロファイルを同じ営業部門というくくりで作成していることでした。
営業管理者用のプロファイルを作成するべきか悩みましたが、現状は暫定処理のため、そのままの状態で作成することにしました。

プロファイルが同じなので、入力ロックとして使用するチェックボックス項目の表示・非表示のコントロールが難しい…。

なので、下記二つの入力規則を作成することにしました。

  • 入力ロック用のチェックボックスは営業管理者・経理部門しか編集できない

  • 入力ロック用のチェックボックスにチェックが入っていたら営業管理者と経理部門のみがレコードを編集できる

作成!

入力規則の少し戸惑うところは、制御したいことに対してエラーを出す条件式を組むことかなあと思います。
例えば、「〇〇さんのみが入力」という制御に対してエラー条件式だと「〇〇さんでない」と書かないといけないんですよね。
覚えてしまうと簡単なのですが、最初は戸惑うところかな?と思います。

①入力ロック用のチェックボックスは営業管理者・経理部門しか編集できない

以下のようなエラー条件文にしました。

AND(
ISNEW(),
Input_lock__c = True,
AND(
$User.ProfileId <> "プロファイルID",
$User.Email  <> "メールアドレス" )),

AND(
ISCHANGED(Input_lock__c),
AND(
$User.ProfileId <> "プロファイルID",
$User.Email  <> "メールアドレス" ))
)

1段目は新規登録時に特定のユーザー以外が入力ロック項目にチェックを入
れて保存ができないようにするものです。

ISNEW() →新規登録かどうか確認する

2段目は既存レコードを編集するときに入力ロックチェックが入っていたら特定のユーザー以外は保存できないようにするものです。

ISCHANGED(項目) →項目の値が変更されたかどうか確認
          変更されていたら「true」を返す

②入力ロック用のチェックボックスにチェックが入っていたら営業管理者と経理部門のみがレコードを編集できる

AND(
PRIORVALUE( 入力ロック項目 ),

AND(
$User.ProfileId <> "プロファイルID",
$User.Email  <> "メールアドレス" )
)

PRIORVALUE(項目) →変更前の値を返す
PRIORVALUEは変更前の値を返してくれるので、ANDでユーザーを指定すれば、チェックが入っていたら指定されているユーザーのみ保存できるようになります。
もしも悪い人がいて、チェックボックスのチェックを外して保存しようとしてもはじかれます。

まとめ

今回の要件でこのように作成してみました。

入力規則は、やりたいことに対してエラーになる条件式をつくる必要があるので最初は混乱してとっつきにくいかと思いますが、一度つくってみて実際に動作を確認してみると体感として分かっていくと思います。

関数の知識も必要にはなりますが、インターネットで事例を調べると出てくるので、まずは検索してみるのがいいと思います。

入力規則は一度わかってしまえば便利に動作の制御が出来るものですが、つくりすぎると、どこで何の入力規則が働いているかわからなくなってしまうので注意ですね‥。
時が経過すると余計にわからなくなりますね…。

作成するときに説明を書く欄があるので、未来の自分に向けて分かるように書いてあげるのも大事だと思います。

今回私は2つの入力規則を作成しましたが、このような要件でもっとシンプルにできるよ~などなどというアドバイスあったら教えてほしいです。


この記事が気に入ったらサポートをしてみませんか?