如何从 javascript 的 SAP Cloud SDK 中的 DocumentInfoRecord get() 调用获取 eTag(元数据)?
How to get the eTag(MetaData) from a DocumentInfoRecord get() call in SAP Cloud SDK for javascript?
我使用 SAP Cloud SDK for javascript 来处理 DocumentInfoRecords。
DIR 更新导致错误 428。
所以我需要像 SAP Cloud API.
中的请求的 etag
如何获取GET请求中的etag或者一般每个sdk请求的header响应信息?
获取:
DocumentInfoRecord.requestBuilder()
.getByKey(dir.documentInfoRecordDocType, dir.documentInfoRecordDocVersion, dir.documentInfoRecordDocNumber, dir.documentInfoRecordDocPart)
.execute({});
使用 etag 更新
DocumentInfoRecord.requestBuilder().update(dir).withCustomHeaders({ key: "If-Match", value: "etag" }).execute({});
更新:请参阅 Henning Heitkötter 的回答。
目前我们不支持电子标签处理。我们意识到这个缺点,并且已经在我们的积压中。一旦该功能可用,我们将更新此答案。
自版本 1.1.0 起,适用于 JavaScript 的 SAP Cloud SDK(fka SAP S/4HANA Cloud SDK)在后台透明地处理 ETag。有关详细信息,请查看 release blog.
中有关乐观并发控制的部分
如果您更新到最新版本(撰写本文时为 1.2.1),您可以简单地检索文档信息记录,更改要更改的字段,然后通过发送相同的对象来更新它服务。
var dir = await DocumentInfoRecord.requestBuilder()
.getByKey(dir.documentInfoRecordDocType, dir.documentInfoRecordDocVersion, dir.documentInfoRecordDocNumber, dir.documentInfoRecordDocPart)
.execute({destinationName: "MyServer"});
dir.responsiblePersonName = "John Doe";
DocumentInfoRecord.requestBuilder()
.update(dir)
.execute({destinationName: "MyServer"})
.then(...);
我使用 SAP Cloud SDK for javascript 来处理 DocumentInfoRecords。 DIR 更新导致错误 428。 所以我需要像 SAP Cloud API.
中的请求的 etag如何获取GET请求中的etag或者一般每个sdk请求的header响应信息?
获取:
DocumentInfoRecord.requestBuilder()
.getByKey(dir.documentInfoRecordDocType, dir.documentInfoRecordDocVersion, dir.documentInfoRecordDocNumber, dir.documentInfoRecordDocPart)
.execute({});
使用 etag 更新
DocumentInfoRecord.requestBuilder().update(dir).withCustomHeaders({ key: "If-Match", value: "etag" }).execute({});
更新:请参阅 Henning Heitkötter 的回答。
目前我们不支持电子标签处理。我们意识到这个缺点,并且已经在我们的积压中。一旦该功能可用,我们将更新此答案。
自版本 1.1.0 起,适用于 JavaScript 的 SAP Cloud SDK(fka SAP S/4HANA Cloud SDK)在后台透明地处理 ETag。有关详细信息,请查看 release blog.
中有关乐观并发控制的部分如果您更新到最新版本(撰写本文时为 1.2.1),您可以简单地检索文档信息记录,更改要更改的字段,然后通过发送相同的对象来更新它服务。
var dir = await DocumentInfoRecord.requestBuilder()
.getByKey(dir.documentInfoRecordDocType, dir.documentInfoRecordDocVersion, dir.documentInfoRecordDocNumber, dir.documentInfoRecordDocPart)
.execute({destinationName: "MyServer"});
dir.responsiblePersonName = "John Doe";
DocumentInfoRecord.requestBuilder()
.update(dir)
.execute({destinationName: "MyServer"})
.then(...);