UI Annotations

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] 
Annotation UI
 {
   headerInfo
   {
       typeName : String(40);
       typeNamePlural : String(40);
       typeImageUrl : String;
       imageUrl : elementRef;
       title
       {
           type : String enum
           {
               STANDARD;
               WITH_INTENT_BASED_NAVIGATION;
               WITH_NAVIGATION_PATH;
               WITH_URL;
           } default #STANDARD;
           label : String(40);
           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;
           label : String(40);
           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;
           label : String(40);
           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;
           label : String(40);
           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;
           label : String(40);
           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;
           label : String(40);
           iconUrl : String;
           criticality : elementRef;
           value : elementRef;
           targetElement : elementRef;
           url : elementRef;
       };
   };
   chart : array of
   {
       qualifier : String(120);
       title : String(40);
       description : String(80);
       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;
           };
           label : String(40);
           dataAction : String;
           invocationGrouping : String enum
           {
               ISOLATED;
               CHANGE_SET;
           } default #ISOLATED;
           semanticObjectAction : String;
       };
   };
   textArrangement : String enum
   {
       TEXT_FIRST;
       TEXT_LAST;
       TEXT_ONLY;
       TEXT_SEPARATE;
   };
 };
@Scope:[#ELEMENT] 
Annotation UI
 {
   hidden : Boolean default true;
   masked : Boolean default true;
   multiLineText : Boolean default true;
   lineItem : array of
   {
       qualifier : String(120);
       position : Integer;
       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;
       label : String(40);
       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 : Integer;
       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;
       label : String(40);
       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 : Integer;
       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;
       label : String(40);
       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);
       groupLabel : String(40);
       position : Integer;
       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;
       label : String(40);
       iconUrl : String;
       criticality : elementRef;
       dataAction : String;
       invocationGrouping : String enum { ISOLATED; CHANGE_SET; } default #ISOLATED;
       semanticObjectAction : String;
       value : elementRef;
       targetElement : elementRef;
       url : elementRef;
   };
   dataPoint
   {
       title : String(40);
       description : String(80);
       longDescription : String(190);
       forecastValue : elementRef;
       minimumValue : Integer;
       maximumValue : Integer;
       valueFormat
       {
           scaleFactor : Integer;
           numberOfFractionalDigits : Integer;
       };
       referencePeriod
       {
           description : String(80);
           start : elementRef;
           end : elementRef;
       };
       criticality : elementRef;
       criticalityCalculation
       {
           improvementDirection : String enum { MINIMIZE; TARGET; MAXIMIZE; };
           toleranceRangeLowValue : Integer;
           toleranceRangeLowValueElement : elementRef;
           toleranceRangeHighValue : Integer;
           toleranceRangeHighValueElement : elementRef;
           deviationRangeLowValue : Integer;
           deviationRangeLowValueElement : elementRef;
           deviationRangeHighValue : Integer;
           deviationRangeHighValueElement : elementRef;
       };
       trend : elementRef;
       trendCalculation
       {
           referenceValue : elementRef;
           isRelativeDifference : Boolean default false;
           upDifference : Integer;
           upDifferenceElement : elementRef;
           strongUpDifference : Integer;
           strongUpDifferenceElement : elementRef;
           downDifference : Integer;
           downDifferenceElement : elementRef;
           strongDownDifference : Integer;
           strongDownDifferenceElement : elementRef;
       };
       responsible : elementRef;
       responsibleName : String(120);
   };
   selectionField : array of
   {
       qualifier : String(120);
       position : Integer;
       exclude : Boolean default true;
       element : elementRef;
   };
 };

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]

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.
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.

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

Scope: [VIEW, TABLE_FUNCTION, ENTITY]

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.
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.
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.
SERIES This annotation determines the visualization of a chart.
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.
AXIS_2 This annotation determines the visualization of a chart.
AXIS_3 This annotation determines the visualization of a chart.
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.
UI.dataPoint.criticalityCalculation.deviationRangeHighValueElement elementRef This annotation contains a referenced value specifying the maximum deviation value before the criticality value Negative is reached.
UI.dataPoint.criticalityCalculation.deviationRangeLowValue DecimalFloat This annotation contains a constant value specifying the minimum deviation value before the criticality value Negative is reached.
UI.dataPoint.criticalityCalculation.deviationRangeLowValueElement elementRef This annotation contains a referenced value specifying the minimum deviation value before the criticality value Negative is reached.
UI.dataPoint.criticalityCalculation.toleranceRangeHighValue DecimalFloat This annotation contains a constant value specifying the maximum value of the tolerance range.
UI.dataPoint.criticalityCalculation.toleranceRangeHighValueElement elementRef This annotation contains a referenced value specifying the maximum value of the tolerance range.
UI.dataPoint.criticalityCalculation.toleranceRangeLowValue DecimalFloat This annotation contains a constant value specifying the minimum value of the tolerance range.
UI.dataPoint.criticalityCalculation.toleranceRangeLowValueElement elementRef This annotation contains a referenced value specifying the minimum value of the tolerance range.
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.
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.
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.

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.
UI.dataPoint.targetValue DecimalFloat This annotation specifies the target value of the data point as a constant element.
UI.dataPoint.targetValueElement elementRef This annotation specifies the target value of the data point as a reference to an element.
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.
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.
UI.dataPoint.trendCalculation.downDifferenceElement elementRef This annotation contains a referenced value specifying a difference that results in a down-trend.
UI.dataPoint.trendCalculation.isRelativeDifference Boolean default false This annotation expresses if the following values are absolute differences or relative differences.
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.
UI.dataPoint.trendCalculation.strongDownDifferenceElement elementRef This annotation contains a referenced value specifying a difference that results in a strong down-trend.
UI.dataPoint.trendCalculation.strongUpDifference DecimalFloat This annotation contains a constant value specifying a difference that results in a strong up-trend.
UI.dataPoint.trendCalculation.strongUpDifferenceElement elementRef This annotation contains a referenced value specifying a difference that results in a strong up-trend.
UI.dataPoint.trendCalculation.upDifference DecimalFloat This annotation contains a constant value specifying a difference that results in an up-trend.
UI.dataPoint.trendCalculation.upDifferenceElement elementRef This annotation contains a referenced value specifying a difference that results in an up-trend.
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. .
UI.dataPoint.valueFormat.scaleFactor DecimalFloat This annotation contains the scale factor for the value.

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.

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.
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.
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.
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]

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.
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.
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.

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.

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.
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.
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.
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.

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.
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.
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.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.
  • 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.
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.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.

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.
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.
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]

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.
TEXT_LAST The code is displayed in front of the text.
TEXT_ONLY The text is displayed without the code.
TEXT_SEPARATE The text and the code are displayed separately.

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.

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.

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.

Example 4: @UI.identification

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

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.

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.

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.

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.

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.

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.

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.