SAP ABAP CDS - 03 ABAP CDS注释 - 3.1 注释的定义:语法概述

        可以在CDS源代码中指定的CDS注释可以由CDS注释定义指定。CDS注释定义将CDS注释定义为CDS对象。它描述了如何在CDS源代码中使用此注释。该描述包括以下内容:
        ◾主注释的名称
        ◾可能的注释值
        ◾是否可以使用子注释进行结构化
        ◾是否可以指定注释数组

        注释在单独的DDLA源代码中定义,并随该代码一起传输。注释定义的DDLA源代码可以使用CDS DDL语句define annotation精确地定义一个同名的CDS注释(然而,该注释可以是子注释的主注释)。这种类型的DDLA源代码只能在ABAP开发工具(ADT)中编辑,DDLA源代码也可以在ABAP工作台的Repository Browser中显示。
***提示***
◾定义为CDS对象的注释由ABAP开发工具(ADT)在指定注释时用于源代码着色和代码完成。
◾在CDS实体的DDL源代码中对CDS实体定义的语法检查还不计算注释定义。它只检查注释语法的正确性。
◾客户和合作伙伴目前不能定义自己的注释。目前应该只使用SAP注释。
◾SAP Annotations列出了SAP交付的所有DDLA源代码。

定义注释的DDL-DDL for Annotation Definitions

        除了用于数据定义的DDL语句外,ABAP CDS中的CDS DDL还可以在DDLA源代码(CDS source code for CDS annotation definitions in CDS DDL)中将CDS注释定义为CDS对象。下面的语句在这里使用:

定义注释-DEFINE ANNOTATION

语法:
[@annotation_annot1]
[@annotation_annot2]
...
[define] annotation Anno {  :   type; }
                       | { [:] {subannos}[;] }
                       | {  :   array of arrelem }

        语句define annotation在DDLA源代码的CDS DDL中定义了一个名为Anno的CDS注释。注释Anno是当前注释定义的主要注释,可以用可选的子注释进行结构化。注释定义的DDLA源代码只能包含一个主注释的定义,该主注释的名称必须与DDLA源代码的名称匹配。名称区分大小写。定义注释的注释,@annotation_annot1, @annotation_annot2,…,可以在语句定义注释之前指定。这些由子注释继承或覆盖在那里。

例子:

定义结构化注释-Defines a structured annotation

@Scope:[#VIEW, #EXTEND_VIEW]  
define annotation DemoAnnoStruct  
  { subAnno1 : Boolean default true;  
    subAnno2 : Integer enum { I1; I2; I3; } default #I1;  
    subAnno3 : array of String(10);  
    subAnno4 : array of { comp1 : String(1);  
                                       comp2 : String(2);  
                                     };  
  };

        主注释DemoAnnoStruct有subAnno1到subAnno4的子注释。子标注subAnno3和subAnno4是标注数组。(这里,subno4是结构化的。)

        以这种方式定义的注释允许在DDL源代码的注释语法中指定以下内容,这些注释语法将CDS视图或CDS表函数定义为视图注释或函数注释:
指定子注释subAnno1一次(这里隐式使用默认值true):
        @DemoAnnoStruct.subAnno1
在大括号中指定子注释subAnno1和subAnno2(这里的默认值被显式注释值覆盖)。在subAnno2中,使用固定枚举值之一:
        @DemoAnnoStruct:{subAnno1:false, subAnno2:#I2}
指定标注数组subAnno3的标注值。引号内的值最多可以有10个字符:
        @DemoAnnoStruct.subAnno3:['a','abc','abcdefghij']
为结构化标注数组subAnno4指定标注值
        @DemoAnnoStruct.subAnno4:[ {comp1: 'a', comp2: 'b' },
                                                               {comp1: 'c', comp2: 'd' },
                                                               {comp1: 'e', comp2: ‘f' } ]

  • 24
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

混沌破晓

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

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

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

打赏作者

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

抵扣说明:

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

余额充值