在我的博客Paging Implementation in S/4HANA for Customer Management 我介绍了S/4HANA for Customer Management里采用WebClient UI技术实现的UI上的搜索分页实现。
那么S/4HANA和CRM里原生的Fiori应用,其搜索分页又是如何实现的?
这篇博客分别选取S/4HANA里的Product Master,以及CRM里的My Opportunities这两个应用为例来介绍。
S/4HANA Fiori应用的搜索分页实现
点击搜索按钮之后,默认返回前25个命中的product,同时显示总共命中的product数目:140。
这个分页效果通过OData请求的参数$skip=0&top=25实现的。而总共命中条数140的显示通过另一个参数$inlinecount来实现,该参数的后台实现原理类似ABAP Open SQL里的SELECT COUNT(*)。
从Chrome开发者工具里观察该请求的回应,确实只有25条记录返回。
将该搜索结果列表scroll至底部,发现有另一个OData request自动发出:
该请求的头部参数为$skip=25&top=25,因此能够从后台只取从第26到50个product:
在我博客SAP Fiori里的List是如何做到懒加载Lazy load的 我解释了$skip递增的序列值0,25,50,75...是如何在前台生成的。
而在这篇博客里,我会着重介绍分页搜索的后台实现。
假设我重复将搜索结果scroll至底部的动作重复三次,那么能够通过ST05观察到有三个数据库的读请求,每个请求返回25条记录。
点击该按钮,可以查看到具体是哪一行ABAP代码发起的数据库读请求:
$skip和$top这两个参数的值从前台传入后台,在后台的方法CL_SADL_GW_GENERIC_DPC~_GET_ENTITYSET的输入参数io_query_option能观察到:
开始行的索引值等于$skip参数值加1。
实际的读取分页在后台的实现:通过ABAP关键字OFFSET实现。
该OFFSET的值通过方法CL_SADL_SQL_STATEMENT~GET_SECTIONS_FOR_SELECT内一个较复杂的table表达式来决定出来:
首先得出表达式lt_sections[ type = cl_sadl_sql_statement=>co_type-page ]-from的值:99.
再从内表mt_parts取出第99条记录,从其字段value2得出最终offset值75。
CRM Fiori应用的搜索分页实现
前台的逻辑和S/4HANA的Fiori应用完全一致。
该参数传至后台,存储在参数is_paging里:
至于后台的分页搜索,My opportunities应用并未使用ABAP OPEN SQL里的关键字OFFSET。相反地,所有匹配记录的GUID都通过One Order的搜索API返回:
多余的记录,即那些不在$skip和$top定义的参数之内的都被DELETE丢弃:
该实现或许不如S/4HANA采用OFFSET方式实现得直接,但是因为从数据库返回的仅仅是命中opportunity的GUID,因此也不会有太多额外的开销。
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
相关推荐
4. **角色分配**:创建或修改SAP S/4HANA中的角色,将Fiori应用关联到相应角色,确保用户只能访问其职责范围内的应用。 5. **用户分配**:将Fiori角色分配给特定用户,完成用户的权限设定。 6. **前端服务器设置**:...
SAP S/4 HANA Migration
1单元1:SAP S/4HANA概览2课程:介绍SAP HANA和SAP S/4HANA9课程:介绍SAP Fiori14单元2:S/4HANA中的财务会计(FI)概览15课程:概述SAP S/4HANA中的财务会计(FI)组件23单元3:总账(G/L)会计24课程:概述会计核算中的组织...
它包含一系列以角色为基础的Fiori应用,这些应用与SAP S/4HANA紧密集成,提供实时数据和业务处理。 - 应用类型:Fiori应用分为三种主要类型:事务型、分析型和展示型。事务型应用主要用于执行日常业务操作;分析型...
SAP S/4 HANA SD模块官方教材 S4600_EN_Col08, 包括Sales Order, Delivery, Billing , Pricing
1Unit1:SAP S/4HANA Finance-Introduction and Overview 2Lesson:Positioning SAP S/4HANA Finance 10Lesson:SAP Fiori 16Unit 2:Business Processes in the SAP S/4HANA Finance Solution 17Lesson:Managing ...
introduce the Starter, Quality, and Production Systems of the SAP S/4 HANA Cloud solution
SAP S/4HANA On-Premise和S4 HANA Cloud是SAP提供的两种不同...同时,随着SAP持续对S/4HANA进行迭代更新和创新,无论是On-Premise还是Cloud版本,都能为企业提供强大的智能ERP支持,助力企业实现业务优化和数字化转型。
4. MRP在SAP S/4HANA中也与需求预测、库存优化和生产调度紧密集成,能够实现全面的资源规划。 5. 高级MRP功能,如实时需求规划和供应网络协同,使企业在动态市场环境中能够快速响应市场变化。 6. SAP S/4HANA支持...
1单元1:SAP S/4HANA的财务概览2课程:介绍SAP HANA与SAP S/4HANA的用途和功能11课程:说明会计的新体系结构16课程:介绍SAP Fiori的用途和功能21课程:概述财务向SAP S/4HANA Finance的迁移29单元2:总账会计30课程:管理...
SAP S/4HANA and SAP S/4HANA Cloud Extensibility for Customers and Partners September 2018 The experience gained from various customer and partner projects has made one thing very clear: Most SAP S/4...
在SAP S/4HANA系统中,仓库管理是一个关键组成部分,它帮助企业高效地管理和优化其内部物流流程。本文将详细探讨SAP S/4HANA的仓库管理功能,包括出库过程、库存移除、拣选、暂存区管理以及装载等环节。 1. 出库...
1单元1:使用Activate方法学习SAP S/4HANA2课程:介绍SAP S/4HANA7课程:概述转换流程14单元2:转换到SAP S/4HANA的准备15课程:解释转换流程23课程:分析每个系统的转换流程入手点34课程:准备转换成SAP S/4HANA43课程:...
BW/4HANA 2.0官方指南,讲解非常详细SAP BW∕4HANA is a data warehouse solution with agile and flexible data modeling, SAP HANA-optimized processes and state of the art user interfaces and which is ...
SAP S/4HANA 项目控制中的业务流程是指项目的生命周期中的一系列活动和任务,通过项目系统来实现。业务流程可以帮助项目经理和项目团队成员更好地管理和控制项目,确保项目的目标和范围得到实现。 在 SAP S/4HANA ...
SAP BW/4HANA是SAP推出的新一代数据仓库应用,旨在帮助企业实现即时数字化运营。它不仅支持传统的本地部署方式,还通过Amazon Web Services(AWS)和SAP HANA Enterprise Cloud(SAP HANA企业云)提供了云端部署选项...
S/4HANA 1511 installation 具体实现步骤和截图展示。
SAP 将在 2027 年截止日期前逐步淘汰对 SAP ECC 的支持,迫使客户采用 SAP S/4HANA,从而进一步加快了实现改进用户体验、在 HANA 数据库的内存功能、灵活的 API 和实时分析方面获得竞争优势的旅程。 SAP 安装基础...