ABAP Keyword Documentation → ABAP - Dictionary → ABAP CDS in ABAP Dictionary → ABAP CDS - Annotations → ABAP CDS - SAP Annotations → ABAP CDS - ABAP Annotations
ABAP CDS - ABAP Annotation Definitions
The following DDLA source code shows the CDS annotation definitions in all ABAP annotations in CDS DDL and CDS DCL in ABAP CDS.
- The meaning of the DDLA source code shown here can be found in the documentation for DEFINE ANNOTATION.
- The semantics of the annotations can be found in the links in the DDLA source code.
The detailed meanings of these ABAP annotations are described under the relevant scope defined after @Scope in the documentation.
Other versions:
7.31 | 7.40 | 7.54
AbapAnnotation-Annotations
annotation AbapAnnotation {
definitionHidden : Boolean default true;
};
AbapCatalog-Annotations
@CompatibilityContract.c2.usageAllowed: false
@API.state: [#RELEASED_FOR_SAP_CLOUD_PLATFORM]
annotation AbapCatalog
{
@CompatibilityContract.c1: {
usageAllowed: true,
allowedChanges: {
annotation: [#NONE],
value: [#NONE]
}
}
buffering
{
status : String(20) enum { NOT_ALLOWED; ACTIVE; SWITCHED_OFF; } default #SWITCHED_OFF;
type : String(10) enum { SINGLE; GENERIC; FULL; NONE; } default #NONE;
numberOfKeyFields : Integer default 000;
};
@CompatibilityContract.c1: {
usageAllowed: true,
allowedChanges: {
annotation: [#ANY],
value: [#ANY]
}
}
dbHints : array of
{
dbSystem : String(3) enum
{
ADA;
DB2;
DB4;
DB6;
INF;
MSS;
ORA;
HDB;
ASE;
ALL;
};
hint : String(1298);
};
@CompatibilityContract.c1: {
usageAllowed: true,
allowedChanges: {
annotation: [#NONE],
value: [#NONE]
}
}
viewEnhancementCategory : array of String(20) enum
{
NONE;
PROJECTION_LIST;
GROUP_BY;
UNION;
};
@CompatibilityContract: {
c1: {
usageAllowed: true,
allowedChanges: {
annotation: [#NONE],
value: [#NONE]
}
},
c2: {
usageAllowed: true,
allowedChanges: {
annotation: [#NONE],
value: [#NONE]
}
}
}
@API.state: [#RELEASED_FOR_SAP_CLOUD_PLATFORM, #RELEASED_FOR_KEY_USER_APPS]
sqlViewName : String(16);
@CompatibilityContract.c1: {
usageAllowed: true,
allowedChanges: {
annotation: [#ADD],
value: [#FALSE_TO_TRUE]
}
}
@CompatibilityContract.c2: {
usageAllowed: true,
allowedChanges: {
annotation: [#ADD],
value: [#FALSE_TO_TRUE]
}
}
preserveKey : Boolean default true;
@CompatibilityContract: {
c1: {
usageAllowed: true,
allowedChanges: {
annotation: [#NONE],
value: [#NONE]
}
},
c2: {
usageAllowed: true,
allowedChanges: {
annotation: [#NONE],
value: [#NONE]
}
}
}
compiler
{
compareFilter : Boolean default true;
@Scope:[#ELEMENT]
@AbapAnnotation.definitionHidden: true
@CompatibilityContract: {
c1: {
usageAllowed: true,
allowedChanges: {
annotation: [#ANY],
value: [#ANY]
}
},
c2: {
usageAllowed: true,
allowedChanges: {
annotation: [#ANY],
value: [#ANY]
}
}
}
@API.state: [#NOT_RELEASED]
caseJoin : Boolean default true;
};
@AbapAnnotation.definitionHidden: true
@CompatibilityContract.c1.usageAllowed: false
@API.state: [#NOT_RELEASED]
internal
{
@Scope:[#ELEMENT]
isMandt : Boolean default true;
@Scope: [#VIEW, #EXTEND_VIEW]
@CompatibilityContract: {
c1: {
usageAllowed: true,
allowedChanges: {
annotation: [#ANY],
value: [#ANY]
}
},
c2: {
usageAllowed: true,
allowedChanges: {
annotation: [#ANY],
value: [#ANY]
}
}
}
setChange : String(30);
inheritedType : Boolean default true;
};
@Scope:[#EXTEND_VIEW]
@CompatibilityContract.c1.usageAllowed: false
sqlViewAppendName : String(16);
@Scope:[#ENTITY]
@MetadataExtension.usageAllowed: false
@AbapAnnotation.definitionHidden: true
@CompatibilityContract.c1.usageAllowed: false
@API.state: [#NOT_RELEASED]
sqlName : String(256);
};
AccessControl-Annotations
See Framework Specific Annotation Definitions.
API-Annotations
{
@Scope:[#ANNOTATION]
state: array of String(40) enum {
NOT_RELEASED;
RELEASED_FOR_SAP_CLOUD_PLATFORM;
RELEASED_FOR_KEY_USER_APPS;
};
@Scope:[#ELEMENT]
@CompatibilityContract.c1.usageAllowed: true
@CompatibilityContract.c2.usageAllowed: false
element {
@CompatibilityContract.c1.allowedChanges: {annotation: [#CUSTOM], value: [#CUSTOM]}
releaseState: String(30) enum {DEPRECATED;};
@CompatibilityContract.c1.allowedChanges: {annotation: [#CUSTOM], value: [#CUSTOM]}
successor: ElementRef;
};
};
ClientDependent-Annotations
VIEW
, #TABLE_FUNCTION.ClientHandling-Annotations
@CompatibilityContract: {
c1: {
usageAllowed: true,
allowedChanges: {
annotation: [#NONE],
value: [#NONE]
}
},
c2: {
usageAllowed: true,
allowedChanges: {
annotation: [#NONE],
value: [#NONE]
}
}
}
@API.state: [#RELEASED_FOR_SAP_CLOUD_PLATFORM]
annotation ClientHandling
{
type : String(20) enum { CLIENT_DEPENDENT; CLIENT_INDEPENDENT; INHERITED; } default #INHERITED;
algorithm : String(20) enum { NONE; AUTOMATED; SESSION_VARIABLE; };
};
CompatibilityContract-Annotations
define annotation CompatibilityContract {
c0 {
usageAllowed: Boolean default true;
allowedChanges {
annotation: array of String(20) enum {ADD; REMOVE; ANY; NONE; CUSTOM;};
value: array of String(20) enum {ADD; REMOVE; UPDATE; FALSE_TO_TRUE; TRUE_TO_FALSE; ANY; NONE; CUSTOM;};
};
};
c1 {
usageAllowed: Boolean default true;
allowedChanges {
annotation: array of String(20) enum {ADD; REMOVE; ANY; NONE; CUSTOM;};
value: array of String(20) enum {ADD; REMOVE; UPDATE; FALSE_TO_TRUE; TRUE_TO_FALSE; ANY; NONE; CUSTOM;};
};
};
c2 {
usageAllowed: Boolean default true;
allowedChanges {
annotation: array of String(20) enum {ADD; REMOVE; ANY; NONE; CUSTOM;};
value: array of String(20) enum {ADD; REMOVE; UPDATE; FALSE_TO_TRUE; TRUE_TO_FALSE; ANY; NONE; CUSTOM;};
};
};
}
DataAging-Annotations
@CompatibilityContract: {
c1: {
usageAllowed: true,
allowedChanges: {
annotation: [#ADD],
value: [#FALSE_TO_TRUE]
}
},
c2: {
usageAllowed: true,
allowedChanges: {
annotation: [#ADD],
value: [#FALSE_TO_TRUE]
}
}
}
annotation DataAging
{
noAgingRestriction : Boolean default true;
};
EndUserText-Annotations
c1: {
usageAllowed: true,
allowedChanges: {
annotation: [#ANY],
value: [#ANY]
}
},
c2: {
usageAllowed: true,
allowedChanges: {
annotation: [#ANY],
value: [#ANY]
}
}
}
@API.state: [#RELEASED_FOR_SAP_CLOUD_PLATFORM]
annotation EndUserText
{
@MetadataExtension.usageAllowed : true
@LanguageDependency.maxLength : 40
@Scope:[#ENTITY, #PARAMETER, #ELEMENT, #EXTEND_VIEW, #ROLE, #ASPECT, #PFCG_MAPPING, #ACCESSPOLICY, #SERVICE]
label : String(60);
@MetadataExtension.usageAllowed : true
@LanguageDependency.maxLength : 67
@Scope:[#ELEMENT, #PARAMETER, #ANNOTATE]
quickInfo : String(100);
@LanguageDependency.maxLength : 37
@Scope:[#SIMPLE_TYPE]
@API.state: [#NOT_RELEASED]
heading : String(55);
};
Environment-Annotations
c1: {
usageAllowed: true,
allowedChanges: {
annotation: [#NONE],
value: [#NONE]
}
},
c2.usageAllowed: false
}
@API.state: [#RELEASED_FOR_SAP_CLOUD_PLATFORM]
annotation Environment
{
@Scope:[#PARAMETER]
systemField : String(20) enum { CLIENT; SYSTEM_LANGUAGE; USER; SYSTEM_DATE; SYSTEM_TIME; };
@Scope:[#ELEMENT]
sql
{
passValue : Boolean default true;
};
};
LanguageDependency-Annotations
annotation LanguageDependency {
maxLength : Integer;
};
MappingRole-Annotations
@CompatibilityContract: {
c1: { usageAllowed: true },
c1: {
allowedChanges: { annotation: [#ADD, #REMOVE ],
value: [#FALSE_TO_TRUE ] }
},
c2: { usageAllowed: true },
c2: {
allowedChanges: { annotation: [#ADD, #REMOVE ],
value: [#FALSE_TO_TRUE ] }
}
}
@API.state: [#RELEASED_FOR_SAP_CLOUD_PLATFORM]
annotation MappingRole
: Boolean default true
;
Metadata-Annotations
@Scope:[#ENTITY]
@CompatibilityContract: {
c1: {
usageAllowed: true,
allowedChanges: {
annotation: [#ADD],
value: [#FALSE_TO_TRUE]
}
},
c2.usageAllowed: false
}
allowExtensions : Boolean default true;
@Scope:[#VIEW]
@CompatibilityContract: {
c1: {
usageAllowed: true,
allowedChanges: {
annotation: [#NONE],
value: [#NONE]
}
},
c2: {
usageAllowed: true,
allowedChanges: {
annotation: [#NONE],
value: [#NONE]
}
}
}
@API.state: [#RELEASED_FOR_SAP_CLOUD_PLATFORM]
ignorePropagatedAnnotations : Boolean default true;
@MetadataExtension.usageAllowed : true
@Scope:[#ANNOTATE]
@CompatibilityContract.c1: {
usageAllowed: true,
allowedChanges: {
annotation: [#NONE],
value: [#NONE]
}
}
@CompatibilityContract.c2.usageAllowed: false
layer : Integer
enum {
CORE;
LOCALIZATION;
INDUSTRY;
PARTNER;
CUSTOMER;
};
};
MetadataExtension-Annotations
annotation MetadataExtension {
usageAllowed : Boolean default true;
};
ObjectModel-Annotations
See Framework Specific Annotation Definitions.
Scope[ ]-Annotations
@Scope: [#ANNOTATION]
annotation Scope : array of String(20)
enum {
ENTITY;
VIEW;
TABLE_FUNCTION;
EXTEND_VIEW;
ROLE;
ACCESSPOLICY;
ANNOTATION;
ANNOTATE;
SERVICE;
CUSTOM_ENTITY;
HIERARCHY;
PARAMETER;
ELEMENT;
ASPECT;
PFCG_MAPPING;
SIMPLE_TYPE;
};
Semantics-Annotations
define annotation Semantics
{
...
@API.state: [ #RELEASED_FOR_SAP_CLOUD_PLATFORM ]
amount
{
currencyCode : ElementRef;
};
@Scope:[#ELEMENT]
@CompatibilityContract: {
c1: { usageAllowed: true,
allowedChanges.annotation: [ #NONE ],
allowedChanges.value: [ #NONE ] },
c2: { usageAllowed: true,
allowedChanges.annotation: [ #NONE ],
allowedChanges.value: [ #NONE ] } }
@API.state: [ #RELEASED_FOR_SAP_CLOUD_PLATFORM ]
quantity
{
unitOfMeasure : ElementRef;
};
@Scope:[#ELEMENT]
@CompatibilityContract: {
c1: { usageAllowed: true,
allowedChanges.annotation: [ #NONE ],
allowedChanges.value: [ #NONE ] },
c2: { usageAllowed: true,
allowedChanges.annotation: [ #NONE ],
allowedChanges.value: [ #NONE ] } }
@API.state: [ #RELEASED_FOR_SAP_CLOUD_PLATFORM ]
currencyCode : Boolean default true;
@Scope:[#ELEMENT]
@CompatibilityContract: {
c1: { usageAllowed: true,
allowedChanges.annotation: [ #NONE ],
allowedChanges.value: [ #NONE ] },
c2: { usageAllowed: true,
allowedChanges.annotation: [ #NONE ],
allowedChanges.value: [ #NONE ] } }
@API.state: [ #RELEASED_FOR_SAP_CLOUD_PLATFORM ]
unitOfMeasure : Boolean default true;
@Scope:[#ELEMENT]
@CompatibilityContract: {
c1: { usageAllowed: false },
c2: { usageAllowed: false } }
booleanIndicator : Boolean default true;
...
};