oData-多个RFC输出表参数-最佳实践

2020-09-09 00:38发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的会员 这可能不是问这个问...

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

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


尊敬的会员

这可能不是问这个问题的第一个,但我没有找到关于该主题的最佳实践。 因此,让我从这个角度提出问题。

我们有一个RFC,它将提供约7个表参数作为输出。 输入将从UI提供给此oData服务,并且需要提供7个表参数作为输出。 在用户界面中,所有这7个表参数都可能不会一次显示。 UI中大约有4个选项卡将列出这些数据。 我们知道

GET_EXPANDED_ENTITYSET可以与关联和导航一起使用。 我们已经建立了这个并且能够成功获得结果。 我试图从最佳实践的角度来理解什么更有意义?

1)RFC/SOAP/REST服务中的传统处理方式-在一次调用中获取输入并提供所有相关的输出,因此不会有多个客户端到服务器的调用。 从系统和用户的角度来看更好。 我的视图-这很好,因为我们不会在网关系统中加载所有导航/多个EntitySet调用。

2)使用oData和某些标准服务-设计是为了与UI匹配,因此仅在需要时才从UI对后端进行多次调用,以从相应的实体集中检索数据(kinda微服务)。 如果用户不断在选项卡或页面之间导航,这似乎在客户端和服务器之间来回很多。 我的视图-我们可以使用$ batch将所有实体集调用包装成一个,但仍然不行。 从网关到后端,将需要使用批处理中的全部工作流程(乘以Get/Insert调用的次数)。 如果同时有100个用户使用该应用程序,则我们将消耗全部 并行的工作流程和其他工作流程将必须等待/使用顺序本质流程

我想从您的经历中听到什么更有意义。

您何时采用上述每种策略?

使用GET_EXPANDED_ENTITYSET时的性能如何?

此致

Raj

4条回答

嗨,拉吉,

仅当您使用OData查询的并行化时才使用几个工作流程,如我的同事卡洛斯·罗根。

https://blogs.sap.com/2013/02/01/speed-up-your-gateway-services-using-parallelization/

或在线文档中:

https://help.sap.com/saphelp_gateway20sp12/helpdata/en/8a/e69552634d6f54e10000000a44176d/frameset.htm

可以比按顺序执行查询更快,但是这取决于后端逻辑,在您看来,这只是一个大的RFC。

您还可以尝试使用软状态,以便您 将数据存储在内存中(如果已读取) 无论如何。

https://blogs.sap.com/2014/10/14/how-to-use-soft-state-support-for-odata-services/

但是这会占用内存,并且当多个用户访问系统时,您将不得不尝试在您的方案中是否可以扩展内存。 如果存储的数据量较小但计算成本很高(例如产品价格),则软状态通常是一件好事。

在这里我没有提供任何灵丹妙药。 您必须尝试几件事,并且可能必须优化后端实现

关于此,

Andre

一周热门 更多>