SAP 搭建ATD环境开发CDS View(入门到进阶)


前言

      本文1w字+,先 点赞 关注 收藏 制作不易 谢谢🤞

      这篇文章给大家介绍一下SAP S4HANA推出的一个强大的数据建模和查询工具,CDS (Core Data Services) 是SAP推出的用于定义和消费数据模型的新技术,特别适用于HANA数据库,可以简化数据的访问和操作。它提供了高级的数据抽象层,优化了性能,增强了数据安全性,并简化了开发过程。通过使用CDS View,开发者可以更有效地构建和维护复杂的数据模型,提升应用程序的性能和可维护性。


一、案例介绍/笔者需求

        随着SAP S4HANA的实施推广CDS VIEW开发已经成为了作为ABAP开发人员必会的一项技能,所以这篇文章我们将从CDS简介、搭建ADT环境、以及CDS应用 基本语法 来详细介绍。


二、CDS VIEW简介及作用

          首先我们对CDSVIEW有个大致的了解认识,下面这些看不懂也没关系,只要看完后面的内容回头再来看相信你们就能看明白了。

            a.CDS VIEW简介

                       1.概念简介
                            CDS(Core Data Services)View是一种用于在SAP系统中定义和管理数据模型的高级抽象层。它提供了一种基于SQL的方式来定义数据库表的视图,允许用户通过声明性语法定义数据模型,而不是传统的编程方式。

                       2.CDS视图的类型
                            1、基本视图 (Basic Views): 用于定义基础数据模型,直接映射到数据库表或其他视图。
                            2、组合视图 (Composite Views): 通过组合其他视图来定义更复杂的数据模型。
                            3、消费视图 (Consumption Views): 用于数据消费,通常与UI或分析应用程序集成。

            b.CDS VIEW作用

                      CDS的作用和强大之处相信看完这篇文章大家会感觉到的。
                       1.性能优化
                            CDS视图充分利用了HANA数据库的内存计算能力和优化机制,可以显著提高查询性能。
                            通过推送计算到数据库层,减少了应用层的数据处理负担。
                       2.简化开发
                            CDS视图提供了一种高级的数据建模语言,简化了数据模型的定义和维护。
                            通过抽象数据模型,减少了开发过程中对底层数据库的依赖。
                       3.增强数据安全性
                            通过CDS视图的访问控制注解 (如 @AccessControl),可以定义细粒度的数据访问权限。
                       4.支持新技术和架构
                            CDS视图是S/4HANA和Fiori应用程序开发的重要组成部分,支持现代化的用户界面和业务逻辑开发。
                            与OData服务的集成,使数据可以被轻松消费和展示。
                       5.可维护性和可读性
                            通过使用CDS视图,数据模型更具可读性和文档化。
                            可以通过注解和层次化的视图定义提高代码的可维护性。

三、Eclipse下载与安装

          CSD VIEW 的开发不同于我们传统ABAP开发在 GUI 端,它需要使用Eclipse来开发,所以这一步我们先下载并安装Eclipse。

            a.Eclipse下载方式

                      这里为大家介绍多种下载方式供大家选择。
                       1.官网下载
                            官网下载地址为:https://www.eclipse.org/downloads/
                            根据下面操作最后点击Donwnload会出现一个打赏页面不用管这个,官网下载的优点就是版本以及软件本身的安全都是没问题的,但是由于是国外的服务器你不科学上网的话那么下载速度将会非常非常慢。
在这里插入图片描述

                       2.文章已绑定资源
                            笔者下载下来之后已将Eclipes安装包与此篇文章绑定,我设置的是免费下载应该是可以免费下载的,但是后期不知道系统会不会强制调整为收费 。。。。。。。

                       3.百度云下载
                            如果嫌麻烦,或者上面两种方式你都下载不了就用百度云吧,笔者也贴心的为大家专门搞了永久百度云连接。
                            链接:https://pan.baidu.com/s/14w-OY7uCfeh0boU5lb8zbg?pwd=uaqs
                            提取码:uaqs

            b.Eclipse安装

                      这一步很简单,主要看你想把Eclipse放在哪个盘下面,还有项目代码的存放路径。
                       1.解压运行
                            把下载下来的压缩包解压到你想存放的位置,它这种压缩包解压后都是免安装的 解压即用的。按照下图步骤 打开Eclipse 填写项目代码存放路径,最后点击Launch就会打开编辑器。这里我建议不要勾选 Use this as the default 这个选项 ,如果勾选了你每次的项目资料都会存在最初设置的这个路径就不会再弹出这个创建workspace的提示框。
