{{i18n("button.posting")}}
入力規則でレコードタイプ変更後も変更前の選択リスト値が保存されてるのを回避する
レコードタイプってとても便利ですが、運用上注意しなければならないことがいくつかあります。今回はレコードタイプ変更時の選択リスト値の制限について。
Admin
{{getTime(record.UpdatedTime)}}
※こちらは過去に公開していたブログからの移行記事です。
状況
カスタムオブジェクトで以下のような操作が発生します。
①レコードタイプ「A」にてレコードを作成。その際、選択リスト項目の[ステータス]項目の値は"A"とします。
②①をコピーしてレコードタイプ「B」のレコードを作成します。
レコードタイプ「B」においては、[ステータス]項目の値は"B1","B2","B3" のみになるよう設定しています。
つまり、このような運用の場合です。
・レコードタイプで選択リスト値を制限している。
・レコードをコピーした後にレコードタイプを変更する可能性がある。
起こったこと
②レコードタイプ「A」のレコードからの「コピー」でレコードを作成し、レコードタイプを「B」に変更して詳細入力する際に、[ステータス]項目が"A"で保存できてしまいました。
レコードのコピーの際、レコードタイプを変更しても、選択リスト値を手動で変更しなければ、たとえレコードタイプで制限されていても元のレコードタイプの値が保持されるようです。
レコードタイプで選択リスト値を制御できるはずが、できていない状態になってしまいます!
対処法
都度修正を忘れない
一度選択リスト値を変更して保存すると、次の編集時からは、元のレコードタイプの値は選択できなくなるようです。
入力規則で制御する
都度修正では、うっかり忘れてしまいがち、ということもあると思います。
そのようなときのために、入力規則でさらに入力をコントロールします。
入力規則の数式は以下のとおり。
数式
AND(
ISPICKVAL( Status__c , "A",
RecordType.Name ="B" )
※ Status__c = [ステータス]項目
[ステータス]項目の値が"A"のとき、レコードタイプが"B"である場合、エラーとなります。
この入力規則で、レコードタイプに応じた選択リスト値でなければ、レコードを保存できないように、二重に制限をかけます。
入力規則の記事いろいろ
PRIORVALUE関数の入力規則で選択リスト値の変更順を制御する
実験!入力規則で VLOOKUPを使って、正しい郵便番号と住所の組み合わせで取引先に登録させる
行動や ToDoの件名(コンボボックス項目)でテキストの入力をさせたくないとき
入力規則:フリガナは半角カタカナのみ入力可能とする
行動の日付に入力規則をつけるときは、「終日行動」に注意
郵便番号は半角数字「 ***-**** 」の形式で入力させる
取引先名の入力時、英数字とカタカナの全角入力を禁止したい
住所項目を必ず入力させる方法
過去のレコードには入力規則を適用したくない
選択リストの値によって、数値項目の上限を変更したい
特定の項目を特定の値に変更できる人を限定したい
入力規則:半角カナ(ァィゥェォッャュョ除外)と一部記号に限定
{{i18n("articles.view.premium")}}
{{cta.Content}}
{{cta.ButtonName}}
{{tag}}