news 2026/6/12 17:36:46

SAP-ABAP:SAP CDS视图入门:Core Data Services核心语法与建模流程实操

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SAP-ABAP:SAP CDS视图入门:Core Data Services核心语法与建模流程实操

ABAP核心进阶篇(120篇):数据库表与视图开发(12篇)

第七篇:SAP CDS视图入门:Core Data Services核心语法与建模流程实操

博客标题:《SAP CDS视图入门:Core Data Services核心语法与建模流程实操》

博客简介:介绍CDS视图的架构优势与适用场景,从基础语法、注解配置、数据关联三个维度讲解CDS建模的核心流程,对比传统SE11视图与CDS视图的差异,给出技术选型建议。


写在前面

在传统SAP开发中,我们习惯使用SE11创建数据库视图来封装多表关联逻辑。但随着SAP S/4HANA的推出,**CDS视图(Core Data Services)**已经成为数据建模的新标准。相比SE11视图,CDS视图功能更强大、语法更灵活、性能更优秀,是SAP新一代数据模型的核心组件。

本文将从零基础入手,带你掌握CDS视图的核心语法、注解配置和建模流程,并对比传统视图的差异,帮助你做出正确的技术选型。


一、CDS视图概述:什么是CDS,为什么要用它?

1.1 CDS视图的定义

CDS(Core Data Services)是SAP推出的一种声明式数据建模语言,它允许开发者使用类似SQL的语法定义数据模型,同时支持丰富的注解来定义元数据、权限控制、UI展示等属性。

1.2 CDS视图的核心优势

特性SE11数据库视图CDS视图
外连接支持不支持支持LEFT/RIGHT/FULL OUTER JOIN
聚合函数不支持支持SUM/COUNT/AVG等
参数化查询不支持支持带参数的视图
注解扩展有限丰富的注解体系
权限控制有限支持DCL(Data Control Language)
性能优化基础自动优化,支持索引注解
复用性有限支持视图组合、继承

1.3 CDS视图的适用场景

  • 需要外连接的多表关联查询
  • 需要聚合计算的报表场景
  • 需要参数化的动态查询
  • 需要精细权限控制的数据访问
  • 需要与Fiori UI集成的数据源

二、CDS视图基础语法

2.1 最简单的CDS视图结构

@AbapCatalog.sqlViewName:'ZCDS_MATERIAL'@AbapCatalog.compiler.compareFilter:true@AccessControl.authorizationCheck:#CHECKdefineviewZCDS_MATERIALasselectfrommara {keymara.matnrasMaterialNumber,mara.mtartasMaterialType,mara.mbrshasIndustrySector,mara.matklasMaterialGroup }

语法解析

  • @AbapCatalog.sqlViewName: 指定生成的数据库视图名称
  • define view <视图名> as select from <表名>: 定义视图的基本结构
  • { ... }: 视图字段列表,支持别名

2.2 多表关联(外连接示例)

@AbapCatalog.sqlViewName:'ZCDS_EKKO_EKPO'defineviewZCDS_EKKO_EKPOasselectfromekkoleftouterjoinekpoonekko.ebeln=ekpo.ebeln {keyekko.ebelnasPurchaseOrder,ekko.lifnrasVendor,ekpo.ebelpasItemNumber,ekpo.matnrasMaterial,ekpo.mengeasQuantity }

2.3 聚合函数与分组

@AbapCatalog.sqlViewName:'ZCDS_MATERIAL_STOCK'defineviewZCDS_MATERIAL_STOCKasselectfrommseg {keymseg.matnrasMaterial,sum(mseg.menge)asTotalQuantity,count(distinctmseg.werks)asPlantCount }groupbymseg.matnr

三、CDS视图注解详解

3.1 常用注解分类

注解类别用途示例
AbapCatalog数据库相关配置@AbapCatalog.sqlViewName
AccessControl权限控制@AccessControl.authorizationCheck
EndUserText字段标签描述@EndUserText.label
UIFiori UI展示配置@UI.position
Search搜索相关配置@Search.defaultSearchElement

3.2 完整注解示例

@AbapCatalog.sqlViewName:'ZCDS_PURCHASE_ORDER'@AbapCatalog.compiler.compareFilter:true@AccessControl.authorizationCheck:#CHECK@EndUserText.label:'采购订单视图'defineviewZCDS_PURCHASE_ORDERasselectfromekko {@EndUserText.label:'采购订单号'@UI.position: { position:10}@Search.defaultSearchElement:truekeyekko.ebelnasPurchaseOrder,@EndUserText.label:'供应商'@UI.position: { position:20} ekko.lifnrasVendor,@EndUserText.label:'采购组织'@UI.position: { position:30} ekko.ekorgasPurchasingOrg,@EndUserText.label:'订单日期'@UI.position: { position:40} ekko.bedatasOrderDate }

四、CDS视图创建实战

4.1 环境准备

CDS视图开发需要使用ABAP Development Tools (ADT),不支持在SE11中创建。确保你的ADT已正确配置连接到SAP系统。

4.2 创建步骤

  1. 打开ADT→ 在Package Explorer中右键点击目标包 →NewOther ABAP Repository Object
  2. 选择Core Data ServicesData DefinitionNext
  3. 输入视图名称(如ZCDS_MATERIAL)和描述 →Next
  4. 选择模板(推荐"Define View") →Finish
  5. 编写CDS视图代码 →Activate

