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

DMLOptions.DuplicateRuleHeader クラス

重複ルールを使用して重複レコードを検出するためのオプションを決定します。重複ルールは重複管理機能の一部です。

名前空間

Database

次の���は、重複と識別された取引先レコードを保存する方法を示します。重複エラーを反復処理する方法についての詳細は、「DuplicateError クラス」を参照してください。
1Database.DMLOptions dml = new Database.DMLOptions(); 
2dml.DuplicateRuleHeader.allowSave = true;
3dml.DuplicateRuleHeader.includeRecordDetails = true;
4dml.DuplicateRuleHeader.runAsCurrentUser = true;
5Account duplicateAccount = new Account(Name='dupe');
6Database.SaveResult sr = Database.insert(duplicateAccount, dml);
7if (sr.isSuccess()) {
8	System.debug('Duplicate account has been inserted in Salesforce!');
9}

DMLOptions.DuplicateRuleHeader プロパティ

DMLOptions.DuplicateRuleHeader のプロパティは次のとおりです。

allowSave

重複レコードを保存するには、true に設定します。重複レコードが保存されないようにするには、false に設定します。

署名

public Boolean allowSave {get; set;}

プロパティ値

型: Boolean

この例では、重複と識別された取引先レコードを保存する方法を示します。dml.DuplicateRuleHeader.allowSave = true は、ユーザが重複を保存できることを意味します。重複エラーを反復処理する方法についての詳細は、「DuplicateError クラス」を参照してください。
1Database.DMLOptions dml = new Database.DMLOptions(); 
2dml.DuplicateRuleHeader.allowSave = true;
3dml.DuplicateRuleHeader.includeRecordDetails = true;
4dml.DuplicateRuleHeader.runAsCurrentUser = true;
5Account duplicateAccount = new Account(Name='dupe');
6Database.SaveResult sr = Database.insert(duplicateAccount, dml);
7if (sr.isSuccess()) {
8	System.debug('Duplicate account has been inserted in Salesforce!');
9}

includeRecordDetails

重複として検出されたレコードの項目と値を取得するには、true に設定します。重複として検出されたレコードのレコード ID のみを取得するには、false に設定します。

署名

public Boolean includeRecordDetails {get; set;}

プロパティ値

型: Boolean

次の例は、重複と識別された取引先レコードを保存する方法を示します。dml.DuplicateRuleHeader.includeRecordDetails = true は、ユーザが重複を保存できることを意味します。重複エラーを反復処理する方法についての詳細は、「DuplicateError クラス」を参照してください。
1Database.DMLOptions dml = new Database.DMLOptions(); 
2dml.DuplicateRuleHeader.allowSave = true;
3dml.DuplicateRuleHeader.includeRecordDetails = true;
4dml.DuplicateRuleHeader.runAsCurrentUser = true;
5Account duplicateAccount = new Account(Name='dupe');
6Database.SaveResult sr = Database.insert(duplicateAccount, dml);
7if (sr.isSuccess()) {
8	System.debug('Duplicate account has been inserted in Salesforce!');
9}

runAsCurrentUser

重複ルールを実行するときに現在のユーザの共有ルールを適用するには、true に設定します。クラスで指定された共有ルールを要求に使用するには、false に設定します。共有ルールが指定されていない場合、Apex コードはシステムコンテキストで実行され、現在のユーザの共有ルールは適用されません。

署名

public Boolean runAsCurrentUser {get; set;}

プロパティ値

型: Boolean

使用方法

true を指定した場合、現在のユーザに対して重複ルールが実行され、ユーザは許可されていない重複レポートを参照できなくなります。

リードを取引先責任者に変換するときに重複を検出するには、runAsCurrentUser = true を使用します。通常、リードの変換 Apex コードはシステムコンテキストで実行され、現在のユーザの共有ルールは適用されません。

この例では、新規取引先を保存するときに現在のユーザに対して重複ルールを実行するようにオプションを設定する方法を示します。
1Database.DMLOptions dml = new Database.DMLOptions(); 
2dml.DuplicateRuleHeader.allowSave = true;
3dml.DuplicateRuleHeader.includeRecordDetails = true;
4dml.DuplicateRuleHeader.runAsCurrentUser = true;
5Account duplicateAccount = new Account(Name='dupe');
6Database.SaveResult sr = Database.insert(duplicateAccount, dml);
7if (sr.isSuccess()) {
8	System.debug('Duplicate account has been inserted in Salesforce!');
9}