この文章は 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");	public 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	
24	private 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");