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

SaveResult クラス

Database メソッドによって返される insert または update DML 操作の結果。

名前空間

Database

使用方法

SaveResult オブジェクトの配列は、insert データベースメソッドと update データベースメソッドで返されます。SaveResult 配列の各要素は、データベースメソッドの sObject[] パラメータとして渡された sObject 配列に対応します。つまり、SaveResult 配列の最初の要素は、sObject 配列の最初の要素と一致します。また、SaveResult 配列の 2 番目の要素は sObject 配列の 2 番目の要素と一致し、3 番目以降も同様です。sObject が 1 つのみ渡される場合、SaveResult 配列には 1 つの要素が含まれます。

SaveResult オブジェクトは、新規または既存の Salesforce レコードが保存されたときに生成されます。

次の例では、返された Database.SaveResult オブジェクトを介して取得および反復処理する方法を示します。これは、Database.insert の 2 番目のパラメータに false を指定して使用し、2 つの取引先を挿入して、失敗時にレコードの部分的な処理を行えるようにしています。取引先の 1 つで必須の [名称] 項目が欠落しており、これによって失敗が発生します。次に、結果を反復処理して、レコードごとに操作が成功したかどうかを判別します。正常に処理された各レコードの ID をデバッグログに書き込むか、失敗したレコードのエラーメッセージと項目を書き込みます。この例では、1 つの成功した操作と 1 つの失敗が生成されます。

1swfobject.registerObject("clippy.codeblock-0", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17// Create two accounts, one of which is missing a required field
18Account[] accts = new List<Account>{
19    new Account(Name='Account1'),
20    new Account()};
21Database.SaveResult[] srList = Database.insert(accts, false);
22
23// Iterate through each returned result
24for (Database.SaveResult sr : srList) {
25    if (sr.isSuccess()) {
26        // Operation was successful, so get the ID of the record that was processed
27        System.debug('Successfully inserted account. Account ID: ' + sr.getId());
28    }
29    else {
30        // Operation failed, so get all errors                
31        for(Database.Error err : sr.getErrors()) {
32            System.debug('The following error has occurred.');                    
33            System.debug(err.getStatusCode() + ': ' + err.getMessage());
34            System.debug('Account fields that affected this error: ' + err.getFields());
35        }
36    }
37}

SaveResult メソッド

SaveResult のメソッドは次のとおりです。すべてインスタンスメソッドです。

getErrors()

エラーが発生した場合、エラーコードと説明を示す 1 つ以上のデータベースエラーオブジェクトからなる配列を返します。

署名

public Database.Error[] getErrors()

戻り値

型: Database.Error[]

getId()

挿入または更新しようとしている sObject の ID を返します。

署名

public ID getId()

戻り値

型: ID

使用方法

この項目に値が入力されている場合、オブジェクトは正常に挿入または更新されています。この項目が空白の場合、そのオブジェクトに対する操作は失敗しています。

isSuccess()

このオブジェクトに対する DML 操作が成功した場合、true に設定された Boolean を返します。それ以外の場合は false を返します。

署名

public Boolean isSuccess()

戻り値

型: Boolean

この例では、エラーにより保存に失敗したときに検出された重複レコードを処理するために使用するコードを示します。このコードは、ユーザが取引先責任者を追加するときの重複管理を実装するカスタムアプリケーションの一部です。このサンプルアプリケーション全体を確認するには、「DuplicateResult クラス」を参照してください。

1if (!saveResult.isSuccess()) { ... }