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

Unable to set mandatory headers for ContactOriginData PATCH in batch mode

根据 integration guide for Contacts ODataSap-Cuan-SequenceId header 在更新 ContactOriginData 记录时是强制性的。在单例模式下更新时,我可以按如下方式设置 header 并且它可以正常工作:

service
  .updateContactOriginData(contact)
  .withHeader("Sap-Cuan-SequenceId", "PatchUpdate")
  .executeRequest(destination);

但是,在批处理模式下执行相同的更新时,没有设置这个 header 的选项:

service
  .batch()
  .beginChangeSet()
  .updateContactOriginData(contact)
  .withHeader(...) // this option does not exist
  .endChangeSet()
  .executeRequest(destination);

当我 运行 第一个批次时,我的 SAP 导入监视器显示错误:

Invalid content in field Sap-Cuan-SequenceId

是否可以在批处理模式下设置此 header,我只是不知道如何设置?我使用的是 SDK 版本 3.39.0。任何帮助将不胜感激!

谢谢!

这显然是一个实施缺陷。 SDK 有一个新的 API for OData BATCH in the OData v4 client,应该不会有这个问题。提到的服务仅公开 OData v2,并且 OData v2 BATCH 实现在历史上有所不同。出于兼容性原因,它必须保持这样。我们计划提供一个并行实现以使其与 OData v4 保持一致并修复许多次要和主要的不一致。

如果这非常紧急,我们可以尝试使用 SDK 的 generic OData client otherwise create an issue in this GitHub repository 提供解决方法,SDK 团队会在发布添加 headers 的修复程序时通知您。