ABAP 简单CDS创建和使用

1.安装并且添加ABAP的插件
安装eclipse链接:https://blog.youkuaiyun.com/qq_45344586/article/details/123942685
安装ABAP插件:https://jingyan.baidu.com/article/67508eb471dd5c9ccb1ce458.html
注意点:eclipse添加ABAP插件时候,去这里https://tools.hana.ondemand.com/ 查看对应eclipse的对应版本插件链接(什么版本的eclipse就选什么版本的链接),如图
在这里插入图片描述
2.创建数据定义
我是做在本地,做演示。如果不是本地包就需要创建个请求挂进去
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.写好代码
在这里插入图片描述

检查语法,然后激活就可以了。
代码:

@AbapCatalog.sqlViewName: 'ZV_TEST1'   /*DDL SQL视图名称*/
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: '做CDS的简单示例1'
define view ZCDS_DEMO1   /*CDS 名称*/
with parameters  /*cds view 的参数*/
    p_ernam :ernam  /*销售订单创建人*/
    
/*开始写SQL语句*/    
 as select from vbak
 inner join vbap on vbak.vbeln = vbap.vbeln /*小波浪要用点替代*/ 
 {  /*定义了CDS view中包含哪些字段*/
    key vbak.vbeln,  /*指定CDS View中哪些字段是Key字段*/
    key vbap.posnr,  /*把销售订单与行项目作为主键*/
        vbak.ernam,
        vbap.matnr
}
where vbak.ernam = $parameters.p_ernam

4.查看结果
ZV_TEST1 是视图名称,如果有写参数,查询执行前就会要填写参数。ABAP SELECT使用就是使用这个了
在这里插入图片描述
ZCDS_DEMO1 是数据定义,在gui里面就是只能看看咯。
在这里插入图片描述
加深下理解
在这里插入图片描述

5.在ABAP程序的调用

SELECT *
  FROM zv_test1( p_ernam = 'LIMF' )
  INTO TABLE @DATA(LT_ALV).
cl_demo_output=>display( LT_ALV )."快速窗口显示

结果:
在这里插入图片描述

可以把CDS理解为sql储存过程,调用视图就是调用存储过程(不知道这样讲对不对哦,反正能这样用就是了,小声BB)。

好啦,分享使我快乐,我是寒武青锋。
请添加图片描述

### ABAP CDS 使用指南 ABAP Core Data Services (CDS) 是 SAP 提供的一种用于建模数据结构的技术。通过 CDS,开发者可以在数据库层面上定义实体及其关系,并利用注解来增强其功能用途。 #### 定义 ABAP CDS 实体 ABAP CDS 的核心概念之一是 **CDS 实体**,它可以表示视图(View)、表函数(Table Function),或者作为持久化存储的数据模型。下面是一个简单的例子展示如何定义一个 CDS 视图: ```abap @AbapCatalog.sqlViewName: 'Z_C_SPFLI' define view Z_C_SPFLI as select from spfli { carrid, connid, cityfrom, cityto } where mandt = @session.system->client; ``` 此代码片段展示了如何基于标准表 `SPFLI` 创建一个新的 CDS 视图 `Z_C_SPFLI`[^1]。其中的关键部分包括: - 注解 `@AbapCatalog.sqlViewName` 用来指定 SQL 视图名称; - 数据选择字段列表 `{carrid, connid, ...}` 表明哪些列会被包含在最终的结果集中; - 过滤条件 `mandt = @session.system->client` 确保只返回当前客户端的数据。 #### 权限控制 为了保护敏感数据不被未经授权访问,在开发过程中还需要考虑安全性设置。可以通过定义角色并授予特定权限实现这一点。例如: ```abap define role ZAC_SPFLI_AUTH { grant select on Z_C_SPFLI where (carrid) = aspect pfcg_auth(zspfli_aut, zspfli_ctr, actvt = '03'); } ``` 这里我们创建了一个名为 `ZAC_SPFLI_AUTH` 的角色,并赋予该角色对 `Z_C_SPFLI` 只读的选择权,同时附加了一条动态过滤规则——仅允许查看与其授权相符的航空公司记录[^2]。 #### 利用注解扩展功能性 除了基本的数据定义外,CDS 支持多种类型的元数据标注(即所谓的“注解”)。这些注解能够帮助描述业务逻辑、优化性能以及集成外部系统等功能。比如要暴露某个 CDS 视图为 OData 服务,则需添加相应标签: ```abap @ObjectModel.publish: true @EndUserText.label: 'Flight Connections' @VDM.viewEntity: true define view Z_C_FLIGHT_CONN as select from sflight { key carrid, connid, fldate, price_sum } group by carrid, connid, fldate having sum(price) > 1000; ``` 上述示例中的几个常见注解解释如下: - `@ObjectModel.publish`: 设置为 TRUE 后会自动发布成 RESTful Web Service。 - `@EndUserText.label`: 给前端用户提供更友好的显示文字说明。 - `@VDM.viewEntity`: 声明这是一个虚拟数据模型的一部分[^3]。 --- ###
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值