首页 > SAP > HANA > 创建一个带导航功能的CDS,实现数据的关联显示。
2019
12-04

创建一个带导航功能的CDS,实现数据的关联显示。

我想创建一个CDS,实现主从表显示的功能,并且在ODATA中能关联显示,比如,创建一个CDS,生成ODATA后,其中包含采购订单头(EKKO) 的显示,同时当选择一个订单时面能显示采购订单明细(EKPO),再选择一行明细后,能显示其中的价格条件,以此类推,

此种功能当然在SEGW里,要一个个 Entity 的处理,然后,一个个的,创建 Association也是可以实现的,也就是给主Entity创建 Navgitaion 属性也是可以实现,只是想试试,

下面以CDS的方法来实现方法,

1.一、网络上的标准例子

此例子来源于 https://blogs.sap.com/2019/02/08/myinbox-ui-generation-using-cds-views-and-ui.facet-annotation/

经测试是正常可以使用的,涉及到两个CDS分别如下,

两个CDS激活后,然后使用事务码,激活ODATA服务ZC_Carrier_CDS后,可以进行ODATA测试,显示如图,但由于我的scarr,spfli表没有数据,所以看不了数据结果,所以后面以采购订单的例子来学习CDS的主从关系。

2.二、创建采购订单的主从关系CDS

1.分别创建两个CDS: ZVEKKO,ZVEKPO,主CDS为ZVEKKO,在其中使用

@OData:{
publish: true
}

来自动生成ODATA服务,

2.在主CDS中使用@ObjectModel.association.type: [#TO_COMPOSITION_CHILD]来说明。

3.在子CDS,也就是ITEMS项目的CDS中使用@ObjectModel.association:{ type: [ #TO_COMPOSITION_PARENT, #TO_COMPOSITION_ROOT ] }

来说明使之关系到主CDS中,

3.三、直接测试有主从关系的CDS

1.在HANA STUDIO 中,选择CDS:ZVEKKO,右键,Open with ->Data Preview,显示EKKO,

2.选择一行EKKO的数据,右键,Follow Association ,选择ekko – z_sql_ekpo,

创建一个带导航功能的CDS,实现数据的关联显示。 - 第1张  | 优通SAP

就能显示EKKO单对应的EKPO数据了,同时再选择EKPO,也能再次显示相关的EKKO数据,

4.四、使用CDS创建ODATA并测试

1.创建成功上面两个CDS后,选择两个CDS,同时激活,

2.此时ODATA服务显示未生成,这时使用事务码 /IWFND/MAINT_SERVICE 激活并创建ODATA服务:Z_SQL_EKKO_CDS,具体操作方法,可参看:把ODATA工作生成ODATA服务

创建一个带导航功能的CDS,实现数据的关联显示。 - 第2张  | 优通SAP

3.ODATA生成后,可打开ODATA测试,此时显示一个EKKO中的订单号,

/sap/opu/odata/sap/Z_SQL_EKKO_CDS/z_sql_ekko(‘4500000123’)

创建一个带导航功能的CDS,实现数据的关联显示。 - 第3张  | 优通SAP

4.这其中多出一个“to_ekpo”的连接,此在我们再用新的连接

/sap/opu/odata/sap/Z_SQL_EKKO_CDS/z_sql_ekko(‘4500000123’) /to_ekpo

进行测试,结果如图

创建一个带导航功能的CDS,实现数据的关联显示。 - 第4张  | 优通SAP

5.此时除了多了一个到明细的项目外,每天一个项目都还多了一个连接到EKKO的to_ekko的连接

z_sql_ekpo(ebeln=’4500000123′,ebelp=’00004′)/to_ekko

此时,把开此连接测试会发现,就显示了此行项目的EKKO中的内容了,从而实现了主从表的完全关联。

创建一个带导航功能的CDS,实现数据的关联显示。 - 第5张  | 优通SAP

5.五、在SEGW的项目中使用此CDS

在前面的CDS中使用了参数 @OData:publish: true 。这样会自动创建ODATA服务,但此ODATA服务也是可以导入到SEGW项目中的。

1.在SEGW项目下,Data Model 上右键,选择Reference -》 Data Source,

创建一个带导航功能的CDS,实现数据的关联显示。 - 第6张  | 优通SAP

2.输入EKKO的视图名:z_sql_ekko,选择下一步行街

创建一个带导航功能的CDS,实现数据的关联显示。 - 第7张  | 优通SAP

3.可以看到数据源结构如图

创建一个带导航功能的CDS,实现数据的关联显示。 - 第8张  | 优通SAP
创建一个带导航功能的CDS,实现数据的关联显示。 - 第9张  | 优通SAP

最后生成ODATA服务好也同样能得到第四步中生成的ODATA服务的效果,这一步的操作主要是查看CDS 中ASSOCIATION ,在SEGW中的效果,以便于对比度操作。

总结,

后面会把价格条件,采购订单历史等也加到这个CDS中,做成一个完成的采购订单,实现业务中多表导航ABAP CDS功能

最后编辑:
作者:yangsen
本站为个人博客网站,全由我个人维护,我从事SAP开发13年,其它ERP开发7年,基本都是零售行业。本站记录工作学习的过程, 有SAP相关询问专、兼职工作可随时联系我。 有网站相关的问题可直接在文章下方留言,或者联系我。 邮件:yan252@163.com给我。 QQ:415402519

留下一个回复

你的email不会被公开。