この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

DuplicateRule

オブジェクト内の重複レコードの検出方法を指定するルールを表します。Metadata メタデータ型を拡張し、その fullName 項目を継承します。

可能な場合は、Equality の会社の値に一致するように、含めない用語を変更しました。顧客の実装に対する影響を回避するために、一部の用語は変更されていません。

重要

ファイルのサフィックスおよびディレクトリの場所

DuplicateRule コンポーネントのサフィックスは .duplicateRule で、duplicateRules/ ディレクトリに保存されます。コンポーネントのファイルの名前は、ルールに関連付けられているオブジェクトの名前に基づきます。たとえば、コンポーネントファイル名 duplicateRules/Account.Standard_Account_Duplicate_Rule.duplicateRule は、取引先オブジェクトに関連付けられている重複ルールコンポーネントを表します。

バージョン

DuplicateRule コンポーネントは、API バージョン 58.0 以降で使用できます。

項目

項目名 項目の型 説明
actionOnInsert DupeActionType (string 型の列挙) 必須。ユーザまたは DuplicateRule API が、重複するレコードを挿入しようとしたとき、重複ルールで何を実行するかを決めます。有効な値は、次のとおりです。
Allow
ユーザの場合、operationsOnInsertalert に設定されていると、ダイアログに alertText の値が表示されます。このダイアログにより、ユーザは、続行かキャンセルを選択するように求められます。ユーザが続行を選択すると、挿入が進められます。ユーザがキャンセルを選択すると、レコードは挿入されません。

DuplicateRule API はエラーコードとメッセージを返します。挿入を完了するには、コードによって DuplicateRuleHeader の allowSave 項目を true に設定し、要求を再発行する必要があります。

operationsOnInsertalert に設定していない場合、アラートは発行されずにレコードが挿入されます。API によってレコードが挿入され、エラーコードは返されません。

Block
ユーザの場合、エラーメッセージが表示され、ユーザが新しいレコードを挿入することが防止されます。DuplicateRule API によってエラーが返され、レコードは挿入されません。
actionOnUpdate DupeActionType (string 型の列挙) 必須。ユーザまたは DuplicateRule API がレコードを更新しようとして、結果が重複するとき、重複ルールで何を実行するかを決めます。有効な値は、次のとおりです。
Allow
ユーザの場合、operationsOnUpdatealert に設定されていると、ダイアログに alertText の値が表示されます。このダイアログにより、ユーザは、続行かキャンセルを選択するように求められます。ユーザが続行を選択すると、更新が進められます。ユーザがキャンセルを選択すると、レコードは更新されません。

DuplicateRule API はメッセージを返します。更新を完了するには、コードによって DuplicateRuleHeader の allowSave 項目を true に設定し、要求を再発行する必要があります。

operationsOnUpdatealert に設定していない場合、アラートは発行されずにレコードが更新されます。API によってレコードが更新され、エラーコードは返されません。

Block
ユーザの場合、エラーメッセージが表示され、ユーザが続行することが防止されます。DuplicateRule API はエラーを返します。
alertText string 重複ルールがトリガされたときに送信されるテキスト。テキストが送信されるのは、isActivetrue である場合のみです。UI では、テキストがメッセージとして表示されます。DuplicateRule API は、その応答でメッセージを返します。

alertText の値を設定できるのは、actionOnInsertactionOnUpdate、またはその両方を Allow に設定したときのみです。このように設定していないと、このコンポーネントの追加または更新を行うときに入力規則エラーが発生します。

