使用 OData 更新记录
要使用 OData 更新现有记录,您需要使用 PUT 请求。 与使用 POST 请求类似,您需要在请求正文中以 JSON 文档形式提供要更新的记录。 但是,此时您还需要在 URL 中指定记录的主键。
此外,Business Central 需要确保您正在更新最新版本的记录,这就是它使用并发令牌的原因。 您必须在请求中以 HTTP 标头形式发送本令牌。 然后,Business Central 可以在数据库中验证您是否正在更新最新版本的记录,同时没有其他用户更新了该记录。 若要检索此令牌,您应先请求特定记录的详细信息,然后才能更新这些值。 当执行 GET 请求以检索数据时,您将收到一个 JSON 文档,其中包含 @odata.etag 键。 本键的值是您的并发令牌,您需要在 PUT 请求中复制和使用该值。
etag 值应以 If-Match HTTP 标头形式发送。 您可以选择标头,然后添加具有 etag 值的 If-Match 标头,如以下示例中所示。
@odata.etag 值是 JSON 文档中的字符串值。 JSON 文档中的字符串值始终以 "(双引号)字符开头和结尾。 但是,由于 @odata.etag 值本身也在字符串值中包含双引号字符,因此 @odata.etag 中的双引号为转义字符。 当您在 If-Match 标头中使用 etag 值时,您需要删除这些转义字符。
这意味着以下值:
W/\"JzQ0O3ZSUjBKTVdWenZvZ3IyTGlFSStWbllUVUNkdUZVQmxSV3p1dk1xMFo4REU9MTswDsn\"
会变为:
W/"JzQ0O3ZSUjBKTVdWenZvZ3IyTGlFSStWbllUVUNkdUZVQmxSV3p1dk1xMFo4REU9MTswDsn"
另请注意,URL 的目标为一条特定记录:主键为 10000 的客户记录。