无法在批处理模式下为 ContactOriginData PATCH 设置强制性标头

问题描述

根据 integration guide for Contacts ODataSap-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);

当我运行批处理时,我的 SAP 导入监视器显示错误

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 团队会在添加标头的修复程序生效时更新您被释放。