description string 必須。重複ルールを説明するテキストです。値はお客様が指定しますが、UI には表示されません。
duplicateRuleFilter DuplicateRuleFilter 必須。重複を探すときに考慮するレコードの検索方法を定義する条件。たとえば、duplicateRuleFilter を使用して、重複を探すときに照合からレコードを除外します。
duplicateRuleMatchRules DuplicateRuleMatchRule[] 必須。DuplicateRule の 1 つ以上の MatchingRule コンポーネント。MatchingRule では、レコード間の一致を何によって判定するかを制御します。
isActive boolean 必須。true にすると、DuplicateRule によって重複レコードが検出されます。その他の場合、ルールは無効です。
masterLabel string 必須。この DuplicateRule の表示ラベル。この値は、ルールの内部ラベルです。
operationsOnInsert string[] 必須。actionOnInsertAllow に設定されていて、重複ルールがトリガされたときに実行するアクションを制御します。次のいずれかの値または両方の値を配列に設定できます。
alert
設定すると、actionOnInsert に指定されているアクションが実行されます。設定しないと、挿入が進められます。
report
設定すると、挿入操作が重複のレポートに追加されます。
operationsOnUpdate string[] 必須。actionOnUpdateAllow に設定されていて、重複ルールがトリガされたときに実行するアクションを制御します。次のいずれかの値または両方の値を配列に設定できます。
alert
設定すると、actionOnUpdate に指定されているアクションが実行されます。設定しないと、更新が進められます。
report
設定すると、更新操作が重複のレポートに追加されます。
securityOption DupeSecurityOptionType (string 型の列挙) 必須。レコード共有ルールが重複管理にどのように影響するかを決めます。有効な値は、次のとおりです。
EnforceSharingRules
共有ルールが重複管理に影響します。挿入または更新によって既存のレコードが重複するために重複ルールがトリガされるが、実行ユーザにそのレコードへの共有アクセス権がない場合は、挿入または更新が進められます。共有ルールのために、レコードがユーザに表示されないという理由で、ユーザがレコードの作成や更新を行うことが防止されることはありません。メッセージは発行されません。
BypassSharingRules
共有ルールが重複管理に影響しません。挿入または更新によって既存のレコードが重複するために重複ルールがトリガされる場合、共有ルールは無視されますが、その他のアクセス制限は適用されます。
sortOrder int 必須。重複ルールを適用する順序を決めます。

DuplicateRuleMatchRule

DuplicateRule に関連付けられている MatchingRule について説明します。MatchingRule により、重複レコードが識別されます。
項目名 項目の型 説明
matchRuleSObjectType string 必須。一致ルールの対象オブジェクトの名前。たとえば、取引先責任者レコードの重複ルールを定義し、リードレコードと照合する場合は、matchRuleSObjectType の値をリードにします。
matchingRule string 必須。この重複ルールの MatchingRuledeveloperName の値に対応する値。
objectMapping ObjectMapping 必須。ObjectMapping の外部キーであり、重複ルールのオブジェクトの項目を matchRuleSObjectType によって指定される対象オブジェクトの項目に対応付けます。

DuplicateRuleFilter

DuplicateRule の検索条件を指定します。Salesforce が DuplicateRule を適用するのは、レコードが条件と一致する場合のみです。
項目名 項目の型 説明
booleanFilter string 必須。duplicateRuleFilterItems に指定されている条件設定項目に検索条件ロジックを設定する、Boolean 演算子の文字列。
duplicateRuleFilterItems DuplicateRuleFilterItem[] 必須。DuplicateRuleFilterItem コンポーネントのリスト。

DuplicateRuleFilterItem

このタイプによって FilterItem タイプが拡張され、すべての項目が継承されます。

項目名 項目の型 説明
sortOrder int 必須。重複ルール条件でのこの項目の順序。
table string 必須。DuplicateRuleFilterItemfield 項目に指定されている項目があるオブジェクト。field の定義については、FilterItem のドキュメントを参照してください。

ObjectMapping

DuplicateRule の入力オブジェクトの項目と DuplicateRule の出力オブジェクトの項目との対応を表します。入力オブジェクトは、DuplicateRule と関連付けられているオブジェクトです。出力オブジェクトは、同一オブジェクト、または同じ項目を含む別のオブジェクトにすることができます。

たとえば、取引先責任者オブジェクトとリードオブジェクトとの間で重複を探す DuplicateRule があるとします。この場合、入力オブジェクトは取引先責任者であり、出力オブジェクトはリードです。