在这里插入图片描述

四、Eclipse的配置与连接

          安装好Eclipse之后我们还需在Eclipse中下载安装开发CDS VIEW的相关插件以及连接SAP系统。这一步完成之后我们就可以开发CDS VIEW了。安装插件容易失败出错,需要多多尝试。需要耐心哦。

            a.插件的安装

                       1.进入安装插件页面
                            首先根据下图进入插件安装界面
在这里插入图片描述
                       2.填写URL安装插件
                            获取填写url的地址是进入这个页面 https://tools.hana.ondemand.com 然后会有多个url我们需要选择合适自己版本的。
在这里插入图片描述

                             我们Eclipse的版本是 2024-06 的所以就选择 https://tools.hana.ondemand.com/2024-06https://tools.hana.ondemand.com/latest

                            输入完之后可以敲回车让Eclipse检索此资源,如果地址不对会报错如下弹框。
在这里插入图片描述

                            如果检索成功会出现如下界面,我们勾选所有选项点击 Next 即可,然后等待下载安装完成。
在这里插入图片描述

                            上面那个弹框好像只是下载,等下载完之后我们可以点击右下角查看安装进度。等安装成功之后 Eclipse会提示你重启的。如果安装失败就多试几个url重复安装,这个过程可能有一些信任条约之类的 我们勾选信任下一步就行了。
在这里插入图片描述

                       3.版本不匹配
                            可能出现版本不匹配我们直接按照下面操作 无脑Next 即可。
在这里插入图片描述

                       4.确保安装成功
                            按照如下图步骤可以查看Eclipse插件安装情况,开发CDSVIEW相关插件下图已经框出来了都是以ABAP开头的这些。
在这里插入图片描述

            b.连接SAP系统

                       1.New Project
                            左上角点击File
在这里插入图片描述

                       2.选择 ABAP Project
                            如果没有出现 ABAP 这个节点就是因为上面的插件安装失败 或者 是还在安装中。一般插件安装成功 Eclipes 会提示你让你重启的。
在这里插入图片描述
                       3.连接
                            这一步Eclipes会带出你GUI端已经连接的所有条目,可以选择现有的,也可以新建连接,基本无脑 Next 就行了。
在这里插入图片描述
在这里插入图片描述
                       4.输入 客户端 name pwd
                            这一步好奇怪,我刚开始用户名密码都是粘贴的 然后点击Next之后报错了,提示 Logon to system DNR failed (Initialization of repository destination adt.tmp_1721961550897 failed: Name or password is incorrect (repeat logon)) 然后我以为GUI和这个不能同时登录,我把GUI关了之后又重新粘贴输入还是不行,然后我又手动输入密码账号又可以了。。。。。。 反正这一步也多尝试几下吧,关闭Eclipes重启 关闭GUI 多尝试几次。

                            手输入密码,别复制粘贴
                            手输入密码,别复制粘贴
                            手输入密码,别复制粘贴
在这里插入图片描述


五、CDS 简单入门

          这一步给大家介绍CDS最基本的用法,让大家先熟悉熟悉开发方式以及感受CDS的作用。

            a.熟悉Eclipes菜单界面

                      这个Eclipes如果没用过的话我个人感觉还是不顺手的,它不像Pycharm、IDEA、这些家族软件,Eclipes它是有自己的风格的,如果你不小心关闭了自己的项目窗口并且不熟悉界面你可能半天都找不到你的项目跑哪去了,哈哈,就跟无头苍蝇乱撞一样。
                       1.连接成功
                            首次连接成功界面应该是这样的。
在这里插入图片描述

                            如果我们手贱关闭了这些窗口就成这样了,然后也找不见项目去哪了。
在这里插入图片描述

                       2.重置窗口
                            按照如下步骤可以重置窗口,这样我们最初的窗口布局就出来了,项目还是在原来的窗口哦。
在这里插入图片描述

                       3.只打开项目窗口
                            或者按照如下图步骤可以只打开我们Project Explorer窗口,感觉其他窗口也用不上还怪占地方。
在这里插入图片描述

            b.创建CDS对象

                      这一步我们将创建一个最基本的CDS对象。
                       1.进入创建步骤弹框
                            先根据下图操作把创建CDS的弹框显示出来。
在这里插入图片描述
                       2.选择Data Definition
                            根据下图步骤操作即可,基本无脑Next,其实后面的哪些步骤没有特殊要求的话到第二个弹框就可以点击Finish了。
