検証!「レコードタイプの異なる場合は一致とみなさない」一致ルールは作成できるか?

検証!「レコードタイプの異なる場合は一致とみなさない」一致ルールは作成できるか?

レコードタイプで組織内でのレコードの運用を分けて管理している場合に、いただくことが多いご要望です。
検証!「レコードタイプの異なる場合は一致とみなさない」一致ルールは作成できるか?
8
検証!「レコードタイプの異なる場合は一致とみなさない」一致ルールは作成できるか?
Admin
2021/01/06 17:22:51
※こちらは過去に公開していたブログからの移行記事です。

状況

取引先に対して、一致ルールと重複ルールを適用して重複管理を行っている。


やりたいこと

取引先名が同じでもレコードタイプが異なれば一致と見なされないようにして、レコードの登録を可能にしたい。


まず、一致ルールの仕様を再確認

取引先の一致ルールの一致条件で指定できる項目の中に、レコードタイプはありません。

選択可能な項目は、一致ルールが適用されるオブジェクトによって異なりますが、サポートされる入力項目の種別は次の通りです。
・メール
・参照関係
・主従関係
・数値
・電話番号
・標準選択リスト
・カスタム選択リスト (単一選択のみ)
・テキスト
・URL

◇ SALESFORCE ヘルプ >ドキュメント >データ品質 >一致ルールの一致条件


数式項目では対応できないの?

取引先に、レコードタイプ名を表示するような数式項目「数式:RecordType.DeveloperName」を作成して対応しようと考えたのですが、上述の「サポートされる入力項目の種別」に数式項目が含まれていないように、サポートされない種別のため、数式項目を作成しても一致条件で指定できませんでした。


項目自動更新で対応できる?

取引先に、レコードタイプ名を表示するようなテキスト項目を作成し、レコードが作成/編集される際にレコードタイプ名を項目自動更新するようなプロセスビルダーを設定しました。テキスト項目なので、一致条件で指定することが可能です。
しかしながら、実行順序の関係だと思うのですが、うまく動作しません。

・重複ルール「作成時/編集時のアクション」でブロックを指定していると、取引先名が重複している場合、エラーが表示されて、作成/編集ができません。

・重複ルール「作成時/編集時のアクション」で許可を指定していると、取引先名が重複している場合、アラート/レポートを指定しても、アラート/レポートが表示されることなく、レコードの作成/編集を実行できてしまいます。


実行順序や重複ルールと項目自動更新の処理について

前述のエラーについて記載がないかヘルプやナレッジ記事を確認しました。

開発者ガイドで重複ルールの実行順序について記載されているページがあり、その内容によると、重複ルールはワークフロー(項目自動更新)の前に処理されるようです。
◇ Salesforce > Developer Documentation > Apex 開発者ガイド > トリガと実行の順序


また、重複管理の動作に関するページではこのような記載がありました。
◇ Salesforce > Trailblazer Community > ヘルプ > 重複管理の動作

ワークフローの項目自動更新によるレコード更新は、 即時実行かスケジュール実行かを問わず、プロセスを実行した結果、重複チェックが動作せず、重複レコードが作成されます。

以上の内容から、

項目自動更新と重複ルールは相性が悪いらしい

ということがわかりました。


レコードタイプ名をテキスト項目にデフォルト値で指定する

取引先に、レコードタイプ名を表示するようなテキスト項目「レコードタイプテキスト」を作成し、デフォルト値に「$RecordType.Name」と指定しました。
これにより、「レコードタイプテキスト」には、デフォルトでレコードタイプ名が入力されます。
(自動的にレコードタイプは挿入されますが、数式項目ではなくテキスト項目のため、一致条件に使用できます)

一致条件に「レコードタイプテキスト」の完全一致を追加することで、レコードタイプ名が異なる場合には一致と見なさないよう、指定できました。


注意事項

「レコードタイプテキスト」項目はテキスト項目なので、そのままにしておくと変更されてしまう可能性があります。
レイアウトで非表示にするなど、正確なレコードタイプ名を保持するような設定や運用ルールが必要です。


参考

Answersでも同様の質問がされていました。
◇ Salesforce >Answers >Unsolved Questions >
How to include Account recordtype field in Matching rule


一致条件にレコードタイプを指定したい、という要望がのIdeaにも上がっています。
◇ Salesforce >IdeaExchange >Ideas >
Include Record Type as a field option for Matching Rules.
gilde tech(for Salesforce)」に入会しませんか?
登録すると、「gilde tech」に掲載されているSalesforceのノウハウを全部閲覧できるだけでなく、自分が知っている知識を発信し、他の会員と交流することもできます。
またSalesforceの知識習得に役立つイベント情報も得ることができます。
是非ここで得た知識を業務に活かしてください!
8
コメント