4.3 实战案例:采购订单详情视图

@AbapCatalog.sqlViewName:'ZCDS_PO_DETAIL'@AbapCatalog.compiler.compareFilter:true@AccessControl.authorizationCheck:#CHECK@EndUserText.label:'采购订单详情视图'defineviewZCDS_PO_DETAILasselectfromekkoleftouterjoinekpoonekko.ebeln=ekpo.ebelnleftouterjoinmaraonekpo.matnr=mara.matnr {keyekko.ebelnasPurchaseOrder,ekko.lifnrasVendor,ekko.ekorgasPurchasingOrg,keyekpo.ebelpasItemNumber,ekpo.matnrasMaterial,mara.maktxasMaterialDesc,ekpo.mengeasQuantity,ekpo.meinsasUnit,ekpo.netwrasNetValue,ekpo.werksasPlant }

五、CDS视图与SE11视图对比

5.1 功能对比表

功能SE11数据库视图CDS视图
外连接
聚合函数
参数化
注解系统
权限控制基础✅ 完整DCL
视图组合有限
Fiori集成

5.2 技术选型建议

场景推荐方案
简单内连接,无需扩展SE11数据库视图
需要外连接/聚合/参数CDS视图
Fiori应用数据源CDS视图
需要精细权限控制CDS视图 + DCL
新项目开发(S/4HANA)CDS视图

六、CDS视图常见问题与排查

  • Q1:CDS视图激活失败,提示"注解语法错误"?
    A:检查注解拼写是否正确,注意注解名称和参数的大小写敏感问题,参考SAP官方文档确认注解语法。

  • Q2:CDS视图中的外连接没有生效?
    A:确认使用的是正确的外连接语法(left outer join),检查连接条件字段是否正确匹配。

  • Q3:如何在ABAP程序中使用CDS视图?
    A:CDS视图激活后会生成对应的数据库视图,可以直接使用SELECT * FROM ZCDS_VIEW查询。

  • Q4:CDS视图支持哪些聚合函数?
    A:支持SUM、COUNT、COUNT(DISTINCT)、AVG、MIN、MAX等标准SQL聚合函数。


七、总结

维度内容
核心价值CDS视图提供了更强大、更灵活的数据建模能力
适用场景外连接、聚合计算、参数化查询、Fiori集成
开发工具必须使用ADT(Eclipse),不支持SE11
学习路径先掌握基础语法 → 学习注解配置 → 实践复杂场景

CDS视图是SAP S/4HANA时代的数据建模新标准,掌握它是现代ABAP开发者的必备技能。下一篇我们将深入讲解CDS视图的高级特性,包括参数化视图、权限控制和视图扩展。

下一篇预告:《SAP CDS视图高级特性实战:关联、聚合、权限控制与扩展逻辑》

作者:爱喝水的鱼丶
版本记录:2026年6月

💬 你在项目中使用CDS视图的最大感受是什么?欢迎分享你的经验。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 17:33:51

Steam游戏自动破解器:3步实现游戏完全自主运行

Steam游戏自动破解器&#xff1a;3步实现游戏完全自主运行 【免费下载链接】Steam-auto-crack Steam Game Automatic Cracker 项目地址: https://gitcode.com/gh_mirrors/st/Steam-auto-crack 你是否遇到过这样的烦恼&#xff1a;Steam游戏免Steam启动的需求总是困扰着你…

作者头像 李华
网站建设 2026/6/12 17:32:51

GPS-SDR-SIM:零成本构建专业级GPS信号测试环境的终极指南

GPS-SDR-SIM&#xff1a;零成本构建专业级GPS信号测试环境的终极指南 【免费下载链接】gps-sdr-sim Software-Defined GPS Signal Simulator 项目地址: https://gitcode.com/gh_mirrors/gp/gps-sdr-sim GPS信号模拟技术长期以来被昂贵硬件设备垄断&#xff0c;让许多开发…

作者头像 李华
网站建设 2026/6/12 17:29:58

如何用Umi-OCR实现高效离线文字识别:完整实战指南

如何用Umi-OCR实现高效离线文字识别&#xff1a;完整实战指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片&#xff0c;PDF文档识别&#xff0c;排除水印/页眉页脚&#xff0c;扫描/生成二维码。内置多国语言库。…

作者头像 李华
网站建设 2026/6/12 17:29:05

从PDF导入到RAG上线:一个中小企业知识库的完整搭建记录(含踩坑)

“我们公司有几百份规章制度文档&#xff0c;但员工遇到问题还是一天到晚在群里问HR。” 这句话是我今年听过最多的企业吐槽&#xff0c;没有之一。 上个月&#xff0c;我一个做企业服务的朋友找到我&#xff0c;说他们公司有200多份PDF和Word文档——从员工手册到报销流程、…

作者头像 李华
网站建设 2026/6/12 17:28:33

3步快速上手PPet桌面宠物:新手也能掌握的Live2D萌宠指南

3步快速上手PPet桌面宠物&#xff1a;新手也能掌握的Live2D萌宠指南 【免费下载链接】PPet &#x1f47b;在你的桌面放一个萌妹子&#xff0c;多一点乐趣&#x1f60f;~&#xff08;支持Mac、Win和Linux&#xff09; 项目地址: https://gitcode.com/gh_mirrors/pp/PPet …

作者头像 李华