CDS View-Part12&Part13&Part14 6tools,主键,文本翻译

9 篇文章 15 订阅

原文:
https://sapyard.com/abap-for-sap-hana-part-xxviii-6-cds-related-tools-in-adt/
https://sapyard.com/cds-part-13-key-definition-in-cds-views/
https://sapyard.com/cds-part-14-abap-annotations-for-translatable-texts-in-cds-views/

尊重版权,仅供个人学习

ADT中6个CDS相关实用工具

  1. 从SQL View导航到相应的DDL Source
    在这里插入图片描述
    还有一种方法是从字典表DDLDEPENDENCY,很简单
    在这里插入图片描述
  2. 显示SQL创建语句
    在这里插入图片描述
    在这里插入图片描述
  3. 查看当前View相关的Annotation
    在这里插入图片描述
    在这里插入图片描述
    Entity级别:
    在这里插入图片描述
    字段级别:
    在这里插入图片描述
    在这里插入图片描述
  4. 图形编辑器(没有找到很正常,这个跟ADT版本有关)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  5. 关联分析器,这个是非常有用的一个工具,好评
    在这里插入图片描述
    在这里插入图片描述
  6. 数据预览器(这个不用说,使用频率太高)
    在这里插入图片描述

CDS View中的主键定义

解答四个问题:

  1. 在CDS中使用KEY的实际目的是什么?
  2. KEY对CDS的影响是什么?
  3. 它会影响CDS View通过Open SQL获取的数据吗?
  4. @AbapCatalog.preservekey是怎么用的?

KEY就是当前CDS View的主键,注意语法KEY字段要在最前,并且不能中间夹杂普通字段
在这里插入图片描述
在这里插入图片描述
它会有两个影响:

  1. 在SELECT语句中会默认按主键顺序
  2. 隐式的访问控制

如果没有指定注释@AbapCatalog.preservekey或指定值为FALSE, SQL数据库视图将忽略CDS实体中使用key语句定义的key字段。

下面例子更好的说明这个Annotation的用法
在这里插入图片描述
这里没有指定key也没有用annotation AbapCatalog.preservekey,所以默认它会根据关联的表的主键添加主键。
在这里插入图片描述
接下来,显式的声明KEY字段,为了区别,这里加了一个字段scarr.carrname
在这里插入图片描述
可以看到它的SQL view中主键并没有变化
在这里插入图片描述

如果加上annotation并且指定值为true的话
在这里插入图片描述
这时就可以以自定义的KEY字段做为主键了
在这里插入图片描述

利用Annotation对CDS View的字段进行翻译

ABAP Annotation在定义CDS对象的技术特性和语义属性时扮演着非常重要的角色。当ABAP运行时环境激活时,会对每个CDS对象进行评估解析。

这里主要介绍的是annotation EndUserText,它用于为CDS对象定义可翻译的语义文本

常用的属性的两个:

  • EndUserText.label ,可以用在entity level(每一个CDS view都有这个,它会生成为SQL View的描述),也可以用在字段element level,最长不超过60个字符。
  • EndUserText.quickinfo,只能用在字段element level,它可以是任意长度。

实例:
在这里插入图片描述
在这里插入图片描述

Annotation的翻译

Annotation的文本是存在一个有语言字段主键的表里的。
翻译它和常规ABAP对象的翻译一样也是用TCODE: SE63

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
传输翻译也是用TCODE: SLXT 这个不再赘述
在这里插入图片描述

动态访问Annotation文本

使用全局类CL_DD_DDL_ANNOTATION_SERVICE的方法可以读取语言输入参数指定的文本。

实例:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注意一点是:
如果系统找不到指定语言的文本,则自动使用AS ABAP中的第二语言。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值