我们使用SAP Cloud SDK 3.32.0并使用批处理请求。发送更改(现有实体的更新)工作正常。但是,删除实体(集合)失败。我们从SAP Gateway收到一条消息,指出OData批处理请求的格式不正确。即使变更集中只有一次删除,情况也是如此。
经过一些调试和挖掘(在SAP网关上跟踪),我们发现网关显然在变更集中的每个更改后都期望2个空行(根据https://blogs.sap.com/2018/05/06/batch-request-in-sap-gateway/)。但是,当我们检查对SAP网关的调用时,我们看到只有一个空行。
--batch_8f792254-f381-4d9f-9667-850cd1d33548
content-type: multipart/mixed;boundary=changeset_38bd1293-04f2-497e-af7e-4bacb0787023
--changeset_38bd1293-04f2-497e-af7e-4bacb0787023
content-type: application/http
content-transfer-encoding: binary
content-id: 1
DELETE DienstSet(IndelingsNummer='1',RegelNummer='0000000010',Operatie='0390',OrderID='4108563') HTTP/1.1
Accept: application/json
--changeset_38bd1293-04f2-497e-af7e-4bacb0787023--
--batch_8f792254-f381-4d9f-9667-850cd1d33548--当我们在请求中添加额外的空行时,就在最后一个--changset...--行之前,并在SAP网关客户端中使用它,调用就可以正常执行。
因此,这似乎是SAP Cloud SDK中的一个错误。它不会以某种方式生成“批处理”兼容的HTTP请求。
这对我们来说是一个主要问题,我们需要尽快解决这个问题。有没有什么热修复程序?
谢谢,
丹尼
发布于 2020-12-10 00:51:58
该问题已在最近发布的SAP Cloud SDK版本3.34.1中修复。
请更新您项目中的依赖项,并让我们知道它是否适用于您。
https://stackoverflow.com/questions/65112061
复制相似问题