在这里插入图片描述
                       3.创建成功
                            如下图所示就是创建成功了。
在这里插入图片描述

            c.设置Eclipes字体大小 及 格式化代码快捷键

                       1.字体大小
                            Eclipes默认字体大小太小了,这一步教大家如何调整Eclipes代码样式大小。
在这里插入图片描述
                       2.格式化代码快捷键
                            Eclipes格式化代码快捷键查看如下图,如果按了不起作用可能就是和我们电脑某些快捷键冲突了,我们可以鼠标点击格式化,或者修改快捷键。
在这里插入图片描述
                            修改快捷键,我个人习惯 Ctrl + / ,后面我们编写代码的时候会用到格式化代码功能的,所以提前先设置好。修改其他功能的快捷键也是一样的哈,Eclipes中复制上一行代码是 Ctrl + Alt + 方向上下键 但是这个快捷键会和qq音乐冲突所以我改为了 Ctrl+D
在这里插入图片描述

            d.熟悉 代码 界面

                      这一步我们将熟悉如何编写操作CDS对象。
                       1.激活与检查
                            这两个按钮和我们GUI端ABAP编辑器道理是一样的。
在这里插入图片描述

                       2.模板代码详解
                            这里最主要的就是 @AbapCatalog.sqlViewName: < CDS视图名>define view < CDS实体名> ,我们要把这两个玩意搞清楚哈,如果通俗易懂的来说就是 < CDS视图名> 就当作和我们透明表用法是一样的,< CDS实体名> 就是开发维护CDS对象的。这两个名称在开发CDS视图的时候是不能重名的。
在这里插入图片描述

            e.编写 生成 查看 CDS视图

                      这一步我们将生成一个很简单的CDS视图,为我们后续开发复杂的CDS视图打下基础。
                       1.编写
                            Z_GLYN_CDSVIEW 上面我们也说过了这个命名会在我们SAP数据库生成一个物理视图,你可以把它当作一个透明表看待。其他的看下面图解就行了。多行注释用:/* … */ 单行注释用: // 完了之后记得激活,激活的时候GUI端如果有占用查看此CDS视图的信息要先关闭。
在这里插入图片描述

@AbapCatalog.sqlViewName: 'Z_GLYN_CDSVIEW'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: '这是我的第一个CDS'
@Metadata.ignorePropagatedAnnotations: true
define view Z_GLYN_CDS as select from mara
{
    /* 
    我只取三个字段哈
     */
    matnr,//物料编码
    matkl,//物料组
    meins //基本单位
}

                       2.SE16N查看
                            SE16N直接查看的时候发现生成的视图是有数据的。这样就能体现出这玩意的强大之处了吧,这还仅仅只是最最最基础的入门。
在这里插入图片描述
                       3.SE11查看
                            SE11查看跟我们其他透明表还是有很大区别的。可以看一些 表连接 、字段 、选择条件 等等信息。
在这里插入图片描述

            f.表的 join 及 where条件

                      这一步我们将做一个稍微有点用的CDS视图,我们把MARA表和MAKT表做个关联并设置where条件,其实我们在开发中会经常对MARA 和 MAKT这两个表关联来取数的。做这个小案例还是让大家感受一下CDS的用处。
                       1.编写
                            CDS编写 和SQL差不多,它是用 “.” 来 “.” 字段,并不是"~"。 通过下面的实操 相信大家对CDS已经基本熟悉了解了,但是CDS其实还有很多用处和知识点 对数据的高级操作 对表的增强 。。。。。。等等
在这里插入图片描述

@AbapCatalog.sqlViewName: 'Z_GLYN_CDSVIEW'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: '这是我的第一个CDS'
@Metadata.ignorePropagatedAnnotations: true
define view Z_GLYN_CDS
  as select from mara
    inner join   makt on mara.matnr = makt.matnr
{
  /*
  我只取三个字段哈
   */
  mara.matnr, //物料编码
  makt.maktx,
  mara.matkl, //物料组
  mara.meins  //基本单位
}
where
      makt.spras =  '1'
  and mara.matkl <> ''

                       2.效果查看
                            入门操作就讲到这里了。在这里插入图片描述

