【Salesforce】Sandboxでは入力規則を無効にしたい!

Salesforceの入力規則、便利なのですが、「sandbox環境でテストデータを作る際に弾かれて面倒くさい!!」ってこと、ありますよね?
そうなると考えたいのが、Sandbox環境では入力規則が働かないようにすることです。

Apexだと、org.IsSandboxが使えるらしいのですが、入力規則の数式では使えません。
そこで使うのが、以下の数式です。

$Organization.Id = $CustomMetadata.SystemRecordId__mdt.PrdOrgId.RecordId__c 

前提として、システムで使うメタデータは、カスタムメタデータであるSystemRecordId__mdt に登録してあります。

$Organization.Id で、現在の組織のIdが返されます。
それが、カスタムメタデータに登録したProdOrgId.RecordIdと一致しているかを判断するわけですね。

ちなみに、本番組織IDを文字列で書いたり、カスタム表示ラベルに格納しておくと、Sandbox作成時にSandboxのIDに置換されてしまいます!
なんでやねん!!!
なのでカスタムメタデータを使いましょう。

上記の数式を使うための準備のやりかた

ざっくり解説しておきます。

  1. 設定→カスタムメタデータ型から、新規カスタムメタデータ型を作成

    1. 表示ラベル:システムレコードId

    2. オブジェクト名:SystemRecordId

  2. カスタムメタデータ型にカスタム項目を追加

    1. 表示ラベル:レコードId

    2. API名:RecordId

    3. 型:テキスト(18)

  3. カスタムメタデータに、レコードを追加

    1. 表示ラベル:Salesforce本番組織ID

    2. システムレコードId名:PrdOrgId

    3. レコードId:私の組織情報で確認して入力

  4. 入力規則で、当初の式でメタデータが参照できるようになる。

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