Show TOC

UI AnnotationsLocate this document in the navigation structure

Represent semantic views on business data through the use of specific patterns that are completely independent of UI technologies.

Scope and Definition
@Scope:[#VIEW, #TABLE_FUNCTION, #ENTITY, #ANNOTATE_VIEW]
@MetadataExtension.usageAllowed : true 
Annotation UI
 {
   headerInfo
   {
       @LanguageDependency.maxLength : 40 
       typeName : String(60);
       @LanguageDependency.maxLength : 40 
       typeNamePlural : String(60);
       typeImageUrl : String;
       imageUrl : elementRef;
       title
       {
           type : String enum
           {
               STANDARD;
               WITH_INTENT_BASED_NAVIGATION;
               WITH_NAVIGATION_PATH;
               WITH_URL;
           } default #STANDARD;
           @LanguageDependency.maxLength : 40
           label : String(60);
           iconUrl : String;
           criticality : elementRef;
           value : elementRef;
           targetElement : elementRef;
           url : elementRef;
       };
       description
       {
           type : String enum
           {
               STANDARD;
               WITH_INTENT_BASED_NAVIGATION;
               WITH_NAVIGATION_PATH;
               WITH_URL;
           } default #STANDARD;
           @LanguageDependency.maxLength : 40
           label : String(60);
           iconUrl : String;
           criticality : elementRef;
           value : elementRef;
           targetElement : elementRef;
           url : elementRef;
       };
   };
   badge
   {
       headLine
       {
           type : String enum
           {
               STANDARD;
               WITH_INTENT_BASED_NAVIGATION;
               WITH_NAVIGATION_PATH;
               WITH_URL;
           } default #STANDARD;
           @LanguageDependency.maxLength : 40
           label : String(60);
           iconUrl : String;
           criticality : elementRef;
           value : elementRef;
           targetElement : elementRef;
           url : elementRef;
       };
       title
       {
           type : String enum
           {
               STANDARD;
               WITH_INTENT_BASED_NAVIGATION;
               WITH_NAVIGATION_PATH;
               WITH_URL;
           } default #STANDARD;
           @LanguageDependency.maxLength : 40
           label : String(60);
           iconUrl : String;
           criticality : elementRef;
           value : elementRef;
           targetElement : elementRef;
           url : elementRef;
       };
       typeImageUrl : String;
       imageUrl : elementRef;
       mainInfo
       {
           type : String enum
           {
               STANDARD;
               WITH_INTENT_BASED_NAVIGATION;
               WITH_NAVIGATION_PATH;
               WITH_URL;
           } default #STANDARD;
           @LanguageDependency.maxLength : 40
           label : String(60);
           iconUrl : String;
           criticality : elementRef;
           value : elementRef;
           targetElement : elementRef;
           url : elementRef;
       };
       secondaryInfo
       {
           type : String enum
           {
               STANDARD;
               WITH_INTENT_BASED_NAVIGATION;
               WITH_NAVIGATION_PATH;
               WITH_URL;
           } default #STANDARD;
           @LanguageDependency.maxLength : 40
           label : String(60);
           iconUrl : String;
           criticality : elementRef;
           value : elementRef;
           targetElement : elementRef;
           url : elementRef;
       };
   };
   chart : array of
   {
       qualifier : String(120);
       @LanguageDependency.maxLength : 40
       title : String(60);
       @LanguageDependency.maxLength : 80
       description : String(120);
       chartType : String enum
       {
           COLUMN;
           COLUMN_STACKED;
           COLUMN_STACKED_100;
           COLUMN_DUAL;
           COLUMN_STACKED_DUAL;
           COLUMN_STACKED_DUAL_100;
           BAR;
           BAR_STACKED;
           BAR_STACKED_100;
           BAR_DUAL;
           BAR_STACKED_DUAL;
           BAR_STACKED_DUAL_100;
           AREA;
           AREA_STACKED;
           AREA_STACKED_100;
           HORIZONTAL_AREA;
           HORIZONTAL_AREA_STACKED;
           HORIZONTAL_AREA_STACKED_100;
           LINE;
           LINE_DUAL;
           COMBINATION;
           COMBINATION_STACKED;
           COMBINATION_STACKED_DUAL;
           HORIZONTAL_COMBINATION_STACKED;
           HORIZONTAL_COMBINATION_STACKED_DUAL;
           PIE;
           DONUT;
           SCATTER;
           BUBBLE;
           RADAR;
           HEAT_MAP;
           TREE_MAP;
           WATERFALL;
           BULLET;
           VERTICAL_BULLET;
       };
       dimensions : array of elementRef;
       measures : array of elementRef;
       dimensionAttributes : array of
       {
           dimension : elementRef;
           role : String(10) enum
           {
               CATEGORY;
               SERIES;
           };
       };
       measureAttributes : array of
       {
           measure : elementRef;
           role : String(10) enum
           {
               AXIS_1;
               AXIS_2;
               AXIS_3;
           };
           asDataPoint : Boolean default true;
       };
       actions : array of
       {
           type : String enum
           {
               FOR_ACTION;
               FOR_INTENT_BASED_NAVIGATION;
           };
           @LanguageDependency.maxLength : 40
           label : String(60);
           dataAction : String;
           invocationGrouping : String enum
           {
               ISOLATED;
               CHANGE_SET;
           } default #ISOLATED;
           semanticObjectAction : String;
       };
   };
      selectionPresentationVariant : array of
   {
       qualifier : String(120);
       id : String(120);
       @LanguageDependency.maxLength : 40
       text : String(60);
       selectionVariantQualifier : String(120);
       presentationVariantQualifier : String(120);
   };
   selectionVariant : array of
   {
       qualifier : String(120);
       id : String(120);
       @LanguageDependency.maxLength : 40
       text : String(60);
       parameters : array of
       {
           name : parameterRef;
           value : Expression;
       };
       filter : Expression;
   };
   presentationVariant : array of
   {
       qualifier : String(120);
       id : String(120);
       @LanguageDependency.maxLength : 40
       text : String(60);
       maxItems : Integer;
       sortOrder : array of
       {
           by : elementRef;
           direction : String(4) enum
           {
               ASC = 'ASC';
               DESC = 'DESC';
           };
       };
       groupBy : array of elementRef;
       totalBy : array of elementRef;
       total : array of elementRef;
       includeGrandTotal : Boolean default true;
       initialExpansionLevel : Integer;
       requestAtLeast : array of elementRef;
       visualizations : array of
       {
           type : String enum
           {
               AS_LINEITEM;
               AS_CHART;
               AS_DATAPOINT;
           };
           qualifier : String(120);
           element : elementRef;
       };
   };
 };
@Scope:[#ELEMENT] 
@MetadataExtension.usageAllowed : true 
Annotation UI
 {
   hidden : Boolean default true;
   masked : Boolean default true;
   multiLineText : Boolean default true;
   lineItem : array of
   {
       qualifier : String(120);
       position : DecimalFloat;
       exclude : Boolean default true;
       importance : String enum { HIGH; MEDIUM; LOW; };
       type : String enum
       {
           FOR_ACTION;
           AS_ADDRESS;
           AS_DATAPOINT;
           AS_CONTACT;
           AS_CHART;
           FOR_INTENT_BASED_NAVIGATION;
           STANDARD;
           WITH_INTENT_BASED_NAVIGATION;
           WITH_NAVIGATION_PATH;
           WITH_URL;
       } default #STANDARD;
       @LanguageDependency.maxLength : 40 
       label : String(60);
       iconUrl : String;
       criticality : elementRef;
       dataAction : String;
       invocationGrouping : String enum { ISOLATED; CHANGE_SET; } default #ISOLATED;
       semanticObjectAction : String;
       value : elementRef;
       targetElement : elementRef;
       url : elementRef;
   };
   identification : array of
   {
       position : DecimalFloat;
       exclude : Boolean default true;
       importance : String enum { HIGH; MEDIUM; LOW; };
       type : String enum
       {
           FOR_ACTION;
           AS_ADDRESS;
           AS_DATAPOINT;
           AS_CONTACT;
           AS_CHART;
           FOR_INTENT_BASED_NAVIGATION;
           STANDARD;
           WITH_INTENT_BASED_NAVIGATION;
           WITH_NAVIGATION_PATH;
           WITH_URL;
       } default #STANDARD;
       @LanguageDependency.maxLength : 40 
       label : String(60);
       iconUrl : String;
       criticality : elementRef;
       dataAction : String;
       invocationGrouping : String enum { ISOLATED; CHANGE_SET; } default #ISOLATED;
       semanticObjectAction : String;
       value : elementRef;
       targetElement : elementRef;
       url : elementRef;
   };
   statusInfo : array of
   {
       position : DecimalFloat;
       exclude : Boolean default true;
       importance : String enum { HIGH; MEDIUM; LOW; };
       type : String enum
       {
           FOR_ACTION;
           AS_ADDRESS;
           AS_DATAPOINT;
           AS_CONTACT;
           AS_CHART;
           FOR_INTENT_BASED_NAVIGATION;
           STANDARD;
           WITH_INTENT_BASED_NAVIGATION;
           WITH_NAVIGATION_PATH;
           WITH_URL;
       } default #STANDARD;
       @LanguageDependency.maxLength : 40 
       label : String(60);
       iconUrl : String;
       criticality : elementRef;
       dataAction : String;
       invocationGrouping : String enum { ISOLATED; CHANGE_SET; } default #ISOLATED;
       semanticObjectAction : String;
       value : elementRef;
       targetElement : elementRef;
       url : elementRef;
   };
   fieldGroup : array of
   {
       qualifier : String(120);
       @LanguageDependency.maxLength : 40 
       groupLabel : String(60);
       position : DecimalFloat;
       exclude : Boolean default true;
       importance : String enum { HIGH; MEDIUM; LOW; };
       type : String enum
       {
           FOR_ACTION;
           AS_ADDRESS;
           AS_DATAPOINT;
           AS_CONTACT;
           AS_CHART;
           FOR_INTENT_BASED_NAVIGATION;
           STANDARD;
           WITH_INTENT_BASED_NAVIGATION;
           WITH_NAVIGATION_PATH;
           WITH_URL;
       } default #STANDARD;
       @LanguageDependency.maxLength : 40 
       label : String(60);
       iconUrl : String;
       criticality : elementRef;
       dataAction : String;
       invocationGrouping : String enum { ISOLATED; CHANGE_SET; } default #ISOLATED;
       semanticObjectAction : String;
       value : elementRef;
       targetElement : elementRef;
       url : elementRef;
   };
   dataPoint
   {
       @LanguageDependency.maxLength : 40 
       title : String(60);
       @LanguageDependency.maxLength : 80 
       description : String(120);
       @LanguageDependency.maxLength : 190 
       longDescription : String(250);
       targetValue : DecimalFloat;
       targetValueElement : elementRef;
       forecastValue : elementRef;
       minimumValue : DecimalFloat;
       maximumValue : DecimalFloat;
       visualization : String enum
       {
           NUMBER;
           BULLET_CHART;
           DONUT;
           PROGRESS;
           RATING;
       };
       valueFormat
       {
           scaleFactor : DecimalFloat;
           numberOfFractionalDigits : Integer;
       };
       referencePeriod
       {
           @LanguageDependency.maxLength : 80 
           description : String(120);
           start : elementRef;
           end : elementRef;
       };
       criticality : elementRef;
       criticalityCalculation
       {
           improvementDirection : String enum { MINIMIZE; TARGET; MAXIMIZE; };
           toleranceRangeLowValue : DecimalFloat;
           toleranceRangeLowValueElement : elementRef;
           toleranceRangeHighValue : DecimalFloat;
           toleranceRangeHighValueElement : elementRef;
           deviationRangeLowValue : DecimalFloat;
           deviationRangeLowValueElement : elementRef;
           deviationRangeHighValue : DecimalFloat;
           deviationRangeHighValueElement : elementRef;
       };
       trend : elementRef;
       trendCalculation
       {
           referenceValue : elementRef;
           isRelativeDifference : Boolean default false;
           upDifference : DecimalFloat;
           upDifferenceElement : elementRef;
           strongUpDifference : DecimalFloat;
           strongUpDifferenceElement : elementRef;
           downDifference : DecimalFloat;
           downDifferenceElement : elementRef;
           strongDownDifference : DecimalFloat;
           strongDownDifferenceElement : elementRef;
       };
       responsible : elementRef;
       responsibleName : String(120);
   };
   selectionField : array of
   {
       qualifier : String(120);
       position : DecimalFloat;
       exclude : Boolean default true;
       element : elementRef;
   };
 };
@Scope:[#VIEW, #ANNOTATE_VIEW, #ELEMENT] 
@MetadataExtension.usageAllowed : true 
Annotation UI
 {
   textArrangement : String enum
   {
       TEXT_FIRST;
       TEXT_LAST;
       TEXT_ONLY;
       TEXT_SEPARATE;
   };
 };
Usage
The focus of OData UI vocabulary developed by SAP is on usage patterns of data in UIs, not on UI patterns. The vocabulary is completely independent of the UI technologies or devices that consume the data. The usage patterns of data used by the OData UI vocabulary represent certain semantic views on business data. Some of them are very generic, others are based on the concept of an entity, something tangible to end-users. Examples for entities are semantic object instances or business object instances. Looking at different UI patterns, these data usage patterns reoccur again and again. To generate OData annotations from CDS views, CDS annotations are reused from different domains, for example Consumption, Communication, Semantics, EndUserText. The CDS annotations that are additionally required in a UI domain are listed in the following table.
Annotation Meaning

Annotations belonging to UI.badge represent a business card view.

Scope: [VIEW, TABLE_FUNCTION, ENTITY, ANNOTATE_VIEW]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Values:

UI.badge.headLine Annotations belonging to UI.badge.headLine represent a property of type UI.DataFieldAbstract restricted to the types STANDARD, WITH_NAVIGATION_PATH, and WITH_URL.

The OData annotations DataFieldAbstract are the basis for all DataField types and represent values with optional labels that can trigger navigation to related data, or execute actions on data.

UI.badge.headLine.criticality elementRef This annotation can be specified if the badge headline type is STANDARD. This annotation references to another element that has the values 0, 1, 2, or 3. The criticality value Neutral is reflected by the value 0, the criticality value Negative is reflected by the value 1, the criticality value Critical is reflected by the value 2, and the criticality value Positive is reflected by the value 3.

For more information, see Criticality.

UI.badge.headLine.iconURL String This annotation contains the URL to an icon image. This annotation is optional.
UI.badge.headLine.label String (60) This annotation contains a language-dependent text. If omitted, the label of the annotated element, or the label of the element referenced via the value is used. The element is optional.
UI.badge.headLine.targetElement elementRef This annotation represents the path to an element of an associated CDS view. The path is converted to an OData NavigationPropertyPath. Using This annotation, you can link from the header part of an object view floorplan to a target element. You need to specify UI.badge.headLine.targetElement when you use the annotation UI.badge.headLine.type of type WITH_NAVIGATION_PATH. You might, for example, provide background information to an item that is opened on the object view floorplan.
UI.badge.headLine.type

This enumeration annotation exactly specifies what type of the type hierarchy is used. The value of the enumeration type determines which CDS elements are required or available.

Values:

String

The following enumerations are provided:

Value Description
STANDARD Default

Maps to standard DataField. You use this type if you want a field to be displayed without any additional functionality.

A standard DataField refers to a property of the OData service used.

When you use this type, you can use the following elements:
  • label
  • value
  • criticality
WITH_NAVIGATION_PATH Maps to DataFieldWithNavigationPath.

DataFieldWithNavigationPath is based on DataField, and defines a label-value pair that refers to a property of the OData service used. The definition consists of a link to navigate to a new target, based on a navigation property provided by the OData service, or defined in the annotation file.

For more information, see With Navigation Path.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • targetElement
WITH_URL Maps to DataFieldWithURL.

DataFieldWithURL is based on DataField, and defines a label–value pair that refers a property of the OData service used. The definition consists a URL to navigate to a new target, that is a URL.

For more information, see With URL.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • url
UI.badge.headLine.url elementRef This annotation represents the path to a structural element that contains a navigation URL. You need to specify UI.badge.headLine.url when you use the annotation UI.badge.headLine.type of type WITH_URL.
UI.badge.headLine.value elementRef This annotation refers to a value. If you refer to a value that is in the same view, specify the element name. If you use an association to refer to a value, specify the path to the element.
UI.badge.imageUrl elementRef This annotation represents a path to an element containing the URL of an image representing the entity instance. The path is optional.
Example When users open a badge, they can see an image related to that badge.
UI.badge.mainInfo The content of UI.badge.mainInfo annotations is highlighted on the badge. These annotations represent a property of type UI.DataFieldAbstract restricted to the types STANDARD, WITH_NAVIGATION_PATH, and WITH_URL.

The OData annotations DataFieldAbstract are the basis for all DataField types and represent values with optional labels that can trigger navigation to related data, or execute actions on data.

UI.badge.mainInfo.criticality elementRef This annotation can be specified if the type of the badge main info is STANDARD. This annotation references to another element that has the values 0, 1, 2, or 3. The criticality value Neutral is reflected by the value 0, the criticality value Negative is reflected by the value 1, the criticality value Critical is reflected by the value 2, and the criticality value Positive is reflected by the value 3.

For more information, see Criticality.

UI.badge.mainInfo.iconURL String This annotation contains the URL to an icon image. This annotation is optional.
UI.badge.mainInfo.label String (60) This annotation contains a language-dependent text that can be used for main information on badges.

If omitted, the label of the annotated element, or the label of the element referenced via the value is used. The element is optional.

UI.badge.mainInfo.targetElement elementRef This annotation represents the path to an element of an associated CDS view. The path is converted to an OData NavigationPropertyPath. Using This annotation, you can link from the header part of an object view floorplan to a target element. You need to specify UI.badge.mainInfo.targetElement when you use the annotation UI.badge.mainInfo.type of type WITH_NAVIGATION_PATH. You might, for example, provide background information to an item that is opened on the object view floorplan.
UI.badge.mainInfo.type

This enumeration annotation exactly specifies what type of the type hierarchy is used. The value of the enumeration type determines which CDS elements are required or available.

Values:

String

The following enumerations are provided:

Value Description
STANDARD Default

Maps to standard DataField. You use this type if you want a field to be displayed without any additional functionality.

A standard DataField refers to a property of the OData service used.

When you use this type, you can use the following elements:
  • label
  • value
  • criticality
WITH_NAVIGATION_PATH Maps to DataFieldWithNavigationPath.

DataFieldWithNavigationPath is based on DataField, and defines a label-value pair that refers to a property of the OData service used. The definition consists of a link to navigate to a new target, based on a navigation property provided by the OData service, or defined in the annotation file.

For more information, see With Navigation Path.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • targetElement
WITH_URL Maps to DataFieldWithURL.

DataFieldWithURL is based on DataField, and defines a label–value pair that refers a property of the OData service used. The definition consists a URL to navigate to a new target, that is a URL.

For more information, see With URL.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • url
UI.badge.mainInfo.url elementRef This annotation represents the path to a structural element that contains a navigation URL. You need to specify UI.badge.mainInfo.url when you use the annotation UI.badge.mainInfo.type of type WITH_URL.
UI.badge.mainInfo.value elementRef This annotation refers to a value. If you refer to a value that is in the same view, specify the element name. If you use an association to refer to a value, specify the path to the element.
UI.badge.secondaryInfo The content of UI.badge.secondaryInfo annotations is subordinate to the content of the UI.badge.mainInfo annotations. This annotation represents a property of type UI.DataFieldAbstract restricted to the types STANDARD, WITH_NAVIGATION_PATH, and WITH_URL.

The OData annotations DataFieldAbstract are the basis for all DataField types and represent values with optional labels that can trigger navigation to related data, or execute actions on data.

UI.badge.secondaryInfo.criticality elementRef This annotation can be specified if the type of the badge secondary info is STANDARD. This annotation references to another element that has the values 0, 1, 2, or 3. The criticality value Neutral is reflected by the value 0, the criticality value Negative is reflected by the value 1, the criticality value Critical is reflected by the value 2, and the criticality value Positive is reflected by the value 3.

For more information, see Criticality.

UI.badge.secondaryInfo.iconURL String This annotation contains the URL to an icon image. This annotation is optional.
UI.badge.secondaryInfo.label String (60) This annotation contains a language-dependent text that can be used for secondary information on badges.

If omitted, the label of the annotated element, or the label of the element referenced via the value is used. The element is optional.

UI.badge.secondaryInfo.targetElement elementRef This annotation represents the path to an element of an associated CDS view. The path is converted to an OData NavigationPropertyPath. Using This annotation, you can link from the header part of an object view floorplan to a target element. You need to specify UI.badge.secondaryInfo.targetElement when you use the annotation UI.badge.secondaryInfo.type of type WITH_NAVIGATION_PATH. You might, for example, provide background information to an item that is opened on the object view floorplan.
UI.badge.secondaryInfo.type

This enumeration annotation exactly specifies what type of the type hierarchy is used. The value of the enumeration type determines which CDS elements are required or available.

Values:

String

The following enumerations are provided:

Value Description
STANDARD Default

Maps to standard DataField. You use this type if you want a field to be displayed without any additional functionality.

A standard DataField refers to a property of the OData service used.

When you use this type, you can use the following elements:
  • label
  • value
  • criticality
WITH_NAVIGATION_PATH Maps to DataFieldWithNavigationPath.

DataFieldWithNavigationPath is based on DataField, and defines a label-value pair that refers to a property of the OData service used. The definition consists of a link to navigate to a new target, based on a navigation property provided by the OData service, or defined in the annotation file.

For more information, see With Navigation Path.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • targetElement
WITH_URL Maps to DataFieldWithURL.

DataFieldWithURL is based on DataField, and defines a label–value pair that refers a property of the OData service used. The definition consists a URL to navigate to a new target, that is a URL.

For more information, see With URL.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • url
UI.badge.secondaryInfo.url elementRef This annotation represents the path to a structural element that contains a navigation URL. You need to specify UI.badge.secondaryInfo.url when you use the annotation UI.badge.secondaryInfo.type of type WITH_URL.
UI.badge.secondaryInfo.value elementRef This annotation refers to a value. If you refer to a value that is in the same view, specify the element name. If you use an association to refer to a value, specify the path to the element.
UI.badge.title Annotations belonging to UI.badge.titlerepresent a property of type UI.DataFieldAbstract restricted to the types STANDARD, WITH_NAVIGATION_PATH, and WITH_URL. UI.badge.title annotations are mandatory.

The OData annotations DataFieldAbstract are the basis for all DataField types and represent values with optional labels that can trigger navigation to related data, or execute actions on data.

UI.badge.title.criticality elementRef This annotation can be specified if the badge title type is STANDARD. This annotation references to another element that has the values 0, 1, 2, or 3. The criticality value Neutral is reflected by the value 0, the criticality value Negative is reflected by the value 1, the criticality value Critical is reflected by the value 2, and the criticality value Positive is reflected by the value 3.

For more information, see Criticality.

UI.badge.title.iconURL String This annotation contains the URL to an icon image. This annotation is optional.
UI.badge.title.label String (60) This annotation contains a language-dependent text that can be used for titles on badges.

If omitted, the label of the annotated element, or the label of the element referenced via the value is used. The element is optional.

UI.badge.title.targetElement elementRef This annotation represents the path to an element of an associated CDS view. The path is converted to an OData NavigationPropertyPath. Using This annotation, you can link from the header part of an object view floorplan to a target element. You need to specify UI.badge.title.targetElement when you use the annotation UI.badge.title.type of type WITH_NAVIGATION_PATH. You might, for example, provide background information to an item that is opened on the object view floorplan.
UI.badge.title.type

This enumeration annotation exactly specifies what type of the type hierarchy is used. The value of the enumeration type determines which CDS elements are required or available.

Values:

String

The following enumerations are provided:

Value Description
STANDARD Default

Maps to standard DataField. You use this type if you want a field to be displayed without any additional functionality.

A standard DataField refers to a property of the OData service used.

When you use this type, you can use the following elements:
  • label
  • value
  • criticality
WITH_NAVIGATION_PATH Maps to DataFieldWithNavigationPath.

DataFieldWithNavigationPath is based on DataField, and defines a label-value pair that refers to a property of the OData service used. The definition consists of a link to navigate to a new target, based on a navigation property provided by the OData service, or defined in the annotation file.

For more information, see With Navigation Path.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • targetElement
WITH_URL Maps to DataFieldWithURL.

DataFieldWithURL is based on DataField, and defines a label–value pair that refers a property of the OData service used. The definition consists a URL to navigate to a new target, that is a URL.

For more information, see With URL.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • url
UI.badge.title.url elementRef This annotation represents the path to a structural element that contains a navigation URL. You need to specify UI.badge.title.url when you use the annotation UI.badge.title.type of type WITH_URL.
UI.badge.title.value elementRef This annotation refers to a value. If you refer to a value that is in the same view, specify the element name. If you use an association to refer to a value, specify the path to the element.
UI.badge.typeImageUrl String This annotation contains the URL of an image representing an entity. The element is is optional.
Example When users open an overview of badges, they can see an image related to the entity type to which all badges displayed on that page belong to.

Annotations belonging to UI.chart are used to show a visual representation of aggregated data.

Scope: [VIEW, TABLE_FUNCTION, ENTITY, ANNOTATE_VIEW]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Values: array of

UI.chart.actions Annotations belonging to UI.chart.actions are used to add actions to charts.

Values: array of

UI.chart.actions.dataAction String This annotation can be used if the chart action type is FOR_ACTION. The annotation references the technial name of an action of the Business Object Processing Framework (BOPF), for example. In this case, the string pattern is BOPF:<technical name of action in BOPF>.
UI.chart.actions.invocationGrouping

Description: This annotation expresses how multiple invocations of the same action on multiple instances are grouped. This annotation is optional. This annotation needs to be specified if you use UI.chart.actions.type of type FOR_ACTION.

Values:

String

The following enumerations are provided:

Value Description
ISOLATED Default
Describes the error handling when an action cannot be executed on all selected instances:
  • The action is executed on all instances except for instance on which the action cannot be executed.
    Example A user selects five items in a list and wants to copy them. One item cannot be copied. This item will not be copied, the other four items are copied.
CHANGE_SET Describes the error handling when an action cannot be executed on all selected instances:
  • If an action cannot be executed on one of the selected instances, the action is executed on none of the selected instances.
    Example A user selects five items in a list and wants to copy them. One item cannot be copied. None of the selected items are copied.
UI.chart.actions.label String(40) This annotation contains a language-dependent text that can be used for charts.

If omitted, the label of the annotated element, or the label of the element referenced via the value is used. The annotation is optional.

UI.chart.actions.semanticObjectAction String This annotation can be used in the chart action type is FOR_INTENT_BASED_NAVIGATION. This annotation refers to the name of an action on the semantic object. The semantic object is taken from @Consumption.semanticObject or derived via an association from the defining view.
UI.chart.actions.type

Description: This annotation is used to define the type of an action that is added to a chart.

Values:

String

The following enumerations are provided:

Value Description
FOR_ACTION Maps to DataFieldForAction.

DataFieldForAction is based on DataField, and defines an app-specific action. For example, a button is rendered with the text of the datafield label.

For more information, see Actions.

When you use this type, you can use the following elements:
  • label
  • invocationGrouping
When you use this type, you must use the following elements:
  • dataAction
FOR_INTENT_BASED_NAVIGATION Maps to DataFieldForIntentBasedNavigation.

DataFieldForIntentBasedNavigation is used to execute an action on a semantic object.

For more information, see Based on Intent.

When you use this type, you can use the following elements:
  • label
When you use this type, you must use the following elements:
  • semanticObjectAction
UI.chart.chartType

Description: This enumeration annotation specifies the type of graphical representation that is most appropriate for the data in the annotated view or entity. The element is mandatory.

Values:

String

The following enumerations are provided:

Value Description
COLUMN This annotation represents one dimension on the x-axis, and one or more measures on the y-axis ("vertical bar").
COLUMN_STACKED This annotation represents a stacked column.
COLUMN_STACKED_100 This annotation represents a 100 % stacked column.
BAR This annotation represents one dimension on the y-axis, and one or more measures on the x-axis ("horizontal bar").
BAR_STACKED This annotation represents a stacked bar.
BAR_STACKED_100 This annotation represents a 100 % stacked bar.
AREA This annotation represents one dimension on the x-axis, and one or more measures on the y-axis ("vertical bar").
AREA_STACKED This annotation represents a stacked area.
AREA_100 This annotation represents a 100 % stacked area.
HORIZONTAL_AREA This annotation represents one dimension on the y-axis, and one or more measures on the x-axis ("horizontal bar").
HORIZONTAL_AREA_STACKED This annotation represents a stacked, horizontal area.
HORIZONTAL_AREA_100 This annotation represents a 100 % stacked, horizontal area.
LINE This annotation represents one dimension on the x-axis, and one or more measures on the y-axis ("vertical bar").
PIE This annotation represents one dimension for segmentation, and one measure for the size of a segment.
DONUT
SCATTER This annotation represents two dimensions for the x-axis and the y-axis. A third and fourth dimension for symbol and color are optional.
BUBBLE This annotation represents two dimensions for the x-axis and the y-axis, and one measure for the size of the bubble.
RADAR This annotation represents three or more dimensions for the axes of the spider web.
HEAT_MAP This annotation represents two dimensions for the x-axis and the y-axis, and one measure that is mapped to a color code.
TREE_MAP This annotation represents one or more hierarchical dimensions, one measure for the rectangle size, and an optional second measure that is mapped to a color code.
WATERFALL This annotation represents one dimension for the x-axis, and one measure for the y-axis.
BULLET This annotation represents an actual value as a horizontal bar in semantic color on the top of the background bar. Numeric values, the scaling factor, along with the thresholds, and a target value are displayed vertically.
VERTICAL_BULLET This annotation represents an actual value as a vertical bar in semantic color on the top of the background bar. Numeric values, the scaling factor, along with the thresholds, and a target value are displayed horizontally.
UI.chart.description String (120) This annotation contains a language-dependent text. If omitted, the @EndUserText.quickInfo of the annotated entity or view is used. The element is optional.
UI.chart.dimensions array of elementRef This annotation is an array of one or more element references for the discrete axes of a chart. The exact semantics depend on the chart type.
UI.chart.dimensionsAttributes Annotations belonging to UI.chart.dimensionsAttributes are used to specify the dimension attributes of a chart.

Values: array of

UI.chart.dimensionsAttributes.dimension elementRef This annotation defines the dimensions used in a chart. This annotation must reference an element that is contained in UI.chart.dimensions.
UI.chart.dimensionsAttributes.role

Description: This annotation defines the manner in which a dimension is used within a chart.This is configured differently for each chart type.

Values:

String

The following enumerations are provided:

Value Description
CATEGORY This annotation determines the visualization of a chart.
Example Line chart: Dimensions for which the role is set to CATEGORY, make up the X-axis (category axis). If no dimension is specified with this role, the first dimension is used as the X-axis.
SERIES This annotation determines the visualization of a chart.
Example Line chart: Dimensions for which the role is set to SERIES make up the line segments of the chart, with different colors assigned to each dimension value. If multiple dimensions are assigned to this role, the values of all such dimensions together are considered as one dimension and a color is assigned.
UI.chart.measures array of elementRef This annotation is an array of zero or more element references for the numeric axes of a chart. The exact semantics depend on the chart type.
UI.chart.measureAttributes Annotations belonging to UI.chart.measureAttributes are used to specify the measure attributes of a chart.

Values: array of

UI.chart.measureAttributes.asDataPoint Boolean default true This annotation defines whether or not measures are displayed as data points in addition to a chart. The element annotated with this UI annotation needs to have an annotation to a data point.
UI.chart.measureAttributes.measure elementRef This annotation defines the measures used in a chart. This annotation must reference an element that is contained in UI.chart.measures and has a UI.dataPoint annotation.
UI.chart.measureAttributes.role

Description: This annotation defines the manner in which a measure is used within a chart. This is configured differently for each chart type.

Values:

String

The following enumerations are provided:

Value Description
AXIS_1 This annotation determines the visualization of a chart.
Example Bubble chart: The first measure for which the role is set to AXIS_1, or if none exists, the first measure for which the role is set to AXIS_2, or if none exists, the first measure for which the role is set to AXIS_3, is assigned to the feed UID valueAxis. This makes up the X-axis.
AXIS_2 This annotation determines the visualization of a chart.
Note

For an example, see the description of AXIS_1.

AXIS_3 This annotation determines the visualization of a chart.
Note

For an example, see the description of AXIS_1.

UI.chart.title String (60) This annotation contains a language-dependent text. If omitted, the @EndUserText.label of the annotated entity or view is used. The element is optional.
UI.chart.qualifier String (120) This annotation is used to group and uniquely identify annotations. You need to specify a qualifier as name of a chart to ensure that the correct chart can be referenced by the UI.

Annotations belonging to UI.dataPoint are used to visualize a single point of data that typically is a number but may also be text, for example, a status value. For more information, see Data Points.

Scope: [ELEMENT]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Values:

UI.dataPoint.criticality elementRef This annotation can be specified if the data point type is STANDARD. This annotation references to another element that has the values 0, 1, 2, or 3. The criticality value Neutral is reflected by the value 0, the criticality value Negative is reflected by the value 1, the criticality value Critical is reflected by the value 2, and the criticality value Positive is reflected by the value 3.

For more information, see Criticality.

UI.dataPoint.criticalityCalculation

Annotations belonging to UI.dataPoint.criticalityCalculation can be used as an alternative to specifying the criticality in the criticality element. The criticality can be calculated based on the values of the criticalityCalculation annotations.

UI.dataPoint.criticalityCalculation.improvementDirection

Description: This annotation calculates the criticality based on a specified improvement direction. For more information, see Trend-Criticality Calculation.

Values:

String

The following enumerations are provided:

Value Description
MINIMIZE
  • Values under toleranceRangeLowValue are displayed in green (positive)
  • Values between toleranceRangeLowValue and deviationRangeHighValue are displayed in yellow (critical)
  • Values beyond deviationRangeHighValue are displayed in red (negative)
TARGET
  • Values under deviationRangeLowValue are displayed in red (negative)
  • Values between deviationRangeLowValue and toleranceRangeLowValue are displayed in yellow (critical)
  • Values between toleranceRangeLowValue and toleranceRangeHighValue are displayed in green (positive)
  • Values between toleranceRangeHighValue and deviationRangeHighValue are displayed in yellow (critical)
  • Values beyond deviationRangeHighValue are displayed in red (negative)
MAXIMIZE
  • Values under deviationRangeLowValue are displayed in red (negative)
  • Values between deviationRangeLowValue and toleranceRangeLowValue are displayed in yellow (critical)
  • Values beyond toleranceRangeLowValue are displayed in green (positive)
UI.dataPoint.criticalityCalculation.deviationRangeHighValue DecimalFloat This annotation contains a constant value specifying the maximum deviation value before the criticality value Negative is reached.
Note

If you use This annotation, you cannot use element UI.dataPoint.criticalityCalculation.deviationRangeHighValueElement.

UI.dataPoint.criticalityCalculation.deviationRangeHighValueElement elementRef This annotation contains a referenced value specifying the maximum deviation value before the criticality value Negative is reached.
Note

If you use This annotation, you cannot use element UI.dataPoint.criticalityCalculation.deviationRangeHighValue.

UI.dataPoint.criticalityCalculation.deviationRangeLowValue DecimalFloat This annotation contains a constant value specifying the minimum deviation value before the criticality value Negative is reached.
Note

If you use This annotation, you cannot use element UI.dataPoint.criticalityCalculation.deviationRangeLowValueElement.

UI.dataPoint.criticalityCalculation.deviationRangeLowValueElement elementRef This annotation contains a referenced value specifying the minimum deviation value before the criticality value Negative is reached.
Note

If you use This annotation, you cannot use element UI.dataPoint.criticalityCalculation.deviationRangeLowValue.

UI.dataPoint.criticalityCalculation.toleranceRangeHighValue DecimalFloat This annotation contains a constant value specifying the maximum value of the tolerance range.
Note

If you use This annotation, you cannot use element UI.dataPoint.criticalityCalculation.toleranceRangeHighValueElement.

UI.dataPoint.criticalityCalculation.toleranceRangeHighValueElement elementRef This annotation contains a referenced value specifying the maximum value of the tolerance range.
Note

If you use This annotation, you cannot use element UI.dataPoint.criticalityCalculation.toleranceRangeHighValue.

UI.dataPoint.criticalityCalculation.toleranceRangeLowValue DecimalFloat This annotation contains a constant value specifying the minimum value of the tolerance range.
Note

If you use This annotation, you cannot use element UI.dataPoint.criticalityCalculation.toleranceRangeLowValueElement.

UI.dataPoint.criticalityCalculation.toleranceRangeLowValueElement elementRef This annotation contains a referenced value specifying the minimum value of the tolerance range.
Note

If you use This annotation, you cannot use element UI.dataPoint.criticalityCalculation.toleranceRangeLowValue.

UI.dataPoint.description String (120) This annotation contains a description of the data point. If omitted, the @EndUserText.quickinfo is used, if specified. The element is optional.
Example You can display a KPI using the dataPoint annotation. The description of this KPI can be displayed using the UI.dataPoint.description annotation.
UI.dataPoint.forecastValue elementRef This annotation references a value such as predicted or intended quarterly results, for example.
UI.dataPoint.longDescription String (250) This annotation contains a detailed description of the data point. The element is optional.
Example You can display a KPI using the dataPoint annotation. A tooltip when hovering over this KPI can be displayed using the UI.dataPoint.longDescription annotation.
UI.dataPoint.maximumValue Integer This annotation specifies the maximum value of a threshold.
UI.dataPoint.minimumValue Integer This annotation specifies the minimum value of a threshold.
UI.dataPoint.referencePeriod All UI.dataPoint.referencePeriod annotations are optional. You either use UI.dataPoint.referencePeriod.description, or UI.dataPoint.referencePeriod.start and UI.dataPoint.referencePeriod.end.
UI.dataPoint.referencePeriod.description String (120) This annotation describes the business period of evaluation, for example "Oct 2012". Typical patterns are calendar dates or fiscal dates.
UI.dataPoint.referencePeriod.end elementRef This annotation contains a reference to the end date of the reference period.
UI.dataPoint.referencePeriod.start This annotation contains a reference to the start date of the reference period.
UI.dataPoint.responsible elementRef This annotation contains an association to an entity that is annotated with @Semantics.name, @Semantics.eMail, @Semantics.telephone, @Semantics.address, or @Semantics.organization.

For more information, see Person Responsible and Reference Period.

For an overview of @Semantics annotations, see Semantics Annotations.

Note

If you use This annotation, you cannot use element UI.dataPoint.responsibleName.

UI.dataPoint.responsibleName String (120) This annotation can be used as an alternative to the responsible element. Only the name of the responsible person can be specified here.
Note

If you use This annotation, you cannot use element UI.dataPoint.responsible.

UI.dataPoint.targetValue DecimalFloat This annotation specifies the target value of the data point as a constant element.
Example You create a KPI in which you specify a certain revenue that needs to be reached at the end of a specific year. This is the UI.dataPoint.targetValue that is a static value.
Note

If you use This annotation, do not use the element UI.dataPoint.targetValueElement.

UI.dataPoint.targetValueElement elementRef This annotation specifies the target value of the data point as a reference to an element.
Example You create a KPI that references to different revenues for different regions that need to be reached at the end of a specific year for each region. This is the UI.dataPoint.targetValueElement that is a dynamic value depending on the region you want to look at.
Note

If you use This annotation, do not use the element UI.dataPoint.targetValue.

UI.dataPoint.title String (60) This annotation contains the title of the data point. The element can be omitted only if the @EndUserText.label is specified. The element is mandatory.
Example You can display a KPI using the dataPoint annotation. The title of this KPI can be displayed using the UI.dataPoint.title annotation.
UI.dataPoint.trend elementRef reference to an element; valid element values are 1, 2, 3, 4, and 5.
  • 1 = StrongUp (arrow up)
  • 2 = Up (arrow diagonically up)
  • 3 = Sideways (horizontal arrow)
  • 4 = Down (arrow diagonically down)
  • 5 = StrongDown (arrow down)

For more information, see Trends.

UI.dataPoint.trendCalculation Annotations belonging to UI.dataPoint.trendCalculation can be used as an alternative to specifying the trend in the trend element. The trend can be calculated based on the values of the trendCalculation annotations.
UI.dataPoint.trendCalculation.downDifference DecimalFloat This annotation contains a constant value specifying a difference that results in a down-trend.
Note

If you use This annotation, you cannot use element UI.dataPoint.trendCalculation.downDifferenceElement.

UI.dataPoint.trendCalculation.downDifferenceElement elementRef This annotation contains a referenced value specifying a difference that results in a down-trend.
Note

If you use This annotation, you cannot use element UI.dataPoint.trendCalculation.downDifference.

UI.dataPoint.trendCalculation.isRelativeDifference Boolean default false This annotation expresses if the following values are absolute differences or relative differences.
Example Your reference value is 10, and your current value is 12. The absolute difference of these two values is 2, and the relative difference of these two values is 1.2.
UI.dataPoint.trendCalculation.referenceValue elementRef This annotation specifies the reference value for the trend calculation as a reference to an element.
UI.dataPoint.trendCalculation.strongDownDifference DecimalFloat This annotation contains a constant value specifying a difference that results in a strong down-trend.
Note

If you use This annotation, you cannot use element UI.dataPoint.trendCalculation.strongDownDifferenceElement.

UI.dataPoint.trendCalculation.strongDownDifferenceElement elementRef This annotation contains a referenced value specifying a difference that results in a strong down-trend.
Note

If you use This annotation, you cannot use element UI.dataPoint.trendCalculation.strongDownDifference.

UI.dataPoint.trendCalculation.strongUpDifference DecimalFloat This annotation contains a constant value specifying a difference that results in a strong up-trend.
Note

If you use This annotation, you cannot use element UI.dataPoint.trendCalculation.strongUpDifferenceElement.

UI.dataPoint.trendCalculation.strongUpDifferenceElement elementRef This annotation contains a referenced value specifying a difference that results in a strong up-trend.
Note

If you use This annotation, you cannot use element UI.dataPoint.trendCalculation.strongUpDifference.

UI.dataPoint.trendCalculation.upDifference DecimalFloat This annotation contains a constant value specifying a difference that results in an up-trend.
Note

If you use This annotation, you cannot use element UI.dataPoint.trendCalculation.upDifferenceElement.

UI.dataPoint.trendCalculation.upDifferenceElement elementRef This annotation contains a referenced value specifying a difference that results in an up-trend.
Note

If you use This annotation, you cannot use element UI.dataPoint.trendCalculation.upDifference.

UI.dataPoint.valueFormat All UI.dataPoint.valueFormat annotations are optional. For more information about value formats, see Person Responsible and Reference Period.
UI.dataPoint.valueFormat.numberOfFractionalDigits Integer This annotation contains the number of fractional digits to be displayed.
Example If the element value is 1, one decimal place is rendered, for example, 34.5.
.
UI.dataPoint.valueFormat.scaleFactor DecimalFloat This annotation contains the scale factor for the value.
Example A value 1000 displayed with scaleFactor = 1000 is displayed as 1k.
UI.dataPoint.visualization

Description:This annotation defines the preferred visualization of a data point.

Values:

String enum

The following enumerations are provided:

Value Description
NUMBER A data point is visualized as a number.
BULLET_CHART A data point is visualized as a bullet chart.
Note

This visualization type requires the annotation UI.dataPoint.targetValue.

DONUT A data point is visualized as a donut chart.
Note

This visualization type requires the annotation UI.dataPoint.targetValue.

PROGRESS A data point is visualized as a progress indicator.
Note

This visualization type requires the annotation UI.dataPoint.targetValue.

RATING A data point is visualized as partly or completely filled symbols such as stars or hearts.
Note

This visualization type requires the annotation UI.dataPoint.targetValue.

Annotations belonging to UI.fieldGroup is an ordered collection of data fields with a label for the group. UI.fieldGroup annotations are used to represent parts of a single data instance in a form.

Scope: [ELEMENT]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Values: array of

UI.fieldGroup.criticality elementRef This annotation can be specified if the field group type is STANDARD. This annotation references to another element that has the values 0, 1, 2, or 3. The criticality value Neutral is reflected by the value 0, the criticality value Negative is reflected by the value 1, the criticality value Critical is reflected by the value 2, and the criticality value Positive is reflected by the value 3.

For more information, see Criticality.

UI.fieldGroup.dataAction String This annotation can be used if the field group type is FOR_ACTION. The element references the technial name of an action of the Business Object Processing Framework (BOPF). The string pattern is BOPF:<technical name of action in BOPF>.
UI.fieldGroup.exclude Boolean default true

This annotation allows excluding the element from the OData annotation on the derived view by setting it to true. The element is optional.

For more information, see Inheritance of Annotations

UI.fieldGroup.groupLabel String (60) This annotation contains language-dependent text that is used as label for the field group. The first occurrence for a given qualifier wins. Other occurrences for the same qualifier are redundant. The element is optional.
UI.fieldGroup.iconURL String This annotation contains the URL to an icon image. This annotation is optional.
UI.fieldGroup.importance

This annotation expresses the importance of dataFields or other annotations. The element can be used, for example, in dynamic rendering approaches with responsive design patterns.

Example You defined several field groups for an item's object view floorplan. The field groups that need to be displayed always, get importance HIGH. This ensures that these field groups are displayed on the page even when the page is rendered on a small display.

If no importance is defined, the field group item is treated like having importance LOW.

Values:

String

The following enumerations are provided:

Value Description
HIGH -
MEDIUM -
LOW -
UI.fieldGroup.invocationGrouping

This annotation expresses how multiple invocations of the same action on multiple instances are grouped. This annotation is optional. This annotation needs to be specified if you use UI.fieldGroup.type of type FOR_ACTION.

Values:

String enum

The following enumerations are provided:

Value Description
ISOLATED Default
Describes the error handling when an action cannot be executed on all selected instances:
  • The action is executed on all instances except for instance on which the action cannot be executed.
    Example A user selects five items in a list and wants to copy them. One item cannot be copied. This item will not be copied, the other four items are copied.
CHANGE_SET Describes the error handling when an action cannot be executed on all selected instances:
  • If an action cannot be executed on one of the selected instances, the action is executed on none of the selected instances.
    Example A user selects five items in a list and wants to copy them. One item cannot be copied. None of the selected items are copied.
UI.fieldGroup.label String (60) This annotation contains a language-dependent text that can be used for labeling a group of fields.

If omitted, the label of the annotated element, or the label of the element referenced via the value is used. The element is optional.

UI.fieldGroup.position DecimalFloat With This annotation you specify the order of field groups. This annotation is mandatory.
Example You can specify the sequence in which field groups are displayed on an item's object view floorplan.
UI.fieldGroup.qualifier String (120) This annotation is used to group and uniquely identify annotations. You need to specify a qualifier as name of a field group to ensure that the correct field group can be referenced by the UI.
UI.fieldGroup.semanticObjectAction String This annotation can be used in the field group type is FOR_INTENT_BASED_NAVIGATION or WITH_INTENT_BASED_NAVIGATION. This annotation refers to the name of an action on the semantic object. The semantic object is taken from @Consumption.semanticObject or derived via an association from the defining view.
UI.fieldGroup.targetElement elementRef This annotation represents the path to an element of an associated CDS view. The path is converted to an OData NavigationPropertyPath. Using This annotation, you can link from the header part of an object view floorplan to a target element. You need to specify UI.fieldGroup.targetElement when you use the annotation UI.fieldGroup.type of type WITH_NAVIGATION_PATH. You might, for example, provide background information to an item that is opened on the object view floorplan.
UI.fieldGroup.type

This enumeration annotation exactly specifies what type of the type hierarchy is used. The value of the enumeration type determines which CDS elements are required or available.

Values:

String

The following enumerations are provided:

Value Description
FOR_ACTION Maps to DataFieldForAction.

DataFieldForAction is based on DataField, and defines an app-specific action. For example, a button is rendered with the text of the datafield label.

For more information, see Actions.

When you use this type, you can use the following elements:
  • label
  • invocationGrouping
When you use this type, you must use the following elements:
  • dataAction
AS_ADDRESS

Maps to DataFieldForAnnotation.

DataFieldForAnnotation is used to refer to other annotations using the Edm.AnnotationPath abstract type. The annotation path must end in vCard.Address or UI.DataPoint.

When you use this type, you can use the following elements:
  • label
  • value
AS_DATAPOINT

Maps to DataFieldForAnnotation.

For more information, see DataField Type: #AS_DATAPOINT.

When you use this type, you can use the following elements:
  • label
  • value
FOR_INTENT_BASED_NAVIGATION Maps to DataFieldForIntentBasedNavigation.

DataFieldForIntentBasedNavigation is used to execute an action on a semantic object.

For more information, see Based on Intent.

When you use this type, you can use the following elements:
  • label
When you use this type, you must use the following elements:
  • semanticObjectAction
STANDARD Default

Maps to standard DataField. You use this type if you want a field to be displayed without any additional functionality.

A standard DataField refers to a property of the OData service used.

When you use this type, you can use the following elements:
  • label
  • value
  • criticality
WITH_NAVIGATION_PATH Maps to DataFieldWithNavigationPath.

DataFieldWithNavigationPath is based on DataField, and defines a label-value pair that refers to a property of the OData service used. The definition consists of a link to navigate to a new target, based on a navigation property provided by the OData service, or defined in the annotation file.

For more information, see With Navigation Path.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • targetElement
WITH_URL Maps to DataFieldWithURL.

DataFieldWithURL is based on DataField, and defines a label–value pair that refers a property of the OData service used. The definition consists a URL to navigate to a new target, that is a URL.

For more information, see With URL.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • url
WITH_INTENT_BASED_NAVIGATION Maps to DataFieldWithIntentBasedNavigation.

DataFieldWithIntentBasedNavigation is tied to a data value that should be rendered as a hyperlink.

This annotation is displayed like the type WITH_URL, but its behavior is similar to type FOR_INTENT_BASED_NAVIGATION. For more information, see With URL and Based on Intent.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • semanticObjectAction
UI.fieldGroup.url elementRef This annotation represents the path to a structural element that contains a navigation URL. You need to specify UI.fieldGroup.url when you use the annotation UI.fieldGroup.type of type WITH_URL.
UI.fieldGroup.value elementRef This annotation refers to a value.
Type AS_ADDRESS:
  • Value element must not be used when a structural element is annotated. Use instead @com.sap.vocabularies.Communication.v1.Address (or a shorter alias-qualified name) as value.
  • Value element must be used when an element of an associated CDS view is annotated. A value of '.' refers to @Semantics.address on the view that is directly associated.

    If you want to reference @Semantics.address on a view that is indirectly associated, use a path starting with a dot as value.

All other types:
  • Value element must not be used when an element is annotated, in this case the annotated element is the value.
  • Value element must be used when an association is annotated. The value is a path to an element of the associated view.

Annotations belonging to UI.headerInfo describe an entity, its title, and an optional short description, the name of its entity in singular and plural form, and optional image URLs for the individual entity.

Scope: [VIEW, TABLE_FUNCTION, ENTITY, ANNOTATE_VIEW]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Values:

UI.headerInfo.description Annotations belonging to UI.headerInfo.description represent a property of type UI.DataFieldAbstract restricted to the types STANDARD, WITH_NAVIGATION_PATH, and WITH_URL. UI.headerInfo.description annotations are optional.

The OData annotations DataFieldAbstract are the basis for all DataField types and represent values with optional labels that can trigger navigation to related data, or execute actions on data.

UI.headerInfo.description.criticality elementRef This annotation can be specified if the type of the header info description is STANDARD.This annotation references to another element that has the values 0, 1, 2, or 3. The criticality value Neutral is reflected by the value 0, the criticality value Negative is reflected by the value 1, the criticality value Critical is reflected by the value 2, and the criticality value Positive is reflected by the value 3.

For more information, see Criticality.

UI.headerInfo.description.iconURL String This annotation contains the URL to an icon image. This annotation is optional.
UI.headerInfo.description.label String (60) This annotation contains a language-dependent text that can be used for descriptions in page headers of object-page floorplans. Object-page floorplans are SAP Fiori floorplan to view, edit and create objects.

If omitted, the label of the annotated element, or the label of the element referenced via the value is used. The element is optional.

UI.headerInfo.description.targetElement elementRef This annotation represents the path to an element of an associated CDS view. The path is converted to an OData NavigationPropertyPath. Using This annotation, you can link from the header part of an object view floorplan to a target element. You need to specify UI.headerInfo.description.targetElement when you use the annotation UI.headerInfo.description.type of type WITH_NAVIGATION_PATH. You might, for example, provide background information to an item that is opened on the object view floorplan.
UI.headerInfo.description.type

This enumeration annotation exactly specifies what type of the type hierarchy is used. The value of the enumeration type determines which CDS elements are required or available.

Values:

String

The following enumerations are provided:

Value Description
STANDARD Default

Maps to standard DataField. You use this type if you want a field to be displayed without any additional functionality.

A standard DataField refers to a property of the OData service used.

When you use this type, you can use the following elements:
  • label
  • value
  • criticality
WITH_NAVIGATION_PATH Maps to DataFieldWithNavigationPath.

DataFieldWithNavigationPath is based on DataField, and defines a label-value pair that refers to a property of the OData service used. The definition consists of a link to navigate to a new target, based on a navigation property provided by the OData service, or defined in the annotation file.

For more information, see With Navigation Path.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • targetElement
WITH_URL Maps to DataFieldWithURL.

DataFieldWithURL is based on DataField, and defines a label–value pair that refers a property of the OData service used. The definition consists a URL to navigate to a new target, that is a URL.

For more information, see With URL.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • url
WITH_INTENT_BASED_NAVIGATION Maps to DataFieldWithIntentBasedNavigation.

DataFieldWithIntentBasedNavigation is tied to a data value that should be rendered as a hyperlink

This annotation is displayed like the type WITH_URL, but its behavior is similar to type FOR_INTENT_BASED_NAVIGATION. For more information, see With URL and Based on Intent.

When you use this type, you can use the following elements:
  • label
When you use this type, you must use the following elements:
  • semanticObjectAction
  • value
UI.headerInfo.description.url elementRef This annotation represents the path to a structural element that contains a navigation URL. You need to specify UI.headerInfo.description.url when you use the annotation UI.headerInfo.description.type of type WITH_URL.
UI.headerInfo.description.value This annotation refers to a value. If you refer to a value that is in the same view, specify the element name. If you use an association to refer to a value, specify the path to the element.
UI.headerInfo.imageUrl elementRef This annotation represents a path to an element containing the URL of an image representing the entity instance. The path is optional.
Example When users open an item from an initial page, they can see an image related to that item as part of the item's object view floorplan.
UI.headerInfo.title Annotations belonging to UI.headerInfo.title represent a property of type UI.DataFieldAbstract restricted to the types STANDARD, WITH_NAVIGATION_PATH, WITH_URL, and WITH_INTENT_BASED_NAVIGATION. @UI.headerInfo.title annotations are mandatory and are usually used to represent the title of an item on the header of an item's object page..

The OData annotations DataFieldAbstract are the basis for all DataField types and represent values with optional labels that can trigger navigation to related data, or execute actions on data.

UI.headerInfo.title.criticality elementRef This annotation can be specified if the type of the header info title is STANDARD. This annotation is usually used for the header of an object view floorplan. This annotation references to another element that has the values 0, 1, 2, or 3. The criticality value Neutral is reflected by the value 0, the criticality value Negative is reflected by the value 1, the criticality value Critical is reflected by the value 2, and the criticality value Positive is reflected by the value 3.

For more information, see Criticality.

UI.headerInfo.title.iconURL String This annotation contains the URL to an icon image. This annotation is optional.
UI.headerInfo.title.label String (60) This annotation contains a language-dependent text that can be used for titles in page headers of object-page floorplans. Object-page floorplans are SAP Fiori floorplan to view, edit and create objects.

If omitted, the label of the annotated element, or the label of the element referenced via the value is used. The element is optional.

UI.headerInfo.title.targetElement elementRef This annotation represents the path to an element of an associated CDS view. The path is converted to an OData NavigationPropertyPath. Using This annotation, you can link from the header part of an object view floorplan to a target element. You need to specify UI.headerInfo.title.targetElement when you use the annotation UI.headerInfo.title.type of type WITH_NAVIGATION_PATH. You might, for example, provide background information to an item that is opened on the object view floorplan.
UI.headerInfo.title.type

This enumeration annotation exactly specifies what type of the type hierarchy is used. The value of the enumeration type determines which CDS elements are required or available.

Values:

String

The following enumerations are provided:

Value Description
STANDARD Default

Maps to standard DataField. You use this type if you want a field to be displayed without any additional functionality.

A standard DataField refers to a property of the OData service used.

When you use this type, you can use the following elements:
  • label
  • value
  • criticality
WITH_NAVIGATION_PATH Maps to DataFieldWithNavigationPath.

DataFieldWithNavigationPath is based on DataField, and defines a label-value pair that refers to a property of the OData service used. The definition consists of a link to navigate to a new target, based on a navigation property provided by the OData service, or defined in the annotation file.

For more information, see With Navigation Path.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • targetElement
WITH_URL Maps to DataFieldWithURL.

DataFieldWithURL is based on DataField, and defines a label–value pair that refers a property of the OData service used. The definition consists a URL to navigate to a new target, that is a URL.

For more information, see With URL.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • url
WITH_INTENT_BASED_NAVIGATION Maps to DataFieldWithIntentBasedNavigation.

DataFieldWithIntentBasedNavigation is tied to a data value that should be rendered as a hyperlink.

This annotation is displayed like the type WITH_URL, but its behavior is similar to type FOR_INTENT_BASED_NAVIGATION. For more information, see With URL and Based on Intent.

When you use this type, you can use the following elements:
  • label
When you use this type, you must use the following elements:
  • semanticObjectAction
  • value
UI.headerInfo.title.url elementRef This annotation represents the path to a structural element that contains a navigation URL. You need to specify UI.headerInfo.title.url when you use the annotation UI.headerInfo.title.type of type WITH_URL.
UI.headerInfo.title.value This annotation refers to a value. If you refer to a value that is in the same view, specify the element name. If you use an association to refer to a value, specify the path to the element.
UI.headerInfo.typeImageUrl String This annotation contains the URL of an image representing an entity. The element is is optional.
Example When users open a SAP Fiori application, they can see an image related to the entity type to which all items displayed on that page belong to.
UI.headerInfo.typeName String(60) This annotation represents the title of an object page, for example. The element is required and can be omitted only when the @EndUserText.label is specified on view level.
UI.headerInfo.typeNamePlural This annotation represents a list title, for example. The element is mandatory.
UI.hidden

This annotation allows to show or hide data fields based on the state of the data instance. For more information, see Field Hiding.

Scope: [ELEMENT]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Value: Boolean default true

Annotation belonging to UI.identification represent an ordered collection of specific data fields that together with headerInfo identifies an entity to an end user.
Example This annotation is displayed in the General Information section in the body of the object view floorplan of an item, for example.

Scope: [ELEMENT]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Values: array of

UI.identification.criticality elementRef This annotation can be specified if the identification type is STANDARD.This annotation references to another element that has the values 0, 1, 2, or 3. The criticality value Neutral is reflected by the value 0, the criticality value Negative is reflected by the value 1, the criticality value Critical is reflected by the value 2, and the criticality value Positive is reflected by the value 3.

For more information, see Criticality.

UI.identification.dataAction String This annotation can be used if the identification type is FOR_ACTION. The element references the technial name of an action of the Business Object Processing Framework (BOPF). The string pattern is BOPF:<technical name of action in BOPF>.
UI.identification.exclude Boolean default true

This annotation allows excluding the element from the OData annotation on the derived view by setting it to true. The element is optional.

For more information, see Inheritance of Annotations

UI.identification.iconURL String This annotation contains the URL to an icon image. This annotation is optional. This could be a telephone icon or email icon, for example.
UI.identification.importance

This annotation expresses the importance of dataFields or other annotations. The element can be used, for example, in dynamic rendering approaches with responsive design patterns.

Example You defined several entries for the General Information section for an item's object view floorplan. The entries that need to be displayed always, get importance HIGH. This ensures that these entries are displayed in the section when this section is rendered on a small display.

If no importance is defined, the identification item is treated like having importance LOW.

Values:

String

The following enumerations are provided:

Value Description
HIGH -
MEDIUM -
LOW -
UI.identification.invocationGrouping

This annotation expresses how multiple invocations of the same action on multiple instances are grouped. This annotation is optional. This annotation needs to be specified if you use UI.identification.type of type FOR_ACTION.

Values:

String enum

The following enumerations are provided:

Value Description
ISOLATED Default
Describes the error handling when an action cannot be executed on all selected instances:
  • The action is executed on all instances except for instance on which the action cannot be executed.
    Example A user selects five items in a list and wants to copy them. One item cannot be copied. This item will not be copied, the other four items are copied.
CHANGE_SET Describes the error handling when an action cannot be executed on all selected instances:
  • If an action cannot be executed on one of the selected instances, the action is executed on none of the selected instances.
    Example A user selects five items in a list and wants to copy them. One item cannot be copied. None of the selected items are copied.
UI.identification.label String (60) This annotation contains a language-dependent text that can be used in the body section of an item's object view floorplan.

If omitted, the label of the annotated element, or the label of the element referenced via the value is used. The element is optional.

UI.identification.position DecimalFloat With This annotation you specify the order of entries on the object view floorplan. This annotation is mandatory.
Example When users open the object view floorplan of an item, they can see a General Information section. You can specify in which sequence general information about this item are displayed in the section.
UI.identification.semanticObjectAction String This annotation can be used in the identification type is FOR_INTENT_BASED_NAVIGATION or WITH_INTENT_BASED_NAVIGATION. This annotation refers to the name of an action on the semantic object. The semantic object is taken from @Consumption.semanticObject or derived via an association from the defining view.
UI.identification.targetElement elementRef This annotation represents the path to an element of an associated CDS view. The path is converted to an OData NavigationPropertyPath. Using This annotation, you can link from the header part of an object view floorplan to a target element. You need to specify UI.identification.targetElement when you use the annotation UI.identification.type of type WITH_NAVIGATION_PATH. You might, for example, provide background information to an item that is opened on the object view floorplan.
UI.identification.type

This enumeration annotation exactly specifies what type of the type hierarchy is used. The value of the enumeration type determines which CDS elements are required or available.

Values:

String

The following enumerations are provided:

Value Description
FOR_ACTION Maps to DataFieldForAction.

DataFieldForAction is based on DataField, and defines an app-specific action. For example, a button is rendered with the text of the datafield label.

For more information, see Actions.

When you use this type, you can use the following elements:
  • label
  • invocationGrouping
When you use this type, you must use the following elements:
  • dataAction
AS_ADDRESS

Maps to DataFieldForAnnotation.

DataFieldForAnnotation is used to refer to other annotations using the Edm.AnnotationPath abstract type. The annotation path must end in vCard.Address or UI.DataPoint.

When you use this type, you can use the following elements:
  • label
  • value
AS_DATAPOINT

Maps to DataFieldForAnnotation.

For more information, see DataField Type: #AS_DATAPOINT.

When you use this type, you can use the following elements:
  • label
  • value
FOR_INTENT_BASED_NAVIGATION Maps to DataFieldForIntentBasedNavigation.

DataFieldForIntentBasedNavigation is used to execute an action on a semantic object.

For more information, see Based on Intent.

When you use this type, you can use the following elements:
  • label
When you use this type, you must use the following elements:
  • semanticObjectAction
STANDARD Default

Maps to standard DataField. You use this type if you want a field to be displayed without any additional functionality.

A standard DataField refers to a property of the OData service used.

When you use this type, you can use the following elements:
  • label
  • value
  • criticality
WITH_NAVIGATION_PATH Maps to DataFieldWithNavigationPath.

DataFieldWithNavigationPath is based on DataField, and defines a label-value pair that refers to a property of the OData service used. The definition consists of a link to navigate to a new target, based on a navigation property provided by the OData service, or defined in the annotation file.

For more information, see With Navigation Path.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • targetElement
WITH_URL Maps to DataFieldWithURL.

DataFieldWithURL is based on DataField, and defines a label–value pair that refers a property of the OData service used. The definition consists a URL to navigate to a new target, that is a URL.

For more information, see With URL.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • url
WITH_INTENT_BASED_NAVIGATION Maps to DataFieldWithIntentBasedNavigation.

DataFieldWithIntentBasedNavigation is tied to a data value that should be rendered as a hyperlink.

This annotation is displayed like the type WITH_URL, but its behavior is similar to type FOR_INTENT_BASED_NAVIGATION. For more information, see With URL and Based on Intent.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • semanticObjectAction
UI.identification.url elementRef This annotation represents the path to a structural element that contains a navigation URL. You need to specify UI.identification.url when you use the annotation UI.identification.type of type WITH_URL.
UI.identification.value elementRef This annotation refers to a value.
Type AS_ADDRESS:
  • Value element must not be used when a structural element is annotated. Use instead @com.sap.vocabularies.Communication.v1.Address (or a shorter alias-qualified name) as value.
  • Value element must be used when an element of an associated CDS view is annotated. A value of '.' refers to @Semantics.address on the view that is directly associated.

    If you want to reference @Semantics.address on a view that is indirectly associated, use a path starting with a dot as value.

All other types:
  • Value element must not be used when an element is annotated, in this case the annotated element is the value.
  • Value element must be used when an association is annotated. The value is a path to an element of the associated view.

Annotations belonging to UI.lineItem represent an ordered collection of data fields that is used to represent data from multiple data instances in a table or a list. For more information, see Columns.

Scope: [ELEMENT]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Values: array of

UI.lineItem.criticality elementRef This annotation can be specified if the line item type is STANDARD. This annotation references to another element that has the values 0, 1, 2, or 3. The criticality value Neutral is reflected by the value 0, the criticality value Negative is reflected by the value 1, the criticality value Critical is reflected by the value 2, and the criticality value Positive is reflected by the value 3.

For more information, see Criticality.

UI.lineItem.dataAction String This annotation can be used if the line item type is FOR_ACTION. The element references the technial name of an action of the Business Object Processing Framework (BOPF), for example. In this case, the string pattern is BOPF:<technical name of action in BOPF>.
UI.lineItem.exclude Boolean default true

This annotation allows excluding the element from the OData annotation on the derived view by setting it to true. The element is optional.

For more information, see Inheritance of Annotations

UI.lineItem.iconURL String This annotation contains the URL to an icon image. This annotation is optional.
UI.lineItem.importance
This annotation expresses the importance of dataFields or other annotations. The element can be used, for example, in dynamic rendering approaches with responsive design patterns.
Example You defined a table with several columns. The columns that need to be displayed always, get importance HIGH. This ensures that these columns are displayed in a table when this table is rendered on a small display.

If no importance is defined, the line item is treated like having importance LOW.

Values:

String

The following enumerations are provided:

Value Description
HIGH -
MEDIUM -
LOW -
UI.lineItem.invocationGrouping

This annotation expresses how multiple invocations of the same action on multiple instances are grouped. This annotation is optional. This annotation needs to be specified if you use UI.lineItem.type of type FOR_ACTION.

Values:

String enum

The following enumerations are provided:

Value Description
ISOLATED Default
Describes the error handling when an action cannot be executed on all selected instances:
  • The action is executed on all instances except for instance on which the action cannot be executed.
    Example A user selects five items in a list and wants to copy them. One item cannot be copied. This item will not be copied, the other four items are copied.
CHANGE_SET Describes the error handling when an action cannot be executed on all selected instances:
  • If an action cannot be executed on one of the selected instances, the action is executed on none of the selected instances.
    Example A user selects five items in a list and wants to copy them. One item cannot be copied. None of the selected items are copied.
UI.lineItem.label String (60) This annotation contains a language-dependent text that can be used for column titles in tables headers.

If omitted, the label of the annotated element, or the label of the element referenced via the value is used. The element is optional.

UI.lineItem.position DecimalFloat With This annotation you specify the order of the columns of a list. This annotation is mandatory.
UI.lineItem.qualifier String (120) This annotation is used to group and uniquely identify annotations.

If you want to use more than one table, you need a qualifier to distinguish them on the UI.

UI.lineItem.semanticObjectAction String This annotation refers to the name of an action on the semantic object. The semantic object is taken from @Consumption.semanticObject or derived via an association from the defining view.
UI.lineItem.targetElement elementRef This annotation represents the path to an element of an associated CDS view. The path is converted to an OData NavigationPropertyPath. Using This annotation, you can link from the header part of an object view floorplan to a target element. You need to specify UI.lineItem.targetElement when you use the annotation UI.lineItem.type of type WITH_NAVIGATION_PATH. You might, for example, provide background information to an item that is opened on the object view floorplan.
UI.lineItem.type

This enumeration annotation exactly specifies what type of the type hierarchy is used. The value of the enumeration type determines which CDS elements are required or available.

Values:

String

The following enumerations are provided:

Value Description
FOR_ACTION Maps to DataFieldForAction.

DataFieldForAction is based on DataField, and defines an app-specific action. For example, a button is rendered with the text of the datafield label.

For more information, see Actions.

When you use this type, you can use the following elements:
  • label
  • invocationGrouping
When you use this type, you must use the following elements:
  • dataAction
AS_ADDRESS

Maps to DataFieldForAnnotation.

DataFieldForAnnotation is used to refer to other annotations using the Edm.AnnotationPath abstract type. The annotation path must end in vCard.Address or UI.DataPoint.

When you use this type, you can use the following elements:
  • label
  • value
AS_DATAPOINT

Maps to DataFieldForAnnotation.

For more information, see DataField Type: #AS_DATAPOINT.

When you use this type, you can use the following elements:
  • label
  • value
FOR_INTENT_BASED_NAVIGATION Maps to DataFieldForIntentBasedNavigation.

DataFieldForIntentBasedNavigation is used to execute an action on a semantic object.

For more information, see Based on Intent.

When you use this type, you can use the following elements:
  • label
When you use this type, you must use the following elements:
  • semanticObjectAction
STANDARD Default

Maps to standard DataField. You use this type if you want a field to be displayed without any additional functionality.

A standard DataField refers to a property of the OData service used.

When you use this type, you can use the following elements:
  • label
  • value
  • criticality
WITH_NAVIGATION_PATH Maps to DataFieldWithNavigationPath.

DataFieldWithNavigationPath is based on DataField, and defines a label-value pair that refers to a property of the OData service used. The definition consists of a link to navigate to a new target, based on a navigation property provided by the OData service, or defined in the annotation file.

For more information, see With Navigation Path.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • targetElement
WITH_URL Maps to DataFieldWithURL.

DataFieldWithURL is based on DataField, and defines a label–value pair that refers a property of the OData service used. The definition consists a URL to navigate to a new target, that is a URL.

For more information, see With URL.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • url
WITH_INTENT_BASED_NAVIGATION Maps to DataFieldWithIntentBasedNavigation.

DataFieldWithIntentBasedNavigation is tied to a data value that should be rendered as a hyperlink.

This annotation is displayed like the type WITH_URL, but its behavior is similar to type FOR_INTENT_BASED_NAVIGATION. For more information, see With URL and Based on Intent.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • semanticObjectAction
UI.lineItem.url elementRef This annotation represents the path to a structural element that contains a navigation URL. You need to specify UI.lineItem.url when you use the annotation UI.lineItem.type of type WITH_URL.
UI.lineItem.value elementRef This annotation refers to a value.
Type AS_ADDRESS:
  • Value element must not be used when a structural element is annotated. Use instead @com.sap.vocabularies.Communication.v1.Address (or a shorter alias-qualified name) as value.
  • Value element must be used when an element of an associated CDS view is annotated. A value of '.' refers to @Semantics.address on the view that is directly associated.

    If you want to reference @Semantics.address on a view that is indirectly associated, use a path starting with a dot as value.

All other types:
  • Value element must not be used when an element is annotated, in this case the annotated element is the value.
  • Value element must be used when an association is annotated. The value is a path to an element of the associated view.
UI.masked

This annotation refers to, for example, passwords or pass phrases. The user interface may offer to show the value in clear text upon explicit user interaction. For more information, see Field Masking.

Scope: [ELEMENT]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Value: Boolean default true

UI.multiLineText

This annotation contains text that is rendered as multiple lines. For more information, see Multi-Line Text.

Scope: [ELEMENT]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Value: Boolean default true

Annotations belonging to UI.presentationVariant are used to define how the result of a queried collection of entities is shaped and how this result is displayed.

Scope: [VIEW, TABLE_FUNCTION, ENTITY, ANNOTATE_VIEW]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Values: array of

UI.presentationVariant.qualifier String (120) This annotation is used to group and uniquely identify annotations. You need to specify a qualifier as name of a presentation variant to ensure that the correct presentation variant can be referenced by the UI.
UI.presentationVariant.id This annotation contains an identifier to reference this instance from an external context.
UI.presentationVariant.text String (60) This annotation contains the language-dependent name of the presentation variant.
UI.presentationVariant.maxItems Integer This annotation defines the maximum number of items that should be included in the result.
UI.presentationVariant.sortOrder Annotations belonging to UI.presentationVariant.sortOrder represent a collection of sorting parameters that can be provided inline or by a reference to a Common.SortOrder annotation (syntax is identical to AnnotationPath).
UI.presentationVariant.sortOrder.by elementRef This annotation defines by what property queried collections can be sorted.
UI.presentationVariant.sortOrder.direction

Description:This annotation defines the sorting direction of queried collections.

Values:

String(4) enum

The following enumerations are provided:

Value Description
ASC = 'ASC' Ascending sorting direction
DESC = 'DESC' Descending sorting direction
UI.presentationVariant.groupBy array of elementRef This annotation defines a sequence of groupable properties (p1, p2, pn) that define how the result of a queried collection is composed of instances that represent groups, one group for each combination of value properties in the queried collection.

The sequence specifies a certain level of aggregation for the queried collection, and every group instance provides aggregated values for properties that are aggregatable. Moreover, the series of sub-sequences, for example (p1), (p1, p2), ..., forms a leveled hierarchy that can be used in combination with the annotation UI.presentationVariant.initialExpansionLevel.

UI.presentationVariant.totalBy This annotation defines the sub-sequence q1, q2, qn of the properties p1, p2, pn specified in the annotation UI.presentationVariant.groupBy. With this, additional levels of aggregation are requested in addition to the most granular level defined by the annptation UI.presentationVariant.groupBy. Every element in the series of sub-sequences, for example (q1), (q1, q2), ..., introduces an additional aggregation level included in the result of the queried collection.
UI.presentationVariant.total This annotation contains aggregatable properties for which aggregated values are to be provided for the additional aggregation levels specified in the annotation UI.presentationVariant.totalBy.
UI.presentationVariant.includeGrandTotal Boolean default true This annotation specifies that the result of the queried collection includes a grand total for the properties specified in the annotation UI.presentationVariant.total.
UI.presentationVariant.initialExpansionLevel Integer This annotation contains the initial number of expansion levels of a hierarchy defined for the queried collection. The hierarchy can be implicitly imposed by the sequence of the annotation UI.presentationVariant.groupBy, or by an explicit hierarchy annotation.
UI.presentationVariant.requestAtLeast array of elementRef This annotation defines the properties that should always be included in the result of the queried collection.
UI.presentationVariant.visualizations Annotations belonging to UI.presentationVariant.visualizations represent a collection of available visualization types. The following types are supported:
  • UI.lineItem
  • UI.chart
  • UI.dataPoint
UI.presentationVariant.visualizations.type

Description:This annotation defines the representation type. For each type, only one single annotation is meaningful. Multiple instances of the same visualization type shall be modeled with different presentation variants. A reference to the annotation UI.lineItem should always be part of the collection (least common denominator for renderers). The first entry of the collection is the default visualization.

Values:

String enum

The following enumerations are provided:

Value Description
AS_LINEITEM The queried collection is visualized as line item.
AS_CHART The queried collection is visualized as chart.
AS_DATAPOINT The queried collection is visualized as data point.
UI.presentationVariant.visualizations.qualifier String(120) This annotation is used to group and uniquely identify annotations. You need to specify a qualifier as name of a visualization to ensure that the correct visualization can be referenced by the UI.
UI.presentationVariant.visualizations.element elementRef This annotation references the annotation UI.lineItem.

Annotations belonging to UI.selectionField allow filtering a list of data. UI.selectionField annotations are usually used in an initial page floorplan as filter bar.

Scope: [ELEMENT]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Values: array of

UI.selectionField.element elementRef Optional element reference
  • Must be used when an association is annotated, the value is a path to an element of the associated view. You use this option if you want to filter a table for a column that is not defined in your CDS view but in another CDS view.
    Example You define a sales order view in which you want to filter business partners for their country of origin. However, these country information are not maintained in the sales order view but in the business partner view.
  • Must not be used when a structured element is annotated, in this case the annotated element is the value.
UI.selectionField.exclude Boolean default true

This annotation allows excluding the element from the OData annotation on the derived view by setting it to true. The element is optional.

For more information, see Inheritance of Annotations

UI.selectionField.position DecimalFloat With This annotation you specify the order of selection fields that are used for filtering. This annotation is mandatory.
Example When users open a SAP Fiori application and see an overview of items, they might want to filter for a sepcific item type or creation date, for example. They can see selection fields for filtering above a list. You specify what selection field is displayed first, seconds, and so on.
UI.selectionField.qualifier String (120) This annotation is used to group and uniquely identify annotations. You need to specify a qualifier as name of a selection field to ensure that the correct selection field can be referenced by the UI.

Annotations belonging to UI.selectionPresentationVariant are used to bundle annotations of UI.presentationVariant and UI.selectionVariant.

Scope: [VIEW, TABLE_FUNCTION, ENTITY, ANNOTATE_VIEW]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Values: array of

UI.selectionPresentationVariant.qualifier String (120) This annotation is used to group and uniquely identify annotations. You need to specify a qualifier as name of a selection presentation variant to ensure that the correct selection presentation variant can be referenced by the UI.
UI.selectionPresentationVariant.id This annotation contains an identifier to reference this instance from an external context.
UI.selectionPresentationVariant.text String (60) This annotation contains the language-dependent name of the selection presentation variant.
UI.selectionPresentationVariant.selectionVariantQualifier String (120) This annotation is used to group and uniquely identify annotations. You need to specify a qualifier as name of a selection variant to ensure that the correct selection variant can be referenced by the selection presentation variant.
UI.selectionPresentationVariant.presentationVariantQualifier This annotation is used to group and uniquely identify annotations. You need to specify a qualifier as name of a presentation variant to ensure that the correct presentation variant can be referenced by the selection presentation variant.

Annotations belonging to UI.selectionVariant are used to denote a combination of parameters and filters used to query the annotated entity set.

Scope: [VIEW, TABLE_FUNCTION, ENTITY, ANNOTATE_VIEW]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Values: array of

UI.selectionVariant.qualifier String (120) This annotation is used to group and uniquely identify annotations. You need to specify a qualifier as name of a selection variant to ensure that the correct selection variant can be referenced by the UI.
UI.selectionVariant.id This annotation can contain an identifier to reference this instance from an external context.
UI.selectionVariant.text String (60) This annotation contains the language-dependent name of the selection variant.
UI.selectionVariant.parameters Annotations belonging to UI.selectionVariant.parameters represent a collection of parameters used to query the annotated entity set.
UI.selectionVariant.parameters.name parameterRef This annotation references to a parameter name.
UI.selectionVariant.parameters.value Expression This annotation contains a parameter value.
UI.selectionVariant.filter Expression This annotation contains a filter used to query the annotated entity set.

Annotations belonging to UI.statusInfo represent a list of abstract data fields that convey the status of an entity. UI.statusInfo annotations are usually used in the header section of an item's object view floorplan.

Scope: [ELEMENT]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Values: array of

UI.statusInfo.criticality elementRef This annotation can be specified if the status info type is STANDARD. This annotation references to another element that has the values 0, 1, 2, or 3. The criticality value Neutral is reflected by the value 0, the criticality value Negative is reflected by the value 1, the criticality value Critical is reflected by the value 2, and the criticality value Positive is reflected by the value 3.

For more information, see Criticality.

UI.statusInfo.dataAction String This annotation can be used if the status info type is FOR_ACTION. The element references the technial name of an action of the Business Object Processing Framework (BOPF). The string pattern is BOPF:<technical name of action in BOPF>.
UI.statusInfo.exclude Boolean default true

This annotation allows excluding the element from the OData annotation on the derived view by setting it to true. The element is optional.

For more information, see Inheritance of Annotations

UI.statusInfo.iconURL String This annotation contains the URL to an icon image. This annotation is optional.
UI.statusInfo.importance

This annotation expresses the importance of dataFields or other annotations. The element can be used, for example, in dynamic rendering approaches with responsive design patterns.

Example You defined several statuses. The statuses that need to be displayed always, get importance HIGH. This ensures that these statuses are displayed in a table, for example, when this table is rendered on a small display.

If no importance is defined, the status info is treated like having importance LOW.

Values:

String

The following enumerations are provided:

Value Description
HIGH -
MEDIUM -
LOW -
UI.statusInfo.invocationGrouping

This annotation expresses how multiple invocations of the same action on multiple instances are grouped. This annotation is optional. This annotation needs to be specified if you use UI.statusInfo.type of type FOR_ACTION.

Values:

String enum

The following enumerations are provided:

Value Description
ISOLATED Default
Describes the error handling when an action cannot be executed on all selected instances:
  • The action is executed on all instances except for instance on which the action cannot be executed.
    Example A user selects five items in a list and wants to copy them. One item cannot be copied. This item will not be copied, the other four items are copied.
CHANGE_SET Describes the error handling when an action cannot be executed on all selected instances:
  • If an action cannot be executed on one of the selected instances, the action is executed on none of the selected instances.
    Example A user selects five items in a list and wants to copy them. One item cannot be copied. None of the selected items are copied.
UI.statusInfo.position DecimalFloat With This annotation you specify the order in which status information are displayed. This annotation is mandatory.
UI.statusInfo.semanticObjectAction String This annotation can be used in the status info type is FOR_INTENT_BASED_NAVIGATION or WITH_INTENT_BASED_NAVIGATION. This annotation refers to the name of an action on the semantic object. The semantic object is taken from @Consumption.semanticObject or derived via an association from the defining view.
UI.statusInfo.targetElement elementRef This annotation represents the path to an element of an associated CDS view. The path is converted to an OData NavigationPropertyPath. Using This annotation, you can link from the header part of an object view floorplan to a target element. You need to specify UI.statusInfo.targetElement when you use the annotation UI.statusInfo.type of type WITH_NAVIGATION_PATH. You might, for example, provide background information to an item that is opened on the object view floorplan.
UI.statusInfo.type

This enumeration annotation exactly specifies what type of the type hierarchy is used. The value of the enumeration type determines which CDS elements are required or available.

Values:

String

The following enumerations are provided:

Value Description
FOR_ACTION Maps to DataFieldForAction.

DataFieldForAction is based on DataField, and defines an app-specific action. For example, a button is rendered with the text of the datafield label.

For more information, see Actions.

When you use this type, you can use the following elements:
  • label
  • invocationGrouping
When you use this type, you must use the following elements:
  • dataAction
AS_ADDRESS

Maps to DataFieldForAnnotation.

DataFieldForAnnotation is used to refer to other annotations using the Edm.AnnotationPath abstract type. The annotation path must end in vCard.Address or UI.DataPoint.

When you use this type, you can use the following elements:
  • label
  • value
AS_CONTACT Maps to DataFieldForAnnotation.

DataFieldForAnnotation is used to refer to other annotations using the Edm.AnnotationPath abstract type. The annotation path must end in vCard.Address or UI.DataPoint.

When you use this type, you can use the following elements:
  • label
  • value
AS_DATAPOINT

Maps to DataFieldForAnnotation.

For more information, see DataField Type: #AS_DATAPOINT.

When you use this type, you can use the following elements:
  • label
  • value
FOR_INTENT_BASED_NAVIGATION Maps to DataFieldForIntentBasedNavigation.

DataFieldForIntentBasedNavigation is used to execute an action on a semantic object. The navigation intent is not tied to a data value.

For more information, see Based on Intent.

When you use this type, you can use the following elements:
  • label
When you use this type, you must use the following elements:
  • semanticObjectAction
STANDARD Default

Maps to standard DataField. You use this type if you want a field to be displayed without any additional functionality.

A standard DataField refers to a property of the OData service used.

When you use this type, you can use the following elements:
  • label
  • value
  • criticality
WITH_NAVIGATION_PATH Maps to DataFieldWithNavigationPath.

DataFieldWithNavigationPath is based on DataField, and defines a label-value pair that refers to a property of the OData service used. The definition consists of a link to navigate to a new target, based on a navigation property provided by the OData service, or defined in the annotation file.

For more information, see With Navigation Path.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • targetElement
WITH_URL Maps to DataFieldWithURL.

DataFieldWithURL is based on DataField, and defines a label–value pair that refers a property of the OData service used. The definition consists a URL to navigate to a new target, that is a URL.

For more information, see With URL.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • url
WITH_INTENT_BASED_NAVIGATION Maps to DataFieldWithIntentBasedNavigation.

DataFieldWithIntentBasedNavigation is tied to a data value that should be rendered as a hyperlink.

This annotation is displayed like the type WITH_URL, but its behavior is similar to type FOR_INTENT_BASED_NAVIGATION. For more information, see With URL and Based on Intent.

When you use this type, you can use the following elements:
  • label
  • value
When you use this type, you must use the following elements:
  • semanticObjectAction
UI.statusInfo.url elementRef This annotation represents the path to a structural element that contains a navigation URL. You need to specify UI.statusInfo.url when you use the annotation UI.statusInfo.type of type WITH_URL.
UI.statusInfo.value elementRef This annotation refers to a value.
Type AS_ADDRESS:
  • Value element must not be used when a structural element is annotated. Use instead @com.sap.vocabularies.Communication.v1.Address (or a shorter alias-qualified name) as value.
  • Value element must be used when an element of an associated CDS view is annotated. A value of '.' refers to @Semantics.address on the view that is directly associated.

    If you want to reference @Semantics.address on a view that is indirectly associated, use a path starting with a dot as value.

All other types:
  • Value element must not be used when an element is annotated, in this case the annotated element is the value.
  • Value element must be used when an association is annotated. The value is a path to an element of the associated view.
UI.textArrangement

Description: This annotation specifies the arrangement of code-text pairs.

Scope: [VIEW, ANNOTATE_VIEW, ELEMENT]

Evaluation Runtime (Engine): SADL: Translates CDS annotations into the corresponding OData annotations

Values:

String

The following enumerations are provided:

Value Description
TEXT_FIRST The text is displayed in front of the code.
Example English (EN)
TEXT_LAST The code is displayed in front of the text.
Example EN (English)
TEXT_ONLY The text is displayed without the code.
Example English
TEXT_SEPARATE The text and the code are displayed separately.
Example

Language (Code)

Language (Text)

EN

English

Examples

Example 1: @UI.headerInfo

In this example, the element @UI.headerInfo.typeNamePlural is used to define, what can be shown in the title of a table or list.

Sample Code
...
@UI.headerInfo: { typeNamePlural: 'Sales Orders' }
define view ZExample_SalesOrder as select from sepm_cds_sales_order as so {
...
}

Example 2: @UI.lineItem

The annotation @UI.lineItem is used to define what elements are shown in the table-columns.

Since the desired columns of a table depend on the use-case (an overview may require more fields than a value-help) several list-layouts can be defined, distinguished by a qualifier. If the CDS view contains analytical annotations, for example @DefaultAggregation, they are considered automatically. No additional UI annotations are required.

Sample Code
...
define view ZExample_SalesOrder as select from sepm_cds_sales_order as so {
    @UI.lineItem: [ { position: 10 }, { qualifier: 'ValueList', position: 10 } ]
    key so.sales_order_id as SalesOrder,

    @UI.lineItem: [ { position: 20 }, { qualifier: 'ValueList', position: 20 } ]
    so.customer.company_name as CompanyName,

    @UI.lineItem: [ { position: 30 } ]
    so.currency_code as CurrencyCode,

    @DefaultAggregation: #SUM
      @UI.lineItem: [ { position: 40 } ]
    so.gross_amount as GrossAmount
}

Example 3: @UI.selectionField

The annotation @UI.selectionField is used to enable specific elements for selection, for example using a filter bar.

If the CDS view is annotated as @Search.searchable or if a value help is available for the element, this is considered. No additional UI annotations are required to expose the search field or value help.

Sample Code
...
define view ZExample_SalesOrder as select from sepm_cds_sales_order as so {
    key so.sales_order_id as SalesOrder,

    @UI.selectionField: [ { position: 10 } ]
    so.customer.company_name as CompanyName,
...
}

Example 4: @UI.identification

The annotation @UI.Identification is used to define which elements are shown on a detail page.

Sample Code
...
define view ZExample_SalesOrder as select from sepm_cds_sales_order as so {
    @UI.identification: [ { position: 10 } ]
    key so.sales_order_id as SalesOrder,

    @UI.identification: [ { position: 20 } ]
    so.customer.company_name as CompanyName,

    @UI.identification: [ { position: 30 } ]
    so.currency_code as CurrencyCode,

    @UI.identification: [ { position: 40 } ]
    so.gross_amount as GrossAmount
}

Example 5: @UI.fieldGroup

The annotation @UI.fieldGroup is used to group several fields, for example, for sections of forms. Similar to the annotation @UI.lineItem, the different field groups have unique qualifiers.

Sample Code
define view ZExample_SalesOrder as select from sepm_cds_sales_order as so {
    @UI.identification: [ { qualifier: 'GeneralInformation', position: 10 } ]
    key so.sales_order_id as SalesOrder,

    @UI.identification: [ { qualifier: 'GeneralInformation', position: 20 } ]
    so.customer.company_name as CompanyName,

    @UI.identification: [ { qualifier: 'SalesData', position: 30 } ]
    so.currency_code as CurrencyCode,

    @UI.identification: [ { qualifier: 'SalesData', position: 40 } ]
    so.gross_amount as GrossAmount
}

Example 6:@UI.badge

The annotation @UI.badge represents the view of a business card. A badge can be considered as the combination of the annotations @UI.headerInfo and @UI.identification. The properties ImageUrl, TypeImageUrl, and Title correspond to the properties from the annotation @UI.HeaderInfo. In addition to the Title property, the properties HeadLine, MainInfo and SecondaryInfo of the same format can be specified.

Sample Code
@UI.badge: {
    title: {
        label: 'Sales Order',
        value: 'SalesOrderID' -- Reference to element in projection-list
    },
    headLine: {
        label: 'Customer',
        value: 'CompanyName' -- Reference to element in projection-list
    },
    mainInfo: {
        label: 'Gross Amount',
        value: 'GrossAmount' -- Reference to element in projection-list
    },
    secondaryInfo: {
        label: 'Billing Status',
        value: 'BillingStatus' -- Reference to element in projection-list
    }
}

define view ZExample_SalesOrder as select from sepm_cds_sales_order as so {
    key so.sales_order_id as SalesOrder,
    so.customer.company_name as CompanyName,
    so.gross_amount as GrossAmount,
    so.billing_status as BillingStatus,
...
}

Example 7: @UI.chart

The annotation @UI.chart is used to define the properties of a chart. The annotation is defined at view level and refers to the elements that are supposed to be used in the chart. Additionally, a title and description can be provided.

Sample Code
...
@UI.chart: {
    title: 'Gross Amount by Customer',
    description: 'Line-chart displaying the gross amount by customer',
    chartType: #LINE,
    dimensions: [ 'CompanyName' ], -- Reference to one element
    measures: [ 'GrossAmount' ] -- Reference to one or more elements
}

define view ZExample_SalesOrder as select from sepm_cds_sales_order as so {
    key so.sales_order_id as SalesOrder,
    so.customer.company_name as CompanyName,
    so.currency_code as CurrencyCode,

    @Semantics.amount.currencyCode: 'CurrencyCode'
    so.gross_amount as GrossAmount,
...
}

Example 8: @UI.hidden

The annotation @UI.hidden prevents fields from being displayed, leaving them available for client.

This is sensible if the CDS has technical keys, for example Guids, that have to be exposed to the OData service to work, but are usually not supposed to be displayed on the UI. Another use case are fields that are required in other calculations.

In the following example, a data point with precalculated criticality and trend is exposed. These fields are required in the client to calculate the corresponding values, but are not supposed to be displayed directly.

Sample Code
...
define view ZExample_SalesOrdersByCustomer as select from ... as so {
    @UI.hidden
    key so.buyer_guid as BuyerGuid,
...
    @UI.dataPoint: {
        criticality: 'AmountCriticality', -- Reference to element
        trend: 'AmountTrend', -- Reference to element
    }

    so.actual_amount as ActualAmount,

    @UI.hidden
    so.criticality as AmountCriticality,

    @UI.hidden
    so.trend as AmountTrend
}

Example 9: @UI.masked

The annotation @UI.masked marks a field that may contain sensitive data and should therefore not be displayed in clear text by the client.

This annotation does not influence how data is transferred. If a field is marked as @UI.masked, dataof this field is still transferred to the client like any other property.

Sample Code
...
define view Destination as select from ... {
    @UI.identification: [ { position: 10 } ]
    key DestinationID,
...
    @UI.identification: [ { position: 20 } ]
    AuthType, -- None, Basic, SSO, ...

    @UI.identification: [ { position: 30 } ]
    BasicAuthUserName,

    @UI.identification: [ { position: 40 } ]

    @UI.masked
    BasicAuthPassword,
...
}

Example 10:@UI.multiLineText

The annotation @UI.multiLineText marks a field, for example a description, that is supposed to be displayed by controls that support multiline-input, for example a text area.

Sample Code
...
define view Product as select from ... {
    @UI.identification: [ { position: 10 } ]
    key ProductID,

    @UI.identification: [ { position: 20 } ]
    ProductName,

    @UI.identification: [ { position: 30 } ]

    @UI.multiLineText: true
    Description,
...
}

Example 11: @UI.dataPoint

The annotation @UI.dataPoint defines a single point of data, typically a number, that can be enriched with business-relevant data, for example if a high or low value is desired, or if the value is increasing to decreasing.

The simplest variant of a data point consists of a value and a tile. In this case, only the value itself is exposed, without additional information.

Sample Code
...
define view ZExample_SalesOrdersByCustomer as select from ... as so {
    key so.buyer_guid as BuyerGuid,

    @Semantics.currencyCode: true
    so.currency_code as CurrencyCode,

    @UI.dataPoint: { title: 'Gross Amount' }

    @Semantics.amount.currencyCode: 'CurrencyCode'
    so.actual_amount as ActualAmount
}