点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好, 后端速度很慢,我需要在...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好, 后端速度很慢,我需要在...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好,
后端速度很慢,我需要在其上使用sapui5智能表。
我每次只获取20条记录的块("智能增长"),但是客户仍然需要在第一个查询中查看符合过滤条件的行总数。
我使用showRowCount属性获取总行数(这意味着它将触发一个单独的oData请求$ count)。
所以总结一下:
-oData请求$ count非常慢(胖后端是原因)
-而前20条记录可以快速获取(不到几秒钟)
我的问题是,在收到2个请求之前,智能表将保持"繁忙"状态(=不显示任何内容)。 其中一个请求速度很快,但另一个请求($ count)则降低了性能……
有没有一种方法可以在收到智能表中的前20行后立即显示它们,然后等到最终可用时才更新行数??
非常感谢任何想法
克里斯托夫
(13.9 kB)
Hello Makesh,
感谢您的答复,对不起您的答复。
这就是我发现的东西:
-$ inlinecount = allpages无济于事,因为它减慢了答案的速度(count(*)慢于计算非常复杂的后端数据库模型的20个首次出现的次数)
-实际上,智能表控件将发出两个并行请求:一个并行请求,例如odata_srv/Products?$ top = 20,另一个并行请求,例如odata_srv/Products/$ count。 只要这两个请求都没有完成,Smart Table控件就不会显示任何内容(保持繁忙状态)
因此,我设法解决了问题,但是在清单中将countMode设置为" none"。 这样,当收到第一个请求时(例如/Products?$ top = 20),将立即显示20条第一条记录。
然后在onBeforeRebindTable()中,
在onDataReceivedOnce()中,我手动执行如下oData请求:odata_srv/Products/$ count。
收到后,我更新了智能表格内部工具栏的标题,就是这样...
如果您设置oData服务的软状态模式,可能会出现另一个问题:由于在软状态模式处于活动状态时,SAP GW无法处理并行oData请求,因此您可能需要在SEGW中创建«镜像»oData服务。 (=对其他服务的引用),处于无状态模式。 那是,如果您真的希望能够执行并行请求,那么。
克里斯托夫
一周热门 更多>