項目名 項目の型 説明
inputObject string 必須。重複ルールの入力オブジェクト。DuplicateRule はこのオブジェクトに関連付けられます。たとえば、取引先責任者レコードの重複ルールを定義し、リードレコードと照合する場合は、inputObject の値を取引先責任者にします。
mappingFields ObjectMappingField[] 必須。重複ルールの参照元オブジェクト項目と参照先オブジェクト項目の対応付け。
outputObject string 必須。重複ルールの出力オブジェクト。この値は、DuplicateRuleMatchRulematchRuleSObjectType 項目の値と同じです。DuplicateRule API で ObjectMapping が使用されるとき、このオブジェクトに含まれる重複ルールは無視されます。

ObjectMappingField

DuplicateRule の入力オブジェクトの項目名、および出力オブジェクトで対応する項目名。
項目名 項目の型 説明
inputField string 必須。ObjectMappinginputObject 項目によって指定されるオブジェクトの項目。この項目は outputField の項目に対応付けられ、ObjectMappingoutputObject 項目によって指定されるオブジェクトの項目であると想定されます。
outputField string 必須。ObjectMappingoutputObject 項目によって指定されるオブジェクトの項目。この項目は inputField の項目名に対応付けられ、ObjectMappinginputObject によって指定されるオブジェクトの項目であると想定されます。

宣言的なメタデータの定義のサンプル

DuplicateRule コンポーネントの例を次に示します。

1<?xml version="1.0" encoding="UTF-8"?>
2<DuplicateRule xmlns="http://soap.sforce.com/2006/04/metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
3    <actionOnInsert>Allow</actionOnInsert>
4    <actionOnUpdate>Allow</actionOnUpdate>
5    <alertText>You are creating a duplicate record. Use an existing record instead.</alertText>
6    <description>Detects a contact that duplicates a Lead</description>
7    <duplicateRuleFilter>
8        <booleanFilter xsi:nil="true"/>
9        <duplicateRuleFilterItems>
10            <field>Username</field>
11            <operation>equals</operation>
12            <value>user@example.com</value>
13            <sortOrder>1</sortOrder>
14            <table>User</table>
15        </duplicateRuleFilterItems>
16    </duplicateRuleFilter>
17    <duplicateRuleMatchRules>
18        <matchRuleSObjectType>Lead</matchRuleSObjectType>
19        <matchingRule>ContactToLeadDuplicate_matching_rule</matchingRule>
20        <objectMapping>
21            <inputObject>Contact</inputObject>
22            <mappingFields>
23                <inputField>FirstName</inputField>
24                <outputField>FirstName</outputField>
25            </mappingFields>
26            <mappingFields>
27                <inputField>LastName</inputField>
28                <outputField>LastName</outputField>
29            </mappingFields>
30            <outputObject>Lead</outputObject>
31        </objectMapping>
32    </duplicateRuleMatchRules>
33    <isActive>true</isActive>
34    <masterLabel>ContactToLeadDuplicate</masterLabel>
35    <operationsOnInsert>Alert</operationsOnInsert>
36    <operationsOnInsert>Report</operationsOnInsert>
37    <operationsOnUpdate>Alert</operationsOnUpdate>
38    <operationsOnUpdate>Report</operationsOnUpdate>
39    <securityOption>EnforceSharingRules</securityOption>
40    <sortOrder>1</sortOrder>
41</DuplicateRule>

前の定義を参照する package.xml の例を次に示します。

1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3    <types>
4        <members>ContactToLeadDuplicate</members>
5        <name>DuplicateRule</name>
6    </types>
7    <version>38.0</version>
8</Package>

マニフェストファイル内のワイルドカードのサポート

このメタデータ型では、package.xml マニフェストファイル内のワイルドカード文字 * (アスタリスク) がサポートされます。マニフェストファイルの使用についての詳細は、「zip ファイルを使用したメタデータのリリースと取得」を参照してください。