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

レコードを更新する

レコードを更新するには、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 が渡されていると想定します。
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	}
任意の HTTP メソッド名の上書きまたは設定を許可しない HTTP ライブラリを使用している場合、POST 要求を送信して、クエリ文字列パラメータ _HttpMethod を介して HTTP メソッドを上書きすることができます。この PATCH の例では、PostMethod の行を上書きを使用しない行に置き換えることができます。
1PostMethod m = new PostMethod(url + "?_HttpMethod=PATCH");