【问题标题】:Unable to set mandatory headers for ContactOriginData PATCH in batch mode无法在批处理模式下为 ContactOriginData PATCH 设置强制标头
【发布时间】:2021-03-05 21:33:27
【问题描述】:

根据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 版本。任何帮助将不胜感激!

谢谢!

【问题讨论】:

    标签: sap-cloud-sdk


    【解决方案1】:

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

    如果这非常紧急,我们可以尝试使用 SDK 的 generic OData client 提供解决方法,否则在此 GitHub repository 中创建问题,并且 SDK 团队将在发布添加标头的修复程序时更新您。

    【讨论】:

    • 好的,谢谢@ArtyomKovalyov 的回复。我认为因为我们使用的是 SAP S/4HANA Cloud,它只支持 OData v2。我将在 GH 存储库中创建一个问题。
    • 我已经记录了他们的问题:github.com/SAP/cloud-sdk/issues/156
    • 嗨@kurts,感谢您的报告。当修复准备好让社区轻松找到它时,我们也会在这里发布。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    相关资源
    最近更新 更多