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

DMLOptions.DuplicateRuleHeader クラス

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

名前空間

Database

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

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.runAsCurrentUser = true;
4Account duplicateAccount = new Account(Name='dupe');
5Database.SaveResult sr = Database.insert(duplicateAccount, dml);
6if (sr.isSuccess()) {
7	System.debug('Duplicate account has been inserted in Salesforce!');
8}

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.runAsCurrentUser = true;
4Account duplicateAccount = new Account(Name='dupe');
5Database.SaveResult sr = Database.insert(duplicateAccount, dml);
6if (sr.isSuccess()) {
7	System.debug('Duplicate account has been inserted in Salesforce!');
8}