点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我有两个OData服务,其中服务A包含在服务B中,这样服务A的实体集在服务B中可用。我可以使用服务B的URL对服务A的对象进行OData请求。 到目前为止很好。 现在出现问题了:
我想对服务B使用$ batch请求对服务A对象执行一些POST操作,然后对服务B对象执行GET操作。但是似乎在一个批处理请求中,它不是 可以访问多种服务。
首先,这是服务B的批处理请求正文的样子:
-批量 内容类型:多部分/混合; 边界=变更集 --changeset 内容类型:application/http
内容传输编码:二进制POST ObjectOfServiceA HTTP/1.1
内容类型:application/json
接受:application/json
{ " d":{...}}
--changeset
内容类型:application/http
内容传输编码:二进制POST ObjectOfServiceA HTTP/1.1
内容类型 :application/json
接受:application/json {" d":{...}}
--changeset
----批量
内容类型:application/http
内容传输编码:二进制
GET ObjectOfServiceBSet HTTP/1.1
Content-Transfer-Encoding:二进制
接受:application/json
-批处理-
这是响应:
-1A4D3E35A859852802C3FC28D388D15A0 内容类型:多部分/混合; 边界= 1A4D3E35A859852802C3FC28D388D15A1 内容长度:1664 --1A4D3E35A859852802C3FC28D388D15A1 内容类型:application/http 内容长度:687 内容传输编码:二进制 HTTP/1.1 201已创建 内容类型:application/json 内容长度:441 位置: ... 数据服务版本:2.0 {" d":{...}} --1A4D3E35A859852802C3FC28D388D15A1 内容类型:application/http 内容长度:680 内容传输编码:二进制 HTTP/1.1 201已创建 内容类型:application/json 内容长度:435 位置: ... 数据服务版本:2.0 {" d":{...}} --1A4D3E35A859852802C3FC28D388D15A1-- --1A4D3E35A859852802C3FC28D388D15A0 内容类型:application/http 内容长度:900 内容传输编码:二进制 HTTP/1.1 400错误请求 内容类型:application/json; charset = utf-8 内容长度:780 数据服务版本:1.0 {"错误":{"代码":"/img/IWBEP/CM_MGW_RT/101","消息":{" lang":" de","值":" Datenobjekt \" ObjectOfServiceB \" nicht gefunden。"}," innererror":{" application":{" component_id":""," service_namespace":"/img/SAP/"," service_id":" ServiceB"," service_version":" 0001"}," transactionid":" 025E6B2B00C80030E005B61A5CBF7889","时间戳":" 20180802102034.1571200"," Error_Resolution":{" SAP_Transaction":"运行 SAP Gateway Hub系统上的事务/IWFND/ERROR_LOG并搜索 带有时间戳的条目,以获取更多详细信息"," SAP_Note":"请参阅SAP 注释1797736用于错误分析 (https://service.sap.com/sap/support/notes/1797736)"},"errordetails":[{"code":"/img/IWBEP/CX_MGW_MED_EXCEPTION","message":"Datenobjekt \" ObjectOfServiceB \" nicht gefunden"," propertyref":"","严重性":"错误","目标":""}]}}}} --1A4D3E35A859852802C3FC28D388D15A0-
如您所见,在数据模型中找不到ObjectOfServiceB。 我实际上可以在代码中看到Netweaver Gateway Logik试图在服务A的模型中找到ObjectOfServiceB。
如果我颠倒了服务A上的POST请求和服务B上的GET的顺序,则错误会更改,从而找不到ObjectOfServiceA。
似乎,如果有一个包含的服务,则用于实例化包含数据模型的MGW运行时的代码只是针对批处理请求中首先出现的任何服务,而不是随后的任何服务。
有人对如何解决这个问题有想法吗?
关于丹尼尔
似乎我们需要安德烈·费舍尔在这里(-)。
一周热门 更多>