六、CDS 语法进阶

          这里我们将掌握一些常用的关键字还有一些聚合函数 、字符串操作函数、类型转化 等等。记住函数都是可以嵌套使用的、记住函数都是可以嵌套使用的、记住函数都是可以嵌套使用的

            a.设置主键 KEY

                      设置主键有两种方式需要通过 @AbapCatalog.preserveKey: < true / false > 来控制,上面其实我们也提到过,如果设置为false则会依据原来的表主键设置 CDS视图的主键,如果为true 则不受原来表的影响,会依我们CDS代码设置的主键为准。

                       1.设置为False
                            设置为False之后把原mara表和makt表的主键应用到我们CDS视图了。
在这里插入图片描述

                       2.设置为true
                            设置为true之后就需要我们手动使用关键字 KEY 来自己定义主键
在这里插入图片描述

            b.拼接字段 concat( )

                      拼接字段使用 concat( )

                       1.实操
                            我们把 mara 中的 ersda(日期)created_at_time(时间) 拼接成功为一个字段。自定义字段尽量Z打头哈。
在这里插入图片描述

@AbapCatalog.sqlViewName: 'Z_GLYN_CDSVIEW'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: '这是我的第一个CDS'
@Metadata.ignorePropagatedAnnotations: true
define view Z_GLYN_CDS
  as select from mara
    inner join   makt on mara.matnr = makt.matnr
{
  key mara.matnr, //物料编码
      makt.maktx, //物料描述
      mara.matkl, //物料组
      mara.meins, //基本单位
      //把日期和时间拼接为一个字段
      concat( mara.ersda, mara.created_at_time ) as zzdatetime

}
where
      makt.spras =  '1'
  and mara.matkl <> ''

                       2.定义字段描述
                            我们可以看到使用函数配合 AS 生成的字段列名很奇怪叫做 “为函数、文字等生成的列”。 这很影响观感哈。如果要更改字段描述 可以使用 CAST 函数将字段转换为指定的数据类型,如果我们转为我们在SAP里面自定义的数据元素那么数据元素的描述就会被带过来了。 CAST函数后面也会详细介绍的。
                            1、 自定义数据元素
在这里插入图片描述
                            2、 使用CAST转化字段类型,zglyn_datetime 是我们上面创建的数据元素哈。
在这里插入图片描述
                            3、 CAST的用法就是 : CAST ( expression AS datatype ) expression: 要转换的字段或表达式 datatype: 目标数据类型。

@AbapCatalog.sqlViewName: 'Z_GLYN_CDSVIEW'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: '这是我的第一个CDS'
@Metadata.ignorePropagatedAnnotations: true
define view Z_GLYN_CDS
  as select from mara
    inner join   makt on mara.matnr = makt.matnr
{
  key mara.matnr, //物料编码
      makt.maktx, //物料描述
      mara.matkl, //物料组
      mara.meins, //基本单位
      //concat拼接日期时间字段 并用cast转化字段类型为ZGLYN_DATETIME(已定义的数据元素)
      cast(concat( mara.ersda, mara.created_at_time ) as zglyn_datetime) as zzdatetime

}
where
      makt.spras =  '1'
  and mara.matkl <> ''

            c.类型转化 cast( )

                      字段类型转化使用 cast( ) 在上面拼接字段的案例中我们其实已经使用感受过了。cast( )它的主要作用还是转化类型 不单单是能把类型对应描述带出来。下面给大家演示几种常用的类型转化。

                       1.abap基础类型转化用法
                            物料描述这个字段本来是CHAR40的,我们把它转为CHAR3
在这里插入图片描述在这里插入图片描述
                            相应的SE16N查看数据长度也被限制住了。
在这里插入图片描述

@AbapCatalog.sqlViewName: 'Z_GLYN_CDSVIEW'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: '这是我的第一个CDS'
@Metadata.ignorePropagatedAnnotations: true
define view Z_GLYN_CDS
  as select from mara
    inner join   makt on mara.matnr = makt.matnr
{
  key mara.matnr, //物料编码
      cast(makt.maktx as abap.char(3)) as maktx, //物料描述
      mara.matkl, //物料组
      mara.meins  //基本单位
}
where
      makt.spras =  '1'
  and mara.matkl <> ''

                            一下是一些常用基本类型

描述示例
整数类型abap.int1、 abap.int2、 abap.int4、 abap.int8
字符类型abap.char(n),其中n是字符长度
日期类型abap.dats
时间类型abap.tims
小数类型abap.dec(n, d),其中n是总长度,d是小数位数

                       2.转为自定义数据元素
                            除了可以转为基础类型也可以转为SAP系统自定义的数据元素,并且描述也会被带过来。下面我们将物料描述转为CHAR50 并给出自定义描述。
                            1、 首先SE11新建一个数据元素
