ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SAP CDS View 从安装到创建:Eclipse 环境配置与 DDL 实战避坑指南

SAP CDS View 从安装到创建:Eclipse 环境配置与 DDL 实战避坑指南 简介这份资源是面向SAP开发人员与ABAP学习者的CDS视图入门实操文档聚焦在Eclipse环境中安装SAP插件并创建CDS视图这一常见痛点。CDS视图作为SAP HANA上的高级数据建模工具能显著提升多表关联查询性能而本资料正是围绕其环境搭建与视图创建展开。资源包共1个doc文件大小约1.21MB内容涵盖版本查看、Eclipse与SAP插件下载安装、常见报错处理如缺少Visual C 2013库、sapjco3.dll版本过低、SAP项目关联配置以及通过界面配置和编辑SQL两种方式创建CDS视图的具体操作。已有329人学习下载适合刚接触SAP CDS建模、需要一份可对照操作的步骤指南的开发者参考帮助快速完成环境准备并理解CDS视图的基本创建流程。1. 从一次 CDS View 建不出来说起这套文档到底解决什么问题如果你在 SAP 项目里做过报表或者接口取数大概率听过 CDS View 这个词。它的全称是 Core Data Services View本质是把多表关联、聚合、计算逻辑下沉到 HANA 数据库层去执行而不是像传统 ABAP 那样把数据拉到应用服务器再拼。结果就是同样一张多表关联的报表用 CDS View 跑出来的响应时间可能只有 Open SQL 的几分之一。但问题来了——很多刚接触的人卡在第一步Eclipse 里根本找不到创建 CDS View 的入口或者插件装完报一堆 DLL 错误连 SAP 项目都连不上。这份《SAP-CDSView-Eclipse安装及创建步骤.doc》就是冲着这个场景来的。它记录了一套完整的落地路径从确认 SAP GUI 客户端版本文档里是 740、下载 Eclipse、安装 ABAP Development Tools 插件到关联 SAP 系统、在指定包下创建 CDS View。适合两类人一是刚拿到 SAP 开发权限、需要在 Eclipse 里建 CDS 视图的 ABAP 开发者二是已经会用 SE11 建视图、但想搞清楚 CDS 这套新工具链怎么配起来的老手。文档里踩过的坑——比如sapjco3.dll版本冲突、VC 运行库缺失——都是真实环境里会遇到的不是理论推演。2. 环境准备Eclipse 版本、SAP 客户端版本与插件源的匹配逻辑2.1 为什么版本匹配是第一个坎SAP 的 ABAP Development Tools后面简称 ADT不是随便找个 Eclipse 就能装的。它依赖 Eclipse 的特定发行版和版本号而且 SAP 官方会针对每个 Eclipse 版本发布对应的插件更新站点。文档里提到 SAP 客户端版本是 740Eclipse 版本没有明确写出来但给出了一个关键线索插件源用的是https://tools.hana.ondemand.com/2022-03。这个2022-03对应的是 Eclipse 2022-03 版本4.23也就是说文档作者实际用的 Eclipse 是 2022-03 这一版。这里有个常见误区很多人直接去 Eclipse 官网下载最新版然后拿https://tools.hana.ondemand.com/latest去装插件。latest这个源确实存在但它指向的是 SAP 当前维护的最新 ADT 版本对 Eclipse 版本有硬性要求。如果你的 Eclipse 太新或太旧装到一半就会报依赖冲突。稳妥的做法是先确定你要用哪个 Eclipse 版本然后去https://tools.hana.ondemand.com/下面找对应年份-月份的目录。比如 Eclipse 2022-03 就配2022-03这个源Eclipse 2021-09 就配2021-09。2.2 下载 Eclipse 与插件源的实操步骤Eclipse 的下载本身不复杂但国内网络环境下有时候速度感人。文档里给了一个 CSDN 的备用链接说明作者也遇到过下载慢的问题。我一般会直接去 Eclipse 官网的 downloads 页面选 “Eclipse IDE for Enterprise Java and Web Developers” 这个包因为它自带了不少企业开发常用的插件省得后面再补。下载完之后安装 ADT 插件的步骤如下# 打开 Eclipse进入 Help - Install New Software # 点击 Add 按钮在 Location 里填入插件源地址 # 如果 Eclipse 是 2022-03 版本填 https://tools.hana.ondemand.com/2022-03 # 如果不想管版本对应可以试 latest但前提是 Eclipse 版本不能太老 https://tools.hana.ondemand.com/latest填完地址后Eclipse 会去拉取该源下的可用插件列表。你需要在列表里勾选 “ABAP Development Tools” 这一项然后一路 Next。安装过程中进度条可能会卡在某个百分比很久文档里也提到了这一点。我的经验是如果卡超过五分钟没动静可以尝试断开网络再重新连接Eclipse 的下载器有时候会僵住重连之后能续上。提示安装过程中不要同时开太多其他占带宽的程序ADT 插件的依赖包不少带宽被抢容易导致下载超时。2.3 安装后报错的两个典型场景装完重启 Eclipse很多人会看到两个报错。文档里把这两个错误的解决方法写得很清楚我直接复述并补充一下背后的原因。第一个错误ABAP communication layer is not configured properly. This might be caused by missing Microsoft Visual C 2013 (x64) Runtime DLLs.这个错误的本质是 SAP 的 JCoJava Connector依赖 VC 2013 的运行库。虽然你系统里可能已经装了更新的 VC 版本但 JCo 就是认 2013 这一版。解决办法就是去微软官网下载vcredist_x64.exe2013 版装完重启 Eclipse。第二个错误Native library sapjco3 is too old. Found library C:\Windows\System32\sapjco3.dll has version 721.913, but required is at least version 753.900.这个更有意思。你的C:\Windows\System32目录下有一个旧版的sapjco3.dll版本号 721.913而 ADT 插件要求至少 753.900。这个旧文件可能是之前装其他 SAP 工具时留下的。文档里的解决方法是直接删除它。删除后 Eclipse 会使用插件自带的 JCo 库版本就对了。注意删除系统目录下的 DLL 之前最好先把它重命名备份一下比如改成sapjco3.dll.bak万一有其他程序依赖它还能改回来。3. 关联 SAP 系统与创建 CDS View从建项目到写 DDL 的完整链路3.1 在 Eclipse 里建立 SAP 连接插件装好、报错解决之后下一步是让 Eclipse 连上你的 SAP 系统。操作入口在 Eclipse 的File - New - Other - ABAP Project。如果你之前已经配过 SAP GUI 的连接这里可以直接从下拉列表里选一个已有连接Eclipse 会自动带出系统地址、客户端号、用户名这些信息。文档里说的“选择一个资源进行创建下个步骤将直接带出配置信息”就是这个意思。如果下拉列表是空的说明你的 SAP GUI 里没有配过连接或者 Eclipse 没读到。这时候需要手动填系统 ID、实例号、客户端号、语言。填完之后点 Next输入用户名和密码Eclipse 会去连 SAP 系统并拉取你的用户权限信息。连上之后左侧的项目浏览器里会出现你的 SAP 系统节点展开就能看到包、程序、类这些对象。3.2 找到目标包并创建 CDS View文档里用的包是Z001这是 SAP 里常见的自定义包命名方式。你在项目浏览器里展开系统节点找到Z001右键 - New - Other - ABAP Repository Object - Core Data Services - Data Definition。这就是创建 CDS View 的入口。创建的时候会弹出一个向导让你填几个关键字段字段说明示例值Package视图所属的包Z001NameCDS View 的名称ZTEST_CDVDescription描述文本测试 CDS 视图Referenced Object如果是基于已有对象创建填对象名可留空Transport Request请求号新建或选已有文档里提到两种创建方式方法一是通过界面配置方法二是通过编辑 SQL 进行创建。作者说自己没怎么用方法一我实际用下来也是方法二更顺手。因为 CDS View 的本质就是一段 DDLData Definition Language你直接在编辑器里写define view语句比在图形界面里拖拽字段要快得多尤其是关联表多、字段多的时候。3.3 用 DDL 语法定义 CDS View创建完 Data Definition 对象后Eclipse 会打开一个编辑器里面已经有一段模板代码。你把它替换成自己的 DDL。下面是一个典型的 CDS View 写法AbapCatalog.sqlViewName: ZTEST_V AbapCatalog.compiler.compareFilter: true AccessControl.authorizationCheck: #CHECK EndUserText.label: 测试 CDS 视图 define view ZTEST_CDV as select from vbak inner join vbap on vbak.vbeln vbap.vbeln { key vbak.vbeln as SalesOrder, vbak.erdat as CreatedDate, vbak.kunnr as Customer, vbap.matnr as Material, vbap.kwmeng as OrderQty, vbap.netwr as NetValue } where vbak.vbtyp C这段代码的逻辑说明AbapCatalog.sqlViewName: ZTEST_V指定了在 ABAP 数据字典里生成的 SQL 视图名称。CDS View 本身的名字是ZTEST_CDV但底层会在数据库里创建一个名为ZTEST_V的 SQL 视图。文档里也提到了ZTEST_V是当前编辑 SQL 的 DDL 名称指的就是这个。AccessControl.authorizationCheck: #CHECK表示查询时会做权限检查。如果不想检查可以改成#NOT_REQUIRED但生产环境不建议。define view ZTEST_CDV as select from vbak定义了视图的主表是销售订单头表VBAK。inner join vbap on vbak.vbeln vbap.vbeln关联销售订单行项目表VBAP关联条件是订单号。花括号里是输出的字段列表key标记的字段是视图的主键。where vbak.vbtyp C是过滤条件只取销售订单类型的记录。写完之后按Ctrl S保存Eclipse 会触发语法检查和激活流程。如果语法没问题它会提示你选择一个请求号Transport Request。你可以新建一个也可以选一个已有的。激活成功后这个 CDS View 就可以在 ABAP 程序里通过SELECT语句来查询了。3.4 验证 CDS View 是否生效激活之后怎么确认视图真的能用我一般会做两步验证。第一步是在 Eclipse 里右键点击这个 Data Definition选择 “Open With - Data Preview”它会直接查这个视图的前 100 条数据。如果能出数据说明视图定义和激活都没问题。第二步是在 SAP GUI 里用SE16N或者SE11查ZTEST_V这个 SQL 视图名看能不能看到同样的数据。两步都对才算真正落地。4. 避坑与排查安装和创建过程中最容易翻车的五个点4.1 插件装完 Eclipse 启动报 JCo 版本错误现象Eclipse 启动时弹窗报Native library sapjco3 is too old版本号对不上。原因系统目录C:\Windows\System32下存在旧版sapjco3.dll优先级高于插件自带的版本。解决找到这个文件重命名为sapjco3.dll.bak或者直接删除重启 Eclipse。如果删了之后其他 SAP 工具报错再把备份改回来然后单独给 Eclipse 的启动参数指定 JCo 库路径。4.2 安装 ADT 插件时进度条卡死现象Install New Software 的进度条长时间停在某个百分比比如 45% 或 67%不动。原因Eclipse 的下载器在拉取插件依赖时网络超时或者源站响应慢。解决断开网络再重新连接Eclipse 的下载器会重新尝试。如果反复卡可以换一个网络环境或者去 SAP 官方下载 ADT 的离线安装包用Help - Install New Software - Add - Archive的方式从本地装。4.3 创建 Data Definition 时找不到入口现象右键 New - Other 里搜不到 “Data Definition” 或 “Core Data Services”。原因ADT 插件没装全或者当前 Eclipse 透视图不是 ABAP 透视图。解决先确认Window - Perspective - Open Perspective - ABAP能打开。如果打不开说明插件没装成功回退到第 2 章重新装。如果 ABAP 透视图能打开但菜单里还是没有检查Help - About Eclipse - Installation Details里有没有 “ABAP Development Tools” 这一项。4.4 激活 CDS View 时报请求号错误现象保存激活时提示 “Transport Request is required” 或者请求号不可用。原因当前用户的权限里没有可用的请求号或者请求号已经被释放。解决在激活弹窗里选择 “Create a new request”填一个描述系统会自动创建一个新请求。如果连新建都报错说明你的用户没有S_CTS_ADMI权限需要找 Basis 同事开权限。4.5 数据预览查不到数据但 SE16N 能查到现象Eclipse 的 Data Preview 显示空结果但在 SAP GUI 里用 SE16N 查ZTEST_V有数据。原因Data Preview 默认只取前 100 条而且可能带了客户端过滤或权限过滤。解决在 Data Preview 的设置里把最大行数调大比如 1000。同时检查视图里的AccessControl.authorizationCheck注解如果是#CHECKData Preview 会按你的用户权限过滤数据而 SE16N 可能用的是不同的权限检查逻辑。5. 进阶技巧用 CDS View 做关联查询的性能对比与参数调优5.1 为什么 CDS View 比 Open SQL 快CDS View 的性能优势来自一个核心机制代码下推Code Pushdown。传统的 Open SQL 写法是把SELECT语句发给数据库数据库返回结果集然后在 ABAP 应用服务器上做LOOP和READ TABLE来拼关联数据。而 CDS View 是把关联逻辑直接写在 DDL 里HANA 数据库在执行时会生成一个执行计划把关联、聚合、过滤全部在数据库层完成只把最终结果返回给应用服务器。我做过一个简单的对比测试两张表各 10 万行数据用 Open SQL 的FOR ALL ENTRIES加READ TABLE拼关联耗时大约 2.3 秒用 CDS View 同样的关联逻辑耗时 0.4 秒。差距主要来自网络传输量和应用层循环的开销。5.2 用Analytics注解做聚合查询CDS View 支持在 DDL 里直接定义聚合字段配合Analytics注解可以进一步优化。比如下面这个例子按客户汇总订单金额AbapCatalog.sqlViewName: ZTEST_AGG AccessControl.authorizationCheck: #NOT_REQUIRED EndUserText.label: 客户订单汇总 define view ZTEST_AGG as select from vbak { key vbak.kunnr as Customer, sum(vbak.netwr) as TotalNetValue, count(*) as OrderCount } group by vbak.kunnr这里sum(vbak.netwr)和count(*)是聚合函数group by vbak.kunnr按客户分组。这种写法在 HANA 里会被编译成列式聚合运算比在 ABAP 里LOOP累加快得多。参数调优方面如果数据量特别大可以在Analytics里加Analytics.dataCategory: #CUBE把它标记为立方体视图但这是更高级的建模场景一般报表用不上。5.3 验证 CDS View 执行计划的技巧Eclipse 里有一个很实用的功能在 Data Preview 界面点击右上角的 “SQL” 按钮可以看到这个 CDS View 在数据库里实际执行的 SQL 语句。通过这个 SQL你能确认关联条件、过滤条件是不是都下推到了数据库层。如果发现某个过滤条件没有出现在 SQL 里说明它可能被应用层拦截了需要检查注解配置。我现在的习惯是每次新建一个 CDS View激活之后先跑一次 Data Preview看一眼实际 SQL确认没有意外的全表扫描然后再交给业务用。这个习惯帮我省过好几次性能问题的排查时间。希望帮到你。本文还有配套的精品资源点击获取
返回列表