点击此处---> 群内免费提供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条以上的消息时,我们仅向请求者返回一条消息,即"消息太多。无法显示"(或类似的内容)。
谢谢。
迈克尔,你好,
您的结论是正确的,当前唯一的解决方法是
C2)您为消息建模一个单独的实体类型,从根类型到消息类型建立一个to-n导航属性,然后使用虚拟消息进行深度插入。 这样,您可以返回消息,因为消息结构是请求的一部分,因此也是响应的一部分。
我们正在使用OData V4改进服务的消息传输机制,但请在此处应用通常的免责声明:我从未说过,建议过或暗示过SAP的任何人甚至都曾考虑过随时以任何形式发布此消息。 产品:-)
希望这会有所帮助
Ralf
嗨Ralph,
感谢您的回答和帮助。 我很高兴得到确认,我并没有错。 我将与同事讨论您对解决方法的建议。
关于OData V4,我什么也没听到,也不知道;)
谢谢
Michael
方法C应该作如下修改。
1。 型号如下。 这里有一个三级导航。 虚拟实体到销售订单到消息表。 带下划线的属性表示下面的JSON模型中的关键字段。
嗨,Ankit,
谢谢您的详细示例。 现在我应该不可能做错什么:)
谢谢
Michael
一周热门 更多>