在Elements APP上增加自定义动作

在学习Developing Apps with SAP Fiori Elements开发时,我们创建了简单的主从关联的CDS,并在其中创建了BOPF.然后生成一个消费层的CDS

然后在WEB IDE中使用此消费层的CDS,参考Developing Apps with SAP Fiori Elements,我们就可以直接生成一个简单的APP,但此时的APP,主要只有查询功能,没有筛选,及自定义的动作(按钮)操作功能,以下为实现在FIORI APP中自定动作。实现在APP中,当选择一行时,可调用BOPF定义的动作类,实现对数据的修改。

在Elements APP上增加自定义动作 - 第1张  | 优通SAP

1. 修改BOPF,定义一个新的动作。

在上一步创建了简单的主从关联的CDS时,我们使用了参数transactionalProcessingEnabled: true,在激活CDS的,就会生成一个BOPF,打开此BOPF,并点击”Actions”->”New”,创建一个定义的动作类SET_TO_PAID(名字随便取)。

在Elements APP上增加自定义动作 - 第2张  | 优通SAP
在Elements APP上增加自定义动作 - 第3张  | 优通SAP

2.写入动作执行代码

打开类ZCL_USER_A_SET_TO_PAID(也可以上图中点击,可进行类编辑器),在其中写入简单执行代码。

在代码中,先读取出当前选择数据行的数据到内表中,然后LOOP数据,设置每一行的ZTEL字段的值,最后调用io_modify->update更新数据,保存修改结果

3.测试BOPF动作

使事务码BOBT测试BOPF,在其中可选择GET_TO_PAID执行动作代码。

在Elements APP上增加自定义动作 - 第4张  | 优通SAP

4.在消费层的CDS中使用此动作

创建一个CDS,使用前面带BOPF动作的CDS,在此CDS中使用

{ type: #FOR_ACTION, position: 1, dataAction: ‘BOPF:SET_TO_PAID’, label: ‘setTEL’ }

来定义在此CDS中使用前面定义的动作。并把此CDS发布为ODATA服务。

这在CDS中,使用了一些常用语的CDS 注释说明,这些注释会直接在使用WEB IDE生成FIORI APP时直接使用,

1.@Search.searchable: true //主页可以有搜索框,

2.@OData.publish: true //标记生成ODATA

3.@Search.defaultSearchElement: true //主页可搜索框可搜索字段

4.@UI.lineItem: [{ position: 30}] //在LIST中直接显示列

5.@UI.lineItem: [{ type: #FOR_ACTION, position: 1, dataAction: ‘BOPF:SET_TO_PAID’, label: ‘setTEL’ } //执行BOPF的动作SET_TO_PAID

5.在WEB IDE中生成FIORI APP

在WEB IDE中选择用模板创建 APP,并选择 SAP Fiori Elements,使用模板“List Report Application”,选择前一步创建的CDS生成的ODATA,自动生成FIORI APP

在Elements APP上增加自定义动作 - 第5张  | 优通SAP

6.运行测试

现在在web IDE中,我们一行代码都不用写,直接运行此APP,就可以测试了,其中的查询框,搜索框,运作按钮setTEL,都由CDS中定义

执行结果如图:

在Elements APP上增加自定义动作 - 第6张  | 优通SAP

7.注:

1.由于我是先做好的消费层的CDS并生成了ODATA,后来在BOPF里增加的ACTIONS,在测试时,FIORI中总是调用不到自定义的类代码,后来发现应该是在激活BOPF后,需要在次激活一下ODATA对应的CDS。

8.参考资料

1.Extending Apps with Quick Actions

2.iori Elements – A Journey of Building an Action Dialog on a List Report using Annotations

3.Developing Apps with SAP Fiori Elements

留下一个回复

你的email不会被公开。

3 × one =