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

AllOrNoneHeader

正常に処理されないレコードがあった場合に、コールですべての変更をロールバックできます。

AllOrNoneHeader ヘッダーがない場合、エラーのないレコードはコミットされますが、エラーのあったレコードはコールの結果では失敗とマークされます。このヘッダーは、API バージョン 20.0 以降で使用できます。

ヘッダーが有効な場合でも、エラーのあるレコードを特定するには、レコードごとにコールの結果の success 項目を確認する必要があります。各 success 項目には true または false が含まれ、コールが正常に処理されたかどうかを示します。

少なくとも 1 つのレコードに関連するエラーがある場合、レコードのコールの結果の errors 項目でエラーの詳細情報が提供されます。同じコールのその他のレコードにエラーがない場合、errors 項目は他のエラーによりレコードがロールバックされたことを示します。

API コール

create()delete()undelete()update()upsert()

項目

要素名 説明
allOrNone boolean true の場合、コールに失敗したレコードが存在すると、コールに対するすべての変更がロールバックされます。すべてのレコードが正常に処理されない限りレコードの変更はコミットされません。

デフォルトは、false です。一部のレコードは正常に処理されますが、その他のレコードはコールの結果で失敗とマークされます。

サンプルコード — Java

このサンプルでは、AllOrNoneHeader の使用方法を示します。2 つの取引先責任者の作成を試みますが、2 番目の取引先責任者について必須項目の一部が設定されていないため、作成に失敗します。次に、このサンプルでは allOrNone 項目を true に設定し、取引先責任者の作成を試みます。いずれかの取引先責任者の作成でエラーが発生するため、トランザクション全体がロールバックされ、取引先責任者は作成されません。
1public void allOrNoneHeaderSample() {
2    try {
3      // Create the first contact.
4      SObject[] sObjects = new SObject[2];
5      Contact contact1 = new Contact();
6      contact1.setFirstName("Robin");
7      contact1.setLastName("Van Persie");
8  
9      // Create the second contact. This contact doesn't 
10      // have a value for the required
11      // LastName field so the create will fail.
12      Contact contact2 = new Contact();
13      contact2.setFirstName("Ashley");
14      sObjects[0] = contact1;
15      sObjects[1] = contact2;
16      
17      // Set the SOAP header to roll back the create unless
18      // all contacts are successfully created.
19      connection.setAllOrNoneHeader(true);
20      // Attempt to create the two contacts.
21      SaveResult[] sr = connection.create(sObjects);
22      for (int i = 0; i < sr.length; i++) { 
23        if (sr[i].isSuccess()) {
24          System.out.println("Successfully created contact with id: " + 
25            sr[i].getId() + ".");
26        }
27        else {
28          // Note the error messages as the operation was rolled back 
29          // due to the all or none header.
30          System.out.println("Error creating contact: " + 
31            sr[i].getErrors()[0].getMessage());
32          System.out.println("Error status code: " + 
33            sr[i].getErrors()[0].getStatusCode());
34        }
35      }
36    } catch (ConnectionException ce) {
37      ce.printStackTrace();
38    }
39  }
40}