1

我使用 SAP Cloud SDK for javascript 来处理 DocumentInfoRecords。DIR 的更新导致错误 428。所以我需要像 SAP Cloud API 中一样的请求的 etag。

如何从 GET 请求或每个 sdk 请求的一般标头响应信息中获取 etag?

得到:

DocumentInfoRecord.requestBuilder()
.getByKey(dir.documentInfoRecordDocType, dir.documentInfoRecordDocVersion, dir.documentInfoRecordDocNumber, dir.documentInfoRecordDocPart)
.execute({});

用 etag 更新

DocumentInfoRecord.requestBuilder().update(dir).withCustomHeaders({ key: "If-Match", value: "etag" }).execute({});
4

2 回答 2

1

更新:请参阅 Henning Heitkötter 的答案。


目前我们不支持 eTag 处理。我们意识到了这个缺点,并且已经在我们的积压中。该功能可用后,我们将立即更新此答案。

于 2019-04-03T10:35:26.537 回答
1

从版本 1.1.0 开始,SAP Cloud SDK for JavaScript(fka SAP S/4HANA Cloud SDK)在后台透明地处理 ETag。有关更多信息,请查看发布博客中关于乐观并发控制的部分。

如果您更新到最新版本(撰写本文时为 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(...);
于 2019-05-17T14:55:14.357 回答