我们正在使用SAP Cloud SDK 3.32.0,并且正在使用批处理请求。发送更改(现有实体的更新)可以正常工作。但是,删除实体(集)失败。我们从SAP网关收到一条消息,说OData批处理请求格式不正确。即使更改集中只有一个删除,也是如此。
经过一些调试和挖掘(在SAP网关上进行跟踪),我们发现网关显然在变更集中的每次更改后都希望有2个空行(根据https://blogs.sap.com/2018/05/06/batch-树液网关请求/)。但是,当我们检查对SAP网关的呼叫时,我们看到只有1个空行。
--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请求。
这对我们来说是一个重要问题,我们需要尽快解决。为此有任何修复程序吗?
谢谢,
丹尼
该问题已在最近发布的SAP Cloud SDK版本中修复3.34.1
。
请更新你项目中的依赖项,并让我们知道它是否适合你。
是的,它解决了我们的问题