大数跨境
0
0

【学习系列】SAP RAP 21:创建基于Fiori的表格维护应用 (SM30)

【学习系列】SAP RAP 21:创建基于Fiori的表格维护应用 (SM30) DeveloperMrMeng
2025-11-18
0

 

前言

随着SAP推动Clean Core并引入多种关键用户扩展工具,客户项目中仍然有很大一部分需求需要使用自定义表来进行维护,本篇进行介绍如何使用基于RAPBusiness Configurations来代替之前使用的SM30/SM54维护的自定义业务配置对象,这也是在ABAP Cloud云开发模型下的最佳实践建议。


正文

借助ADT向导工具可以快速的创建出一个Business Configuration Maintenance Object,创建完成后即可自动集成到Custom Business Configurations app中,也就是所有的表格维护都将有一个统一的入口,但私有云和op环境中目前我所使用的版本仅能够自动生成维护对象,并不能使用Custom Business Configurations app,所以出于这个原因,本文的示例内容将在公有云环境中进行。

以下是截至S4HANA 2023 FPS01为止可用的功能列表:


开发步骤

1. 创建开发包

为了和之前的开发示例进行区分,新创建一个开发包:



2. 创建自定义表

注意点:

  • • @AbapCatalog.deliveryClass必须是 #C
  • • @AbapCatalog.dataMaintenance必须是 #ALLOWED
  • • 必须至少包含以下两个字段用于草稿处理和并发控制

    1. last_changed_at       : abp_lastchange_tstmpl;
    2. local_last_changed_at : abp_locinst_lastchange_tstmpl;

这里主键使用了自定义数据元素,因为后续文本表的外键必须要求关联字段有对应的数据元素,而不是预定义的abap类型,同时UI上的字段描述也来自于数据元素的标签描述:


configdeprecationcode : config_deprecation_code;

此字段是一个可选项,添加了此字段后续生成的界面中会多出一个反对的功能,处于演示,这里也添加了此字段。

zsrap_demo_manage结构是在之前章节中创建的通用结构,在此处进行了复用。

1. @EndUserText.label : 'Status Code'
2. @AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
3. @AbapCatalog.tableCategory : #TRANSPARENT
4. @AbapCatalog.deliveryClass : #C
5. @AbapCatalog.dataMaintenance : #ALLOWED
6. define table ztstatus {
7. 
8. key client            : abap.clnt not null;
9. key status_code       : ze_status_code not null;
10. configdeprecationcode : config_deprecation_code;
11. "%manage"             : include zsrap_demo_manage;
12. 
13. }

3. 创建文本描述表

基本要求还是和ztstatus表一样,必须是 #C 和 #ALLOWED,其次定义好外键关联,用于ADT工具自动生成维护对象时确定绑定关系:


1. @EndUserText.label : 'Status Code Description'
2. @AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
3. @AbapCatalog.tableCategory : #TRANSPARENT
4. @AbapCatalog.deliveryClass : #C
5. @AbapCatalog.dataMaintenance : #ALLOWED
6. define table ztstatust {
7. 
8. key client      : abap.clnt not null;
9. @AbapCatalog.textLanguage
10. key langu       : abap.lang not null;
11. @AbapCatalog.foreignKey.keyType : #TEXT_KEY
12. @AbapCatalog.foreignKey.screenCheck : false
13. key status_code : ze_status_code not null
14. with foreign key [0..*,1] ztstatus
15. where client = ztstatust.client
16. and status_code = ztstatust.status_code;
17. description     : ze_description;
18. "%manage"       : include zsrap_demo_manage;
19. 
20. }

数据元素和域如下,为了区分大小写:




4. 创建业务配置维护对象

右键配置表,点击Generate ABAP Repository Objects


选择Business Configuration Maintenance Object然后点击下一步:


选择之前创建的包并继续下一步:


这里可以根据需求进行勾选,包括是否需要拷贝功能,是否需要请求传输等等,这里处于演示全部选中:


查看将会自动创建的对象内容:






确认无误后点击下一步,接下面就是等待自动创建所有对象,最终你将看到左侧这些对象内容。


最后你需要手动Publish Service Binding来激活一些后台作业,来使得此app可用:


如果打开的预览界面如下所示,不要着急,有些后台作业仍在进行,等一会就好了:


即使可以正常显示,也是无法编辑的,因为仍需要下一步操作,进行权限分配,所以在等待的过程中可以先进行后续的步骤。



5. 为业务配置维护对象提供授权控制

【声明】内容源于网络
0
0
DeveloperMrMeng
从事SAP开发相关工作多年,不定时更新一些技术总结,佛系更文,如果觉得有用不妨一键三连😁
内容 67
粉丝 0
DeveloperMrMeng 从事SAP开发相关工作多年,不定时更新一些技术总结,佛系更文,如果觉得有用不妨一键三连😁
总阅读14
粉丝0
内容67