在这里插入图片描述
                            2、 CDS中使用
在这里插入图片描述

            d.截取字段 substring( )

                      如果要对一个字段进行截取使用 substring( ),还是满实用的。下面我们将下图中的创建日期进行截取把它的 年份月份 分别截取出来。
在这里插入图片描述
                       1.实操
                            字符串截取其实很简单,日期一共8位长度,那么年份就是从第1位开始截取4位,月份是从第5位开始截取2位,天是从第7位开始截取2位。就这样数就行了 很简单的。
在这里插入图片描述
                       2.copy code
                            别光看记得点赞关注收藏。

@AbapCatalog.sqlViewName: 'Z_GLYN_CDSVIEW'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: '这是我的第一个CDS'
@Metadata.ignorePropagatedAnnotations: true
define view Z_GLYN_CDS
  as select from mara
    inner join   makt on mara.matnr = makt.matnr
{
  key mara.matnr, //物料编码
      mara.ersda, //创建日期
      
      substring(mara.ersda,1,4) as zyea, //年份
      substring(mara.ersda,5,2) as zmon, //月份
      substring(mara.ersda,7,2) as zday  //天
}
where
      makt.spras =  '1'
  and mara.matkl <> ''

            e.结果去重 distinct

                      要对结果集去重使用 distinct,首先我们只查询 MARA 表的 MBRSH 行业字段,结果集肯定是和物料数量一样的,然后我们再使用 distinct 对结果集去重之后按照我当前系统配置情况数量应该就只有9条了。
在这里插入图片描述
                       1.取MBRSH一个字段
                            观察下面两图的效果即可,效果我已经做的很明显了。
在这里插入图片描述

在这里插入图片描述
                       2.取2个字段
                            我们再加一个物料组字段去重再次观察,可以看到使用了distinct后结果集中每一行都是唯一的。这个就好像ABAP删除内表重复相邻行的所有字段都相同就删除一样。abap内表删除重复行可以看 这篇文章 二 – c
在这里插入图片描述
                       2.copy code

define view Z_GLYN_CDS
  as select distinct from mara
{
  mara.mbrsh,
  mara.matkl
}

            f.分支运算 case

                      case 是非常实用的,一般在财务的借贷比较常用,例如 H就是正数,S就是负数 这样的需求使用CASE就很方便。我们下面的案例依然用 marambrsh 行业 字段做示例。我们将行业编码对应的描述做一个转化。
在这里插入图片描述
                       1.简单实操
                            语法就是 CASE <判断的字段> WHEN <对应值的操作> ELSE <其他值> END AS <字段名>
在这里插入图片描述

define view Z_GLYN_CDS
  as select distinct from mara
{
  mara.mbrsh, //行业编码
  case mara.mbrsh
            when '1' then '零售'
            when '3' then '服务行业'
            when 'A' then '工厂工程/结构'
            when 'B' then '测试行业'
            when 'C' then '化学工业'
            when 'K' then '计算机软硬件'
            when 'M' then '机械工程'
            when 'P' then '新能源'
            when 'X' then '测试行业'
            else '其他'
            end as zmbrshtext
}

                       2.逻辑表达式
                            WHEN 语句中可以是逻辑表达式,不仅仅是赋值那么简单,你可以给某些字段使用函数 或者做一些 加减乘除 之类的操作。例如下面当行业是1的时候我们截取创建日期,当行业是3 的时候我们拼接物料组和基本单位。加减乘除你们自己去练练哈。
在这里插入图片描述

            g.获取长度 length( )

                      获取字段长度使用 length( ),下面我们是获取物料描述的字段长度。

在这里插入图片描述

define view Z_GLYN_CDS
  as select distinct from makt
{
  makt.matnr,
  makt.maktx,
  length(makt.maktx) as zmaktxlen
}

            h.转大写 upper( )

                      字段转大写用 upper( ),下面我们是将物料描述的字段转为大写。

在这里插入图片描述

define view Z_GLYN_CDS
  as select distinct from makt
{
  makt.matnr,
  makt.maktx,
  upper(makt.maktx) as r_upper
}

            i.转小写 lower( )

                      字段转小写用 lower( ),下面我们是将物料描述的字段转为小写。
在这里插入图片描述

