在PUT之后可以从网关获得HTTP OK(200),而不是HTTP No Content(204)吗?

2020-08-25 15:44发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好!

我们在SAP Transportation Management系统中创建了一个后端服务,该服务由SAP NetWeaver Gateway通过OData通道公开,并由自定义移动应用程序(Android和iOS)使用。 我们几乎已经解决了所有问题,但是缺少最后一部分以使其成为一个非常好的解决方案。

当我们发送PUT请求以触发对实体的更新时,我们会收到" 204 No Content" http响应,以表示操作成功。 浏览有关SAP NW Gateway的各种SAP文档时,我发现这似乎是标准的响应。 但是,HTTP 1.1标准还允许在成功的PUT请求之后包含消息正文的" 200 OK"响应( http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html )。 这将使我们能够在响应中发送回修改后的实体,但是我们无法弄清楚在后端服务中该如何触发这种响应。

所以,我的问题确实是,是否有人知道这在SAP NW Gateway中甚至是可能的,或者甚至是知道如何做到的。

作为一种选择,我想找出是否有一种方法可以从后端服务中触发其他响应,例如" 409冲突",以表明操作未成功。 该查询的最终目标是找到一种处理比赛条件的方法。 当两个移动设备上的两个用户尝试同时更新同一实体(只能执行一次)时,"失败者"需要了解它并接收更新的数据。

对此表示感谢!

谢谢

塞巴斯蒂安

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好!

我们在SAP Transportation Management系统中创建了一个后端服务,该服务由SAP NetWeaver Gateway通过OData通道公开,并由自定义移动应用程序(Android和iOS)使用。 我们几乎已经解决了所有问题,但是缺少最后一部分以使其成为一个非常好的解决方案。

当我们发送PUT请求以触发对实体的更新时,我们会收到" 204 No Content" http响应,以表示操作成功。 浏览有关SAP NW Gateway的各种SAP文档时,我发现这似乎是标准的响应。 但是,HTTP 1.1标准还允许在成功的PUT请求之后包含消息正文的" 200 OK"响应( http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html )。 这将使我们能够在响应中发送回修改后的实体,但是我们无法弄清楚在后端服务中该如何触发这种响应。

所以,我的问题确实是,是否有人知道这在SAP NW Gateway中甚至是可能的,或者甚至是知道如何做到的。

作为一种选择,我想找出是否有一种方法可以从后端服务中触发其他响应,例如" 409冲突",以表明操作未成功。 该查询的最终目标是找到一种处理比赛条件的方法。 当两个移动设备上的两个用户尝试同时更新同一实体(只能执行一次)时,"失败者"需要了解它并接收更新的数据。

对此表示感谢!

谢谢

塞巴斯蒂安

付费偷看设置
发送
2条回答
Haoba3210
1楼-- · 2020-08-25 16:09

塞巴斯蒂安,你好

您是否找到了针对PUT请求发送成功消息的解决方案?

感谢与问候

Neha

暮风yp
2楼-- · 2020-08-25 16:04

这发生在我身上,但使用update方法,我的解决方案是在标头中发送响应,如下所示:

我的服务:
 数据:lo_clase_retun类型参考/iwbep/if_message_container。
    lo_clase_retun = mo_context-> get_message_container()。
    lo_clase_retun-> add_messages_from_bapi(it_bapi_messages = lt_return(我的响应是否正确)
                                 iv_add_to_response_header = abap_true)。

 在sapui5应用上:(在发送我的请求并阅读响应之后)
 var respuesta = JSON.parse(event.mParameters.response.headers ['sap-message']);
 

因此在我的应用中,我读取了我的响应是否为204(确定)

一周热门 更多>