问题描述
根据 integration guide for Contacts OData,Sap-cuan-SequenceId
标头在更新 ContactOriginData 记录时是必需的。在单例模式下更新时,我可以按如下方式设置此标头,并且可以正常工作:
service
.updateContactOriginData(contact)
.withHeader("Sap-cuan-SequenceId","PatchUpdate")
.executeRequest(destination);
但是,在批处理模式下执行相同更新时,没有设置此标头的选项:
service
.batch()
.beginChangeSet()
.updateContactOriginData(contact)
.withHeader(...) // this option does not exist
.endChangeSet()
.executeRequest(destination);
Invalid content in field Sap-cuan-SequenceId
是否可以在批处理模式下设置此标题,但我不知道如何设置?我正在使用 SDK 的 3.39.0
版本。任何帮助将不胜感激!
谢谢!
解决方法
这显然是一个实现缺陷。 SDK 为 OData BATCH in the OData v4 client 提供了一个新的 API,它不应该有这个问题。提到的服务仅公开 OData v2,而 OData v2 BATCH 实现在历史上是不同的。出于兼容性原因,它必须保持这样。我们计划提供一个并行实现以使其与 OData v4 保持一致并修复许多次要和主要的不一致。
如果这非常紧急,我们可以尝试使用 SDK 的 generic OData client 提供解决方法,否则会在此 GitHub repository 中产生问题,SDK 团队会在添加标头的修复程序生效时更新您被释放。