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

レコードを更新する

レコードを更新するには、sObject Rows リソースを使用します。要求データに更新するレコード情報を指定し、リソースの PATCH メソッドを使用して、特定のレコードの ID を指定し、そのレコードを更新します。1 つのファイルに含まれるレコードは、同じオブジェクト種別である必要があります。

次の例では、Account 内の請求先市区郡の情報 (BillingCity) が更新されます。更新するレコード情報は patchaccount.json に指定されています。

Account オブジェクトを更新する例
1curl https://MyDomainName.my.salesforce.com/services/data/v59.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 が渡されていると想定します。
1public static void patch(String url, String sid) throws IOException {
2  PostMethod m = new PostMethod(url) {
3    @Override public String getName() { return "PATCH"; }
4  };
5
6  m.setRequestHeader("Authorization", "OAuth " + sid);
7
8  Map<String, Object> accUpdate = new HashMap<String, Object>();
9  accUpdate.put("Name", "Patch test");
10  ObjectMapper mapper = new ObjectMapper();
11  m.setRequestEntity(new StringRequestEntity(mapper.writeValueAsString(accUpdate), "application/json", "UTF-8"));
12
13  HttpClient c = new HttpClient();
14  int sc = c.executeMethod(m);
15  System.out.println("PATCH call returned a status code of " + sc);
16  if (sc > 299) {
17    // deserialize the returned error message
18    List<ApiError> errors = mapper.readValue(m.getResponseBodyAsStream(), new TypeReference<List<ApiError>>() {} );
19    for (ApiError e : errors)
20      System.out.println(e.errorCode + " " + e.message);
21  }
22}
23
24private static class ApiError {
25  public String errorCode;
26  public String message;
27  public String [] fields;
28}
任意の HTTP メソッド名の上書きまたは設定を許可しない HTTP ライブラリを使用している場合、POST 要求を送信して、クエリ文字列パラメータ _HttpMethod を介して HTTP メソッドを上書きすることができます。この PATCH の例では、PostMethod の行を上書きを使用しない行に置き換えることができます。
1PostMethod m = new PostMethod(url + "?_HttpMethod=PATCH");