简介
这篇博文讨论了如何在S/4HANA 1909内部部署系统上将经典的GUI报表程序转换为Fiori应用程序。
是否可以使用ABAP CDS模型开发复杂的报表?
当客户想到Fiori或将系统转换为S/4HANA时,这是最常被问到的问题,其中大多数应用程序是在CDS数据模型之上开发的。对于IT分析师来说,将具有复杂业务逻辑的GUI报表转换为Fiori应用程序是一项非常具有挑战性的任务。
多年来,物联网应用技术是什么,我们一直在开发具有复杂自定义逻辑和计算的经典GUI报表,客户不希望立即废弃代码,263云通信企业版,转而使用简单的Fiori应用程序。大多数时候,我们使用复杂的自定义代码、功能模块、BAPI、方法来构建应用程序,有时我们很难选择一个标准的CD或将完整的业务逻辑转换为CD.
方法
我们可以通过在CD中使用虚拟元素(ABAP代码出口)来部分实现,但有时还不够。更多详情请点击以下链接:
https://help.sap.com/viewer/cc0c305d2fab47bd808adcad3ca7ee9d/7.51.7/en-US/a7fc007921d44263b09ccc09232b05f.html
简而言之,ABAP RESTful应用程序编程模式正在发展,是开发人员、技术顾问和,和架构,使之成为可能,并提供了重用现有业务逻辑的方法。
用例
构建一个Fiori元素列表报表应用程序,通过遵循SAP最佳实践并重用现有业务逻辑来替换自定义GUI报表。
解决方案
使用自定义CDS实体(运行时)的基于Fiori元素的列表报表应用程序是在一个类中实现的,数据部分从CDS视图接收,淘客链接,部分从FMs、BAPI、转换接收,将类实现和填充结果(响应)实体集中的数据合并。更多详情请点击以下链接:
https://help.sap.com/viewer/923180ddb98240829d93586202504d6/Cloud/en-US/6436a50d7d284f01af2ca7a76c7116a.html#8acde6ef9a8d4d5e951362279566e642.html
创建基于GUI的报表事务的步骤:
为输入数据创建选择屏幕根据选择条件从多个表中获取数据应用权限检查,使用FMs,bapi,其他操作来获取额外的数据进行转换并准备最终的内部表格为列信息填充字段目录调用ALV方法/功能模块在屏幕上显示数据
使用RAP(s4hana1909)创建Fiori应用程序的步骤:
(理想情况下,这种方法是使用cloud ABAP环境并组合来自不同来源的数据,但我在本地尝试过)
创建CDS视图以获取部分数据(尽可能应用代码下推)使用列表显示中所需的所有字段创建一个CDS自定义实体对选择屏幕、搜索帮助、列表项详细信息使用必要的UI注释为业务逻辑的查询实现类添加对象模型注释@ObjectModel.query.implementedBy实现者.在复合cd上编写select查询,并使用ABAP技巧在方法实现中组合FM/BAPI/其他源数据实现分页逻辑并准备响应数据在自定义实体和服务绑定上创建服务定义以公开数据使用WebIDE/SAP Business Application Studio创建前端应用程序,悠哉返利机器人,使用Fiori Elements list报表模板
CDS Custom entity:
从前端应用程序请求的数据的详细信息,使用以下接口方法检索。
接口名称:IF\u RAP\u QUERY\u PROVIDER
在OData中分页:
获取详细信息要检索的记录和要跳过的记录数
数据(lv\u top)=io\u请求->获取页面大小()->获取页面大小()。data(lv_skip)=io_request->get_paging()->get_offset()。
获取要插入选择查询的where子句:
data(lv_子句)=io_request->get_filter()->get_as_sql_string()。
获取请求字段:
data(lt_字段)=io_request->get_request_elements()。
获取排序字段:
data(lt_sort)=io_request->get_sort_elements()。
获取选择标准:
数据(lt\u filter\u cond)=io\u请求->获取\u filter()->获取\u as \u ranges()。
例如,在UI过滤器中输入的物料捕获如下
数据(lr_material)=值#(lt_filter#cond[name='material']-范围可选)
通过组合来自CDS select和其他数据源(BAPI/功能模块)的数据来填充最终实体集,也可以重用现有的业务逻辑。
设置记录总数和最终实体设置
io\U响应->设置\U记录的\U总数(行(lt\U响应))。io\U response->set\U data(lt\U response).
结论
我们不需要在Fiori Launchpad中为GUI经典报表创建一个tile,我们可以通过重用大部分现有的业务逻辑轻松转换为实际的Fiori应用程序,然后使用CDS和AMDPs等代码下推技术转换代码以提高性能。
注意:
我是拥有此博文中使用的所有内容和代码。
希望您喜欢此博文并对此发表意见。
,物联网公司排名