如何在OData服务中返回大量消息?

2020-09-25 01:37发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们正在使用OData服务来调用...

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

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


我们正在使用OData服务来调用BAPI_SALESORDER_SIMULATE。 对于非常大的订单(超过1000行),可以在参数表MESSAGETABLE中返回许多消息。 我们想将这些消息返回给服务的使用者/调用者,但是如何处理这么多消息呢?

由于没有UPDATE_DEEP_ENTITY(PUT),我们正在使用CREATE_DEEP_ENTITY(POST)。

我们研究了以下选项:

A)我们在http-header参数sap-messages中返回消息。 这显然无效,因为此参数可以包含的内容显然有限。

B)有人建议使用复杂类型-但显然它与实体(在本例中为SalesOrder)之间存在1:1关系。 这意味着我们最多只能返回一条消息。

C)然后,我们想为消息创建一个单独的实体,并将其返回到响应正文中。 但是看来,不可能返回请求中没有的任何实体。

我对A,B和C的结论有误吗-也许我错过或误解了某些东西吗?

如果我正确地说不能同时使用A,B或C来解决问题,那么该如何解决呢?

我们目前的解决方案/解决方法是,当从BAPI返回100条以上的消息时,我们仅向请求者返回一条消息,即"消息太多。无法显示"(或类似的内容)。

谢谢。

4条回答
Nan4612
2020-09-25 02:36 .采纳回答

迈克尔,你好,

您的结论是正确的,当前唯一的解决方法是

C2)您为消息建模一个单独的实体类型,从根类型到消息类型建立一个to-n导航属性,然后使用虚拟消息进行深度插入。 这样,您可以返回消息,因为消息结构是请求的一部分,因此也是响应的一部分。

我们正在使用OData V4改进服务的消息传输机制,但请在此处应用通常的免责声明:我从未说过,建议过或暗示过SAP的任何人甚至都曾考虑过随时以任何形式发布此消息。 产品:-)

希望这会有所帮助

Ralf

一周热门 更多>