define view Z_GLYN_CDS
  as select distinct from makt
{
  makt.matnr,
  makt.maktx,
  lower(makt.maktx) as r_lower
}

            j.替换指定字符 replace( )

                      将字段值中的指定字符替换使用 replace( ),下面我们是将物料1569的描述中的 “Road” 替换为 “哈哈” 。
在这里插入图片描述

define view Z_GLYN_CDS
  as select distinct from makt
{
  makt.matnr,
  makt.maktx,
  replace(makt.maktx, 'Road', '哈哈' ) as r_replace
}

            k.其他函数

                      Eclipse中鼠标放在关键字上面按F1也可以 调出帮助文档的,大家可以自己看文档,下面这个是我从文档中复制过来的是一些常用函数的示例,后期我有用到一些其他函数或者功能都会来这篇文章更新的,如果你从这篇文章学到东西了还麻烦您 点赞 收藏 关注。制作不易 谢谢 !!!

define view demo_cds_sql_functions_string 
  as select from 
    demo_expressions 
    { 
      length(            char1               ) as r_length, 
      instr(             char1, 'CD'         ) as r_instr, 
      concat(            char1, char2        ) as r_concat, 
      concat_with_space( char1, char2, 10    ) as r_concat_with_space, 
      left(              char1, 3            ) as r_left, 
      lower(             char1               ) as r_lower, 
      right(             char2, 3            ) as r_right, 
      lpad(              char1, 10, 'x'      ) as r_lpad, 
      rpad(              char2, 10, 'y'      ) as r_rpad, 
      ltrim(             char1, 'A'          ) as r_ltrim, 
      rtrim(             char1, 'E'          ) as r_rtrim, 
      replace(           char2, 'GHI', 'XXX' ) as r_replace, 
      substring(         char2, 2, 3         ) as r_substring, 
      upper(             char2               ) as r_upper 
    }        

七、CDS 其他应用

          这里介绍一些CDS其他常用实用的应用。

            a.with parameters 传参

                      我们可以在SAP使用弹框形式让用户动态传递参数给CDS,如下图所示。我们新建一个 CDS用来查询符合有效期内的用户信息状态 (用户信息状态存储于usr02)。
在这里插入图片描述

                       1.代码实现
                            下图中的代码只是从SAP传参到CDS了 我们并没用应用传递过来的参数,具体怎么用这个参数 看你自己需求吧。使用传递过来的参数的时候要用 $parameters.<参数名 >
在这里插入图片描述
                            查询符合有效期内的用户信息状态

@AbapCatalog.sqlViewName: 'ZUSR02'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'test01'
@Metadata.ignorePropagatedAnnotations: true
define view Z_GLYN_CDS01 

with parameters
    @Environment.systemField: #SYSTEM_DATE
    P_StartDate : vdm_v_key_date,
    P_EndDate   : vdm_v_key_date

as select from usr02
   
{
    
    bname,
    ustyp,
    gltgv,
    gltgb
    
}
where gltgv >= $parameters.P_StartDate 
and   gltgb <= $parameters.P_EndDate

在这里插入图片描述
                       2.代码详解1
                            @Environment.systemField: #SYSTEM_DATE 这是一个CDS视图注解,用于指定一个参数或字段的默认值为系统日期,即当前日期。这个注解意味着在运行时,如果没有为 P_StartDate 或 P_EndDate 参数提供值,则系统将自动使用当天的日期作为默认值。这在进行与时间相关的查询时非常有用,确保查询在默认情况下总是使用最新的数据。

                       3.代码详解2
                            vdm_v_key_date 这是一个ABAP数据元素,SE11可以直接去查看。我们也可以直接使用基本类型 看自己需求吧。
                           在我们上面的CDS视图中,vdm_v_key_date 用作 P_StartDate 和 P_EndDate 参数的类型,表明这些参数是日期类型的,用于指定查询的时间范围。
在这里插入图片描述

在这里插入图片描述

            a.对标准表增强

                      这个还没做好还没研究透彻,过段时间再回来填坑。
                       1.步骤二 a 1
                            pass

                       2.步骤二 a 2
                            pass

                       3.步骤二 a 3
                            pass

END、总结

        以上就是今天要讲的内容,本文仅仅简单介绍了SAP CDSVIEW ,感觉笔者讲的好对自己有帮助的还麻烦点个免费的赞赞制作不易谢谢谢谢!!!如果有说错或者不好的地方还望大家提出来见谅。感觉笔者写的好的别忘了关注点赞加评论哦,也欢迎大家一起来讨论。谢谢!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiao贱贱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值