過去レコードの編集時に発生する 入力規則エラーを回避したい

過去レコードの編集時に発生する 入力規則エラーを回避したい

 2020.04.30 customer_success

こんにちは。Salesforce運用支援サービスCustomer Service for Salesforce –Remote Service–(旧AGORA)」のサポート担当 K です。
お客様からのさまざまなお問い合わせの中から、「これは他のお客様にも役に立つはず!」というSalesforceのワザやトラブル解決法、豆知識をご紹介させていただきます。

今回は正しいデータ登録、データ分析を行うために欠かせない機能「入力規則」について、ちょっとしたナレッジをお伝えします。

過去のレコードを編集したときも入力規則が適用される

「入力規則」を設定すると、誤ったデータの保存を阻止することができ、より正確なデータ分析を行うことが可能になります。

一方で、運用中のセールスフォース環境に「入力規則」を追加設定すると、過去に作成されたデータを編集した際に、「入力規則」の機能がはたらき、エラーメッセージが表示され、レコードの保存ができなくなります。

何年も前のレコードに帳尻合わせの入力を追加して、誤魔化すわけにもいかないし、これは困った・・・・・・。

入力規則を設定し 「有効化」すると、有効化以前に作成・保存されていたレコードにもすべて入力規則が適用されるようになります。編集・保存しようとすると、エラー条件に合致したレコードには「エラーメッセージ」が表示され、保存できなくなります。

入力規則」については、こちらのブログ記事も併せてご参照ください。


たとえば、取引先 の「評価」を入力するときに「業種」と「年間売上」が空白だった場合はエラーを表示しなさい、という入力規則を作成し、有効化した場合、こんな画面表示となります。
データを保存できません。

入力規則1

この「入力規則」は、入力規則を設定・有効化する前に作成されていた古いレコードにも適用されますが、編集しようとしなければ、下図のように、空白であっても保存ができています。

ただし、何かの折に画面上の何かの項目を変更し、保存しようとしたとき!
「入力規則」が適用され、保存時にエラーメッセージが表示される、という挙動になってしまいます。
(機能としては、まったくもって正しい動作です。。。)

入力規則2

入力規則3

解決方法

入力規則を設ける以前に作成・編集された 過去のレコードを改めて編集しようとしたときに、この入力規則が適用されないようにする場合は、入力規則のエラー条件数式に、
「レコードの作成日が入力規則を有効化した日以降、もしくは新規作成時」という条件を追加します

エラー条件数式」に追加する条件の例
 && (DATEVALUE( CreatedDate ) >= DATE(2019,09,09) || ISNEW() )

※レコードの新規作成時は、必ずしも「評価」「業種」「年間売上」の3項目が充当されるとは限らない、という前提での数式です。

入力規則4

では、入力規則を有効化して レコードを編集し、エラーメッセージを確認してみましょう。

入力規則5

「年間売上」が空白でも、無事 レコードを保存できました。

同じく、入力規則を有効化した本日に作成されたレコードに編集を加えて、「年間売上」が空白のまま保存してみてると、規則どおりエラーメッセージが表示されました!

入力規則6

入力規則側にてを加えずに、作業時間の取れるタイミングで 粛々とレコード側を正規化していく、というのも ひとつの考え方ですが、長年利用してきた組織に途中から入力規則を加えると、全く思いも寄らないところ(関連する別のオブジェクト上など)で別のエラーが発生し、現場が大混乱!?という可能性も捨て切れません。

こんな時は、このブログでご紹介したような「場合分け」ができる簡単な数式を設定するのも、有効な手段です。

最後に

「設定で長時間悩んでしまう」「効果的に利用できているのかわからない」「運用を任せられる人がいない」など、Salesforceをうまく活用できていないと感じることはありませんか?

サークレイス社の運用保守サービスは、日々のSalesforce運用を力強くサポート。
Salesforce
認定アドミニストレーターが、ちょっとしたお問い合わせ対応から運用を丸ごと任せたいというご要望まで、幅広くお応えいたします。詳しくは以下の特設ページをご覧ください。

Salesforce運用・保守でお悩みならサークレイス