レコードを更新する
レコードを更新するには、sObject Rows リソースを使用します。要求データに更新するレコード情報を指定し、リソースの PATCH メソッドを使用して、特定のレコードの ID を指定し、そのレコードを更新します。1 つのファイルに含まれるレコードは、同じオブジェクト種別である必要があります。
次の例では、Account 内の請求先市区郡の情報 (BillingCity) が更新されます。更新するレコード情報は patchaccount.json に指定されています。
- Account オブジェクトを更新する例
-
1curl https://na1.salesforce.com/services/data/v20.0/sobjects/Account/001D000000INjVe -H "Authorization: Bearer token" -H "Content-Type: application/json" -d @patchaccount.json -X PATCH - Account オブジェクトの項目を更新する場合のリクエストボディ patchaccount.json ファイルの例
-
1{ 2 "BillingCity" : "San Francisco" 3} - Account オブジェクトの項目を更新する場合のレスポンスボディの例
- 戻り値なし
- エラー応答
- 「状況コードとエラー応答」を参照してください。
次の例では、Java と HttpClient を使用し、REST API を使用してレコードを更新します。HttpClient に PatchMethod がないため、PostMethod が上書きされてメソッド名として「PATCH」が返されます。この例では、オブジェクト名とレコード ID が含まれるリソース URL が渡されていると想定します。
任意の HTTP メソッド名の上書きまたは設定を許可しない HTTP ライブラリを使用している場合、POST 要求を送信して、クエリ文字列パラメータ _HttpMethod を介して HTTP メソッドを上書きすることができます。この PATCH の例では、PostMethod の行を上書きを使用しない行に置き換えることができます。
1swfobject.registerObject("clippy.codeblock-2", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public static void patch(String url, String sid) throws IOException {
18 PostMethod m = new PostMethod(url) {
19 @Override public String getName() { return "PATCH"; }
20 };
21
22 m.setRequestHeader("Authorization", "OAuth " + sid);
23
24 Map<String, Object> accUpdate = new HashMap<String, Object>();
25 accUpdate.put("Name", "Patch test");
26 ObjectMapper mapper = new ObjectMapper();
27 m.setRequestEntity(new StringRequestEntity(mapper.writeValueAsString(accUpdate), "application/json", "UTF-8"));
28
29 HttpClient c = new HttpClient();
30 int sc = c.executeMethod(m);
31 System.out.println("PATCH call returned a status code of " + sc);
32 if (sc > 299) {
33 // deserialize the returned error message
34 List<ApiError> errors = mapper.readValue(m.getResponseBodyAsStream(), new TypeReference<List<ApiError>>() {} );
35 for (ApiError e : errors)
36 System.out.println(e.errorCode + " " + e.message);
37 }
38 }
39
40 private static class ApiError {
41 public String errorCode;
42 public String message;
43 public String [] fields;
44 }1PostMethod m = new PostMethod(url + "?_HttpMethod=PATCH");