DMLOptions.DuplicateRuleHeader クラス
名前空間
例
次の例は、重複と識別された取引先レコードを保存する方法を示します。��複エラーを反復処理する方法についての詳細は、「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}