OData @ SAP - Vocabularies

UI Vocabulary

Namespace: com.sap.vocabularies.UI.v1

Terms for presenting data in user interfaces

The SAP UI Vocabulary aims to optimize usage of data in UI channels. It focuses on usage patterns of data in UIs, not on UI patterns, and it is completely independent of the UI technologies or devices used to visualize the data.

These usage patterns represent certain semantic views on business data, some of them very general, others centering around the concept of a Thing, i.e. something tangible to end users. Examples for Things are semantic object instances or business object instances. One example for a usage pattern is the collection of properties which helps the user to identify a Thing, the UI.Identification term. Another example is the UI.LineItem term, which is a set of properties suitable for visualizing a collection of business object instances, e.g. as a list or table.

Terms

Term Type Description
HeaderInfo HeaderInfoType Information for the header area of an entity representation. HeaderInfo is mandatory for main entity types of the model
Identification [DataFieldAbstract] Collection of fields identifying the object
Badge BadgeType Information usually displayed in the form of a business card
LineItem [DataFieldAbstract] Collection of data fields for representation in a table or list
StatusInfo [DataFieldAbstract] Collection of data fields describing the status of an entity
FieldGroup FieldGroupType Group of fields with an optional label
ConnectedFields ConnectedFieldsType Group of semantically connected fields with a representation template and an optional label (Example)
GeoLocations [GeoLocationType] Collection of geographic locations
GeoLocation GeoLocationType Geographic location
Contacts [AnnotationPath] Collection of contacts
Each collection item MUST reference an annotation of a Communication.Contact
Allowed terms:
MediaResource MediaResourceType Properties that describe a media resource
Either Url or Stream MUST be present, and never both.
DataPoint DataPointType Visualization of a single point of data, typically a number; may also be textual, e.g. a status value
KPI KPIType A Key Performance Indicator (KPI) bundles a SelectionVariant and a DataPoint, and provides details for progressive disclosure
Chart ChartDefinitionType Visualization of multiple data points
ValueCriticality (Experimental) [ValueCriticalityType] Assign criticalities to primitive values. This information can be used for semantic coloring.
CriticalityLabels (Experimental) [CriticalityLabelType] Assign labels to criticalities. This information can be used for semantic coloring. When applied to a property, a label for a criticality must be provided, if more than one value of the annotated property has been assigned to the same criticality. There must be no more than one label per criticality.
SelectionFields [PropertyPath] Properties that might be relevant for filtering a collection of entities of this type
Facets [Facet] Collection of facets
HeaderFacets [Facet] Facets for additional object header information
QuickViewFacets [Facet] Facets that may be used for a quick overview of the object
QuickCreateFacets [Facet] Facets that may be used for a (quick) create of the object
FilterFacets [ReferenceFacet] Facets that reference UI.FieldGroup annotations to group filterable fields
SelectionPresentationVariant SelectionPresentationVariantType A SelectionPresentationVariant bundles a Selection Variant and a Presentation Variant
PresentationVariant PresentationVariantType Defines how the result of a queried collection of entities is shaped and how this result is displayed
SelectionVariant SelectionVariantType A SelectionVariant denotes a combination of parameters and filters to query the annotated entity set
ThingPerspective Tag The annotated term is a Thing Perspective
IsSummary Tag This Facet and all included Facets are the summary of the thing. At most one Facet of a thing can be tagged with this term
PartOfPreview Tag This record and all included structural elements are part of the Thing preview
This term can be applied e.g. to UI.Facet and UI.DataField
Map Tag Target MUST reference a UI.GeoLocation, Communication.Address or a collection of these
Gallery Tag Target MUST reference a UI.MediaResource
IsImageURL Tag Properties and terms annotated with this term MUST contain a valid URL referencing an resource with a MIME type image
Can be annotated with:
IsImage (Experimental) Tag Properties annotated with this term MUST be a stream property annotated with a MIME type image. Entity types annotated with this term MUST be a media entity type annotated with a MIME type image.
Can be annotated with:
MultiLineText Tag Properties and parameters annotated with this annotation should be rendered as multi-line text (e.g. text area)
Placeholder String A short, human-readable text that gives a hint or an example to help the user with data entry
TextArrangement TextArrangementType Describes the arrangement of a code or ID value and its text

This term annotates one of the following:

  1. a Common.Text annotation of the code or ID property where the annotation value is the text
  2. an entity type, this has the same effect as annotating all Common.Text annotations of properties of that entity type.
Note (Experimental) NoteType Visualization of a note attached to an entity
Administrative data is given by the annotations Common.CreatedBy, Common.CreatedAt, Common.ChangedBy, Common.ChangedAt on the same entity type.
Importance ImportanceType Expresses the importance of e.g. a DataField or an annotation
Hidden Tag Properties or facets (see UI.Facet) annotated with this term will not be rendered if the annotation evaluates to true.
Hidden properties usually carry technical information that is used for application control and is of no direct interest to end users. The annotation value may be an expression to dynamically hide or render the annotated feature. If a navigation property is annotated with Hidden true, all subsequent parts are hidden - independent of their own potential Hidden annotations.
IsCopyAction (Experimental) Tag The annotated DataFieldForAction record references an action that deep-copies an instance of the annotated entity type
The referenced action MUST be bound to the annotated entity type and MUST create a new instance of the same entity type as a deep copy of the bound instance. Upon successful completion, the response MUST contain a Location header that contains the edit URL or read URL of the created entity, and the response MUST be either 201 Created and a representation of the created entity, or 204 No Content if the request included a Prefer header with a value of return=minimal and did not include the system query options $select and $expand.
CreateHidden Tag EntitySets annotated with this term can control the visibility of the Create operation dynamically
The annotation value should be a path to another property from a related entity.
UpdateHidden Tag EntitySets annotated with this term can control the visibility of the Edit/Save operation dynamically
The annotation value should be a path to another property from the same or a related entity.
DeleteHidden Tag EntitySets annotated with this term can control the visibility of the Delete operation dynamically
The annotation value should be a path to another property from the same or a related entity.
HiddenFilter Tag Properties annotated with this term will not be rendered as filter criteria if the annotation evaluates to true.
Properties annotated with HiddenFilter are intended as parts of a $filter expression that cannot be directly influenced by end users. The properties will be rendered in all other places, e.g. table columns or form fields. This is in contrast to properties annotated with Hidden that are not rendered at all. If a navigation property is annotated with HiddenFilter true, all subsequent parts are hidden in filter - independent of their own potential HiddenFilter annotations.
AdaptationHidden (Experimental) Tag Properties or entities annotated with this term can't be used for UI adaptation/configuration/personalization
The tagged elements can only be used in UI based on metadata, annnotations or code.
DataFieldDefault DataFieldAbstract Default representation of a property as a datafield, e.g. when the property is added as a table column or form field via personalization
Only concrete subtypes of DataFieldAbstract can be used for a DataFieldDefault. For type DataField and its subtypes the annotation target SHOULD be the same property that is referenced via a path expression in the Value of the datafield.
Criticality CriticalityType Service-calculated criticality, alternative to UI.CriticalityCalculation
CriticalityCalculation CriticalityCalculationType Parameters for client-calculated criticality, alternative to UI.Criticality
Emphasized (Experimental) Tag Highlight something that is of special interest
The usage of a property or operation should be highlighted as it's of special interest for the end user
OrderBy (Experimental) PropertyPath Sort by the referenced property instead of by the annotated property
Example: annotated property SizeCode has string values XS, S, M, L, XL, referenced property SizeOrder has numeric values -2, -1, 0, 1, 2. Numeric ordering by SizeOrder will be more understandable than lexicographic ordering by SizeCode.
ParameterDefaultValue PrimitiveType? Define default values for action parameters
For unbound actions the default value can either be a constant expression, or a dynamic expression using absolute paths, e.g. singletons or function import results. Whereas for bound actions the bound entity and its properties and associated properties can be used as default values
RecommendationState RecommendationStateType Indicates whether a field contains or has a recommended value
Intelligent systems can help users by recommending input the user may "prefer".
RecommendationList RecommendationListType Specifies how to get a list of recommended values for a property or parameter
Intelligent systems can help users by recommending input the user may "prefer".
ExcludeFromNavigationContext Tag The contents of this property must not be propagated to the app-to-app navigation context
DoNotCheckScaleOfMeasuredQuantity (Experimental) Boolean Do not check the number of fractional digits of the annotated measured quantity
The annotated property contains a measured quantity, and the user may enter more fractional digits than defined for the corresponding unit of measure.
This switches off the validation of user input with respect to decimals.
LeadingEntitySet (Experimental) String The referenced entity set is the preferred starting point for UIs using this service

HeaderInfoType

Property Type Description
TypeName String Name of the main entity type
TypeNamePlural String Plural form of the name of the main entity type
Title DataFieldAbstract? Title, e.g. for overview pages
This can be a DataField and any of its children, or a DataFieldForAnnotation targeting ConnectedFields.
Description DataFieldAbstract? Description, e.g. for overview pages
This can be a DataField and any of its children, or a DataFieldForAnnotation targeting ConnectedFields.
Image (Experimental) Stream? Image for an instance of the entity type. If the property has a valid value, it can be used for the visualization of the instance. If it is not available or not valid the value of the property ImageUrl can be used instead.
ImageUrl URL? Image URL for an instance of the entity type. If the property has a valid value, it can be used for the visualization of the instance. If it is not available or not valid the value of the property TypeImageUrl can be used instead.
TypeImageUrl URL? Image URL for the entity type
Initials (Experimental) String? Latin letters to be used in case no Image, ImageUrl, or TypeImageUrl is present

BadgeType

Property Type Description
HeadLine DataField Headline
Title DataField Title
ImageUrl URL? Image URL for an instance of the entity type. If the property has a valid value, it can be used for the visualization of the instance. If it is not available or not valid the value of the property TypeImageUrl can be used instead.
TypeImageUrl URL? Image URL for the entity type
MainInfo DataField? Main information on the business card
SecondaryInfo DataField? Additional information on the business card

FieldGroupType

Property Type Description
Label String? Label for the field group
Data [DataFieldAbstract] Collection of data fields

ConnectedFieldsType

Group of semantically connected fields with a representation template and an optional label

Property Type Description
Label String? Label for the connected fields
Template String Template for representing the connected fields
Template variables are identifiers enclosed in curly braces, e.g. {MaterialName} - {MaterialClassName}. The Data collection assigns values to the template variables.
Data Dictionary Dictionary of template variables
Each template variable used in Template must be assigned a value here. The value must be of type DataFieldAbstract

GeoLocationType

Properties that define a geographic location

Property Type Description
Latitude Double? Geographic latitude
Longitude Double? Geographic longitude
Location GeographyPoint? A point in a round-earth coordinate system
Address AddressType? vCard-style address

MediaResourceType

Property Type Description
Url URL? URL of media resource
Can be annotated with:
Stream (Experimental) Stream? Stream of media resource
Can be annotated with:
ContentType MediaType? Content type, such as application/pdf, video/x-flv, image/jpeg
ByteSize Int64? Resource size in bytes
ChangedAt DateTimeOffset? Date of last change
Thumbnail ImageType? Thumbnail image
Title DataField? Resource title
Description DataField? Resource description

ImageType

Properties that describe an image

Either Url or Stream MUST be present, and never both.

Property Type Description
Url URL URL of image
Stream (Experimental) Stream? Stream of image
Can be annotated with:
Width String? Width of image
Height String? Height of image

DataPointType

Property Type Description
Title String? Title of the data point
Description String? Short description
LongDescription String? Full description
Value PrimitiveType Numeric value
The value is typically provided via a Path construct. The path MUST lead to a direct property of the same entity type or a property of a complex property (recursively) of that entity type, navigation segments are not allowed.
It could be annotated with either UoM.ISOCurrency or UoM.Unit. Percentage values are annotated with UoM.Unit = '%'. A renderer should take an optional Common.Text annotation into consideration.
TargetValue PrimitiveType? Target value
ForecastValue PrimitiveType? Forecast value
MinimumValue Decimal? Minimum value (for output rendering)
MaximumValue Decimal? Maximum value (for output rendering)
ValueFormat NumberFormat? Number format
Visualization VisualizationType? Preferred visualization
SampleSize PrimitiveType? Sample size used for the determination of the data point; should contain just integer value as Edm.Byte, Edm.SByte, Edm.Intxx, and Edm.Decimal with scale 0.
ReferencePeriod ReferencePeriod? Reference period
Criticality CriticalityType? Service-calculated criticality, alternative to CriticalityCalculation
CriticalityLabels AnnotationPath? Custom labels for the criticality legend. Annotation path MUST end in UI.CriticalityLabels
Allowed terms:
CriticalityRepresentation (Experimental) CriticalityRepresentationType? Decides if criticality is visualized in addition by means of an icon
CriticalityCalculation CriticalityCalculationType? Parameters for client-calculated criticality, alternative to Criticality
Trend TrendType? Service-calculated trend, alternative to TrendCalculation
TrendCalculation TrendCalculationType? Parameters for client-calculated trend, alternative to Trend
Responsible ContactType? Contact person

NumberFormat

Describes how to visualise a number

Property Type Description
ScaleFactor Decimal? Display value in ScaleFactor units, e.g. 1000 for k (kilo), 1e6 for M (Mega)
NumberOfFractionalDigits Byte? Number of fractional digits of the scaled value to be visualized

VisualizationType

Member Value Description
Number 0 Visualize as a number
BulletChart 1 Visualize as bullet chart - requires TargetValue
Progress 2 Visualize as progress indicator - requires TargetValue
Rating 3 Visualize as partially or completely filled stars/hearts/... - requires TargetValue
Donut 4 Visualize as donut, optionally with missing segment - requires TargetValue
DeltaBulletChart 5 Visualize as delta bullet chart - requires TargetValue

ReferencePeriod

Reference period

Property Type Description
Description String? Short description of the reference period
Start DateTimeOffset? Start of the reference period
End DateTimeOffset? End of the reference period

CriticalityType

Criticality of a value or status, represented e.g. via semantic colors (https://experience.sap.com/fiori-design-web/foundation/colors/#semantic-colors)

Member Value Description
VeryNegative (Experimental) -1 Very negative / dark-red status - risk - out of stock - late
Neutral 0 Neutral / grey status - inactive - open - in progress
Negative 1 Negative / red status - attention - overload - alert
Critical 2 Critical / orange status - warning
Positive 3 Positive / green status - completed - available - on track - acceptable
VeryPositive (Experimental) 4 Very positive - above max stock - excess
Information (Experimental) 5 Information - noticable - informative

CriticalityCalculationType: CriticalityThresholdsType

Describes how to calculate the criticality of a value depending on the improvement direction

The calculation is done by comparing a value to the threshold values relevant for the specified improvement direction.

The value to be compared is

For improvement direction Target, the criticality is calculated using both low and high threshold values. It will be

For improvement direction Minimize, the criticality is calculated using the high threshold values. It is

For improvement direction Maximize, the criticality is calculated using the low threshold values. It is

Thresholds are optional. For unassigned values, defaults are determined in this order:

Property Type Description
AcceptanceRangeLowValue PrimitiveType? Lowest value that is considered positive
AcceptanceRangeHighValue PrimitiveType? Highest value that is considered positive
ToleranceRangeLowValue PrimitiveType? Lowest value that is considered neutral
ToleranceRangeHighValue PrimitiveType? Highest value that is considered neutral
DeviationRangeLowValue PrimitiveType? Lowest value that is considered critical
DeviationRangeHighValue PrimitiveType? Highest value that is considered critical
ReferenceValue (Experimental) PrimitiveType? Reference value for the calculation, e.g. number of sales for the last year
IsRelativeDifference (Experimental) Boolean Calculate with a relative difference
ImprovementDirection ImprovementDirectionType Describes in which direction the value improves
ConstantThresholds (Experimental) [LevelThresholdsType] List of thresholds depending on the aggregation level as a set of constant values
Constant thresholds shall only be used in order to refine constant values given for the data point overall (aggregation level with empty collection of property paths), but not if the thresholds are based on other measure elements.

CriticalityThresholdsType

Thresholds for calculating the criticality of a value

Derived Types:

Property Type Description
AcceptanceRangeLowValue PrimitiveType? Lowest value that is considered positive
AcceptanceRangeHighValue PrimitiveType? Highest value that is considered positive
ToleranceRangeLowValue PrimitiveType? Lowest value that is considered neutral
ToleranceRangeHighValue PrimitiveType? Highest value that is considered neutral
DeviationRangeLowValue PrimitiveType? Lowest value that is considered critical
DeviationRangeHighValue PrimitiveType? Highest value that is considered critical

ImprovementDirectionType

Describes which direction of a value change is seen as an improvement

Member Value Description
Minimize 1 Lower is better
Target 2 Closer to the target is better
Maximize 3 Higher is better

LevelThresholdsType: CriticalityThresholdsType (Experimental)

Thresholds for an aggregation level

Property Type Description
AcceptanceRangeLowValue PrimitiveType? Lowest value that is considered positive
AcceptanceRangeHighValue PrimitiveType? Highest value that is considered positive
ToleranceRangeLowValue PrimitiveType? Lowest value that is considered neutral
ToleranceRangeHighValue PrimitiveType? Highest value that is considered neutral
DeviationRangeLowValue PrimitiveType? Lowest value that is considered critical
DeviationRangeHighValue PrimitiveType? Highest value that is considered critical
AggregationLevel [PropertyPath] An unordered tuple of dimensions, i.e. properties which are intended to be used for grouping in aggregating requests. In analytical UIs, e.g. an analytical chart, the aggregation level typically corresponds to the visible dimensions.

TrendType

The trend of a value

Member Value Description
StrongUp 1 Value grows strongly
Up 2 Value grows
Sideways 3 Value does not significantly grow or shrink
Down 4 Value shrinks
StrongDown 5 Value shrinks strongly

TrendCalculationType

Describes how to calculate the trend of a value

By default, the calculation is done by comparing the difference between Value and ReferenceValue to the threshold values. If IsRelativeDifference is set, the difference of Value and ReferenceValue is divided by ReferenceValue and the relative difference is compared.

The trend is

Property Type Description
ReferenceValue PrimitiveType Reference value for the calculation, e.g. number of sales for the last year
IsRelativeDifference Boolean Calculate with a relative difference
UpDifference Decimal Threshold for Up
StrongUpDifference Decimal Threshold for StrongUp
DownDifference Decimal Threshold for Down
StrongDownDifference Decimal Threshold for StrongDown

KPIType

Property Type Description
ID String? Optional identifier to reference this instance from an external context
ShortDescription (Experimental) String? Very short description
SelectionVariant SelectionVariantType Selection variant, either specified inline or referencing another annotation via Path
DataPoint DataPointType Data point, either specified inline or referencing another annotation via Path
AdditionalDataPoints [DataPointType] Additional data points, either specified inline or referencing another annotation via Path
Additional data points are typically related to the main data point and provide complementing information or could be used for comparisons
Detail KPIDetailType? Contains information about KPI details, especially drill-down presentations

KPIDetailType

Property Type Description
DefaultPresentationVariant PresentationVariantType? Presentation variant, either specified inline or referencing another annotation via Path
AlternativePresentationVariants [PresentationVariantType] A list of alternative presentation variants, either specified inline or referencing another annotation via Path
SemanticObject String? Name of the Semantic Object. If not specified, use Semantic Object annotated at the property referenced in KPI/DataPoint/Value
Action String? Name of the Action on the Semantic Object. If not specified, let user choose which of the available actions to trigger.

ChartDefinitionType

Property Type Description
Title String? Title of the chart
Description String? Short description
ChartType ChartType Chart type
AxisScaling ChartAxisScalingType? Describes the scale of the chart value axes
Measures [PropertyPath] Measures of the chart, e.g. size and color in a bubble chart
DynamicMeasures [AnnotationPath] Dynamic properties introduced by annotations and used as measures of the chart
If the annotation referenced by an annotation path does not apply to the same collection of entities as the one being visualized according to the UI.Chart annotation, the annotation path MUST be silently ignored.
Allowed terms:
MeasureAttributes [ChartMeasureAttributeType] Describes Attributes for Measures. All Measures used in this collection must also be part of the Measures Property.
Dimensions [PropertyPath] Dimensions of the chart, e.g. x- and y-axis of a bubble chart
DimensionAttributes [ChartDimensionAttributeType] Describes Attributes for Dimensions. All Dimensions used in this collection must also be part of the Dimensions Property.
Actions [DataFieldForActionAbstract] Available actions

ChartType

Member Value Description
Column 0
ColumnStacked 1
ColumnDual 2
ColumnStackedDual 3
ColumnStacked100 4
ColumnStackedDual100 5
Bar 6
BarStacked 7
BarDual 8
BarStackedDual 9
BarStacked100 10
BarStackedDual100 11
Area 12
AreaStacked 13
AreaStacked100 14
HorizontalArea 15
HorizontalAreaStacked 16
HorizontalAreaStacked100 17
Line 18
LineDual 19
Combination 20
CombinationStacked 21
CombinationDual 22
CombinationStackedDual 23
HorizontalCombinationStacked 24
Pie 25
Donut 26
Scatter 27
Bubble 28
Radar 29
HeatMap 30
TreeMap 31
Waterfall 32
Bullet 33
VerticalBullet 34
HorizontalWaterfall 35
HorizontalCombinationDual 36
HorizontalCombinationStackedDual 37
Donut100 (Experimental) 38

ChartAxisScalingType

Property Type Description
ScaleBehavior ChartAxisScaleBehaviorType Scale is fixed or adapts automatically to rendered values
AutoScaleBehavior ChartAxisAutoScaleBehaviorType? Settings for automatic scaling
FixedScaleMultipleStackedMeasuresBoundaryValues FixedScaleMultipleStackedMeasuresBoundaryValuesType? Boundary values for fixed scaling of a stacking chart type with multiple measures

ChartAxisScaleBehaviorType

Member Value Description
AutoScale 0 Value axes scale automatically
FixedScale 1 Fixed minimum and maximum values are applied, which are derived from the @UI.MeasureAttributes.DataPoint/MinimumValue and .../MaximumValue annotation by default. For stacking chart types with multiple measures, they are taken from ChartAxisScalingType/FixedScaleMultipleStackedMeasuresBoundaryValues.

ChartAxisAutoScaleBehaviorType

Property Type Description
ZeroAlwaysVisible Boolean Forces the value axis to always display the zero value
DataScope ChartAxisAutoScaleDataScopeType Determines the automatic scaling

ChartAxisAutoScaleDataScopeType

Member Value Description
DataSet 0 Minimum and maximum axes values are determined from the entire data set
VisibleData 1 Minimum and maximum axes values are determined from the currently visible data. Scrolling will change the scale.

FixedScaleMultipleStackedMeasuresBoundaryValuesType

Property Type Description
MinimumValue Decimal Minimum value on value axes
MaximumValue Decimal Maximum value on value axes

ChartDimensionAttributeType

Property Type Description
Dimension PropertyPath?
Role ChartDimensionRoleType?
HierarchyLevel (Experimental) Int32? For a dimension with a hierarchy, members are selected from this level. The root node of the hierarchy is at level 0.
ValuesForSequentialColorLevels (Experimental) [String] All values in this collection should be assigned to levels of the same color.
EmphasizedValues (Experimental) [String] All values in this collection should be emphasized.
EmphasisLabels (Experimental) EmphasisLabelType? Assign a label to values with an emphasized representation. This is required, if more than one emphasized value has been specified.

ChartMeasureAttributeType

Exactly one of Measure and DynamicMeasure must be present

Property Type Description
Measure PropertyPath?
DynamicMeasure AnnotationPath? Dynamic property introduced by an annotation and used as a measure in a chart
If the annotation referenced by an annotation path does not apply to the same collection of entities as the one being visualized according to the UI.Chart annotation, the annotation path MUST be silently ignored.
Allowed terms:
Role ChartMeasureRoleType?
DataPoint AnnotationPath? Annotation path MUST end in @UI.DataPoint and the data point's Value MUST be the same property as in Measure
Allowed terms:
UseSequentialColorLevels (Experimental) Boolean All measures for which this setting is true should be assigned to levels of the same color.

ChartDimensionRoleType

Member Value Description
Category 0
Series 1
Category2 2

ChartMeasureRoleType

Member Value Description
Axis1 0
Axis2 1
Axis3 2

EmphasisLabelType (Experimental)

Assigns a label to the set of emphasized values and optionally also for non-emphasized values. This information can be used for semantic coloring.

Property Type Description
EmphasizedValuesLabel String
NonEmphasizedValuesLabel String?

ValueCriticalityType (Experimental)

Assigns a fixed criticality to a primitive value. This information can be used for semantic coloring.

Property Type Description
Value PrimitiveType? MUST be a fixed value of primitive type
Criticality CriticalityType?

CriticalityLabelType (Experimental)

Assigns a label to a criticality. This information can be used for semantic coloring.

Property Type Description
Criticality CriticalityType
Label String Criticality label

Facet

Abstract base type for facets

Derived Types:

Property Type Description
Label String? Facet label
ID String? Unique identifier of a facet. ID should be stable, as long as the perceived semantics of the facet is unchanged.

Applicable Annotation Terms:

CollectionFacet: Facet

Collection of facets

Property Type Description
Label String? Facet label
ID String? Unique identifier of a facet. ID should be stable, as long as the perceived semantics of the facet is unchanged.
Facets [Facet] Nested facets. An empty collection may be used as a placeholder for content added via extension points.

Applicable Annotation Terms:

ReferenceFacet: Facet

Facet that refers to a thing perspective, e.g. LineItem

Property Type Description
Label String? Facet label
ID String? Unique identifier of a facet. ID should be stable, as long as the perceived semantics of the facet is unchanged.
Target AnnotationPath Referenced information: Communication.Contact, Communication.Address, or a term that is tagged with UI.ThingPerspective, e.g. UI.StatusInfo, UI.LineItem, UI.Identification, UI.FieldGroup, UI.Badge
Allowed terms:

Applicable Annotation Terms:

ReferenceURLFacet: Facet

Facet that refers to a URL

Property Type Description
Label String? Facet label
ID String? Unique identifier of a facet. ID should be stable, as long as the perceived semantics of the facet is unchanged.
Url URL URL of referenced information
Can be annotated with:
UrlContentType MediaType? Media type of referenced information

Applicable Annotation Terms:

SelectionPresentationVariantType

Property Type Description
ID String? Optional identifier to reference this variant from an external context
Text String? Name of the bundling variant
SelectionVariant SelectionVariantType Selection variant, either specified inline or referencing another annotation via Path
PresentationVariant PresentationVariantType Presentation variant, either specified inline or referencing another annotation via Path

PresentationVariantType

Property Type Description
ID String? Optional identifier to reference this variant from an external context
Text String? Name of the presentation variant
MaxItems Int32? Maximum number of items that should be included in the result
SortOrder [SortOrderType] Collection can be provided inline or as a reference to a Common.SortOrder annotation via Path
GroupBy [PropertyPath] Sequence of groupable properties p1, p2, ... defining how the result is composed of instances representing groups, one for each combination of value properties in the queried collection. The sequence specifies a certain level of aggregation for the queried collection, and every group instance will provide aggregated values for properties that are aggregatable. Moreover, the series of sub-sequences (p1), (p1, p2), ... forms a leveled hierarchy, which may become relevant in combination with InitialExpansionLevel.
TotalBy [PropertyPath] Sub-sequence q1, q2, ... of properties p1, p2, ... specified in GroupBy. With this, additional levels of aggregation are requested in addition to the most granular level defined by GroupBy: Every element in the series of sub-sequences (q1), (q1, q2), ... introduces an additional aggregation level included in the result.
Total [PropertyPath] Aggregatable properties for which aggregated values should be provided for the additional aggregation levels specified in TotalBy.
DynamicTotal [AnnotationPath] Dynamic properties introduced by annotations for which aggregated values should be provided for the additional aggregation levels specified in TotalBy
If the annotation referenced by an annotation path does not apply to the same collection of entities as the one being presented according to the UI.PresentationVariant annotation, the annotation path MUST be silently ignored.
Allowed terms:
IncludeGrandTotal Boolean Result should include a grand total for the properties specified in Total
InitialExpansionLevel Int32 Level up to which the hierarchy defined for the queried collection should be expanded initially. The hierarchy may be implicitly imposed by the sequence of the GroupBy, or by an explicit hierarchy annotation.
Visualizations [AnnotationPath] Lists available visualization types. Currently supported types are UI.LineItem, UI.Chart, and UI.DataPoint. For each type, no more than a single annotation is meaningful. Multiple instances of the same visualization type shall be modeled with different presentation variants. A reference to UI.Lineitem should always be part of the collection (least common denominator for renderers). The first entry of the collection is the default visualization.
Allowed terms:
RequestAtLeast [PropertyPath] Properties that should always be included in the result of the queried collection
Properties in RequestAtLeast must occur either in the $select clause of an OData request or among the grouping properties in an $apply=groupby((grouping properties),...) clause of an aggregating OData request.
SelectionFields (Experimental) [PropertyPath] Properties that should be presented for filtering a collection of entities. Can be provided inline or as a reference to a UI.SelectionFields annotation via Path.

SelectionVariantType

Property Type Description
ID String? May contain identifier to reference this instance from an external context
Text String? Name of the selection variant
Parameters [ParameterAbstract] Parameters of the selection variant
FilterExpression String? Filter string for query part of URL, without $filter=
SelectOptions [SelectOptionType] ABAP Select Options Pattern

ParameterAbstract

Key property of a parameter entity type

Derived Types:

Parameter: ParameterAbstract

Single-valued parameter

Property Type Description
PropertyName PropertyPath Path to a key property of a parameter entity type
PropertyValue PrimitiveType Value for the key property

IntervalParameter: ParameterAbstract

Interval parameter formed with a 'from' and a 'to' property

Property Type Description
PropertyNameFrom PropertyPath Path to the 'from' property of a parameter entity type
PropertyValueFrom PrimitiveType Value for the 'from' property
PropertyNameTo PropertyPath Path to the 'to' property of a parameter entity type
PropertyValueTo PrimitiveType Value for the 'to' property

SelectOptionType

List of value ranges for a single property

Exactly one of PropertyName and DynamicPropertyName must be present

Property Type Description
PropertyName PropertyPath? Path to the property
DynamicPropertyName AnnotationPath? Dynamic property introduced by annotations for which value ranges are specified
If the annotation referenced by the annotation path does not apply to the same collection of entities as the one being filtered according to the UI.SelectionVariant annotation, this instance of UI.SelectionVariant/SelectOptions MUST be silently ignored. For an example, see the UI.SelectionVariant annotation in the example.
Allowed terms:
Ranges [SelectionRangeType] List of value ranges

SelectionRangeType

Value range. If the range option only requires a single value, the value must be in the property Low

Property Type Description
Sign SelectionRangeSignType Include or exclude values
Option SelectionRangeOptionType Comparison operator
Low PrimitiveType Single value or lower interval boundary
High PrimitiveType? Upper interval boundary

SelectionRangeSignType

Member Value Description
I 0 Inclusive
E 1 Exclusive

SelectionRangeOptionType

Comparison operator

Member Value Description
EQ 0 Equal to
BT 1 Between
CP 2 Contains pattern
LE 3 Less than or equal to
GE 4 Greater than or equal to
NE 5 Not equal to
NB 6 Not between
NP 7 Does not contain pattern
GT 8 Greater than
LT 9 Less than

TextArrangementType

Member Value Description
TextFirst 0 Text is first, followed by the code/ID (e.g. in parentheses)
TextLast 1 Code/ID is first, followed by the text (e.g. separated by a dash)
TextSeparate 2 Code/ID and text are represented separately (code/ID will be shown and text can be visualized in a separate place)
TextOnly 3 Only text is represented, code/ID is hidden (e.g. for UUIDs)

NoteType (Experimental)

Property Type Description
Title String? Title of the note
The title of a note is hidden with an annotation @UI.Note/Title/@UI.Hidden, not with an annotation on the property targeted by @UI.Note/Title.
Can be annotated with:
Content String Content of the note, as a string
The property targeted by @UI.Note/Content must be annotated with Core.MediaType and may be annotated with Common.SAPObjectNodeTypeReference. When it is tagged with Core.IsLanguageDependent, another property of the same entity type that is tagged with Common.IsLanguageIdentifier determines the language of the note.
Can be annotated with:
Type String A type used for grouping notes
MaximalLength Int32? Type-specific maximal length of the content of the note
MultipleNotes Boolean Whether the type allows multiple notes for one object

ImportanceType

Member Value Description
High 0 High importance
Medium 1 Medium importance
Low 2 Low importance

DataFieldAbstract

Elementary building block that represents a piece of data and/or allows triggering an action

By using the applicable terms UI.Hidden, UI.Importance or HTML5.CssDefaults, the visibility, the importance and and the default css settings (as the width) of the data field can be influenced.

Derived Types:

Property Type Description
Label String? A short, human-readable text suitable for labels and captions in UIs
Criticality CriticalityType? Criticality of the data field value
CriticalityRepresentation CriticalityRepresentationType? Decides if criticality is visualized in addition by means of an icon
IconUrl URL? Optional icon

Applicable Annotation Terms:

CriticalityRepresentationType

Member Value Description
WithIcon 0 Criticality is represented with an icon
WithoutIcon 1 Criticality is represented without icon, e.g. only via text color
OnlyIcon (Experimental) 2 Criticality is represented only by using an icon

DataFieldForAnnotation: DataFieldAbstract

A structured piece of data described by an annotation

Property Type Description
Label String? A short, human-readable text suitable for labels and captions in UIs
Criticality CriticalityType? Criticality of the data field value
CriticalityRepresentation CriticalityRepresentationType? Decides if criticality is visualized in addition by means of an icon
IconUrl URL? Optional icon
Target AnnotationPath Target MUST reference an annotation of terms Communication.Contact, Communication.Address, UI.DataPoint, UI.Chart, UI.FieldGroup, or UI.ConnectedFields
Allowed terms:

Applicable Annotation Terms:

DataFieldForActionAbstract: DataFieldAbstract

Triggers an action

Derived Types:

Property Type Description
Label String? A short, human-readable text suitable for labels and captions in UIs
Criticality CriticalityType? Criticality of the data field value
CriticalityRepresentation CriticalityRepresentationType? Decides if criticality is visualized in addition by means of an icon
IconUrl URL? Optional icon
Inline Boolean Action should be placed close to (or even inside) the visualized term
Determining Boolean Determines whether the action completes a process step (e.g. approve, reject).

Applicable Annotation Terms:

DataFieldForAction: DataFieldForActionAbstract

Triggers an OData action

The action is NOT tied to a data value (in contrast to DataFieldWithAction).

Property Type Description
Label String? A short, human-readable text suitable for labels and captions in UIs
Criticality CriticalityType? Criticality of the data field value
CriticalityRepresentation CriticalityRepresentationType? Decides if criticality is visualized in addition by means of an icon
IconUrl URL? Optional icon
Inline Boolean Action should be placed close to (or even inside) the visualized term
Determining Boolean Determines whether the action completes a process step (e.g. approve, reject).
Action ActionName Name of an Action, Function, ActionImport, or FunctionImport in scope
InvocationGrouping OperationGroupingType? Expresses how invocations of this action on multiple instances should be grouped

Applicable Annotation Terms:

OperationGroupingType

Member Value Description
Isolated 0 Invoke each action in isolation from other actions
ChangeSet 1 Group all actions into a single change set

DataFieldForIntentBasedNavigation: DataFieldForActionAbstract

Triggers intent-based UI navigation

The navigation intent is expressed as a Semantic Object and optionally an Action on that object.

It is NOT tied to a data value (in contrast to DataFieldWithIntentBasedNavigation).

Property Type Description
Label String? A short, human-readable text suitable for labels and captions in UIs
Criticality CriticalityType? Criticality of the data field value
CriticalityRepresentation CriticalityRepresentationType? Decides if criticality is visualized in addition by means of an icon
IconUrl URL? Optional icon
Inline Boolean Action should be placed close to (or even inside) the visualized term
Determining Boolean Determines whether the action completes a process step (e.g. approve, reject).
SemanticObject String Name of the Semantic Object
Action String? Name of the Action on the Semantic Object. If not specified, let user choose which of the available actions to trigger.
NavigationAvailable Boolean The navigation intent is for that user with the selected context and parameters available
RequiresContext Boolean Determines whether a context needs to be passed to the target of this navigation.
Mapping [SemanticObjectMappingType] Maps properties of the annotated entity type to properties of the Semantic Object

Applicable Annotation Terms:

DataFieldForActionGroup: DataFieldAbstract (Experimental)

Collection of OData actions and intent based navigations

Property Type Description
Label String? A short, human-readable text suitable for labels and captions in UIs
Criticality CriticalityType? Criticality of the data field value
CriticalityRepresentation CriticalityRepresentationType? Decides if criticality is visualized in addition by means of an icon
IconUrl URL? Optional icon
Actions [DataFieldForActionAbstract] Collection of data fields that refer to actions or intent based navigations

Applicable Annotation Terms:

DataField: DataFieldAbstract

A piece of data

Derived Types:

Property Type Description
Label String? A short, human-readable text suitable for labels and captions in UIs
Criticality CriticalityType? Criticality of the data field value
CriticalityRepresentation CriticalityRepresentationType? Decides if criticality is visualized in addition by means of an icon
IconUrl URL? Optional icon
Value Untyped The data field's value

Applicable Annotation Terms:

DataFieldWithAction: DataField

A piece of data that allows triggering an OData action

The action is tied to a data value. This is in contrast to DataFieldForAction which is not tied to a specific data value.

Property Type Description
Label String? A short, human-readable text suitable for labels and captions in UIs
Criticality CriticalityType? Criticality of the data field value
CriticalityRepresentation CriticalityRepresentationType? Decides if criticality is visualized in addition by means of an icon
IconUrl URL? Optional icon
Value PrimitiveType The data field's value
Action ActionName Name of an Action, Function, ActionImport, or FunctionImport in scope

Applicable Annotation Terms:

DataFieldWithIntentBasedNavigation: DataField

A piece of data that allows triggering intent-based UI navigation

The navigation intent is expressed as a Semantic Object and optionally an Action on that object.

It is tied to a data value which should be rendered as a hyperlink. This is in contrast to DataFieldForIntentBasedNavigation which is not tied to a specific data value.

Property Type Description
Label String? A short, human-readable text suitable for labels and captions in UIs
Criticality CriticalityType? Criticality of the data field value
CriticalityRepresentation CriticalityRepresentationType? Decides if criticality is visualized in addition by means of an icon
IconUrl URL? Optional icon
Value PrimitiveType The data field's value
SemanticObject String Name of the Semantic Object
Action String? Name of the Action on the Semantic Object. If not specified, let user choose which of the available actions to trigger.
Mapping [SemanticObjectMappingType] Maps properties of the annotated entity type to properties of the Semantic Object

Applicable Annotation Terms:

DataFieldWithNavigationPath: DataField

A piece of data that allows navigating to related data

It should be rendered as a hyperlink

Property Type Description
Label String? A short, human-readable text suitable for labels and captions in UIs
Criticality CriticalityType? Criticality of the data field value
CriticalityRepresentation CriticalityRepresentationType? Decides if criticality is visualized in addition by means of an icon
IconUrl URL? Optional icon
Value PrimitiveType The data field's value
Target NavigationPropertyPath Contains either a navigation property or a term cast, where term is of type Edm.EntityType or a concrete entity type or a collection of these types

Applicable Annotation Terms:

DataFieldWithUrl: DataField

A piece of data that allows navigating to other information on the Web

It should be rendered as a hyperlink

Property Type Description
Label String? A short, human-readable text suitable for labels and captions in UIs
Criticality CriticalityType? Criticality of the data field value
CriticalityRepresentation CriticalityRepresentationType? Decides if criticality is visualized in addition by means of an icon
IconUrl URL? Optional icon
Value PrimitiveType The data field's value
Url URL Target of the hyperlink
Can be annotated with:
UrlContentType MediaType? Media type of the hyperlink target, e.g. video/mp4

Applicable Annotation Terms:

DataFieldWithActionGroup: DataField (Experimental)

Collection of OData actions and intent based navigations

Property Type Description
Label String? A short, human-readable text suitable for labels and captions in UIs
Criticality CriticalityType? Criticality of the data field value
CriticalityRepresentation CriticalityRepresentationType? Decides if criticality is visualized in addition by means of an icon
IconUrl URL? Optional icon
Value PrimitiveType The data field's value
Actions [DataField] Collection of data fields that are either DataFieldWithAction, DataFieldWithIntentBasedNavigation, DataFieldWithNavigationPath, or DataFieldWithUrl

Applicable Annotation Terms:

RecommendationStateType

Type: Byte

Indicates whether a field contains or has a recommended value

Editable fields for which a recommendation has been pre-filled or that have recommendations that differ from existing human input need to be highlighted.

Allowed Value Description
0 regular - with human or default input, no recommendation
1 highlighted - without human input and with recommendation
2 warning - with human or default input and with recommendation

RecommendationListType

Reference to a recommendation list

A recommendation consists of one or more values for editable fields plus a rank between 0.0 and 9.9, with 9.9 being the best recommendation.

Property Type Description
CollectionPath String Resource path of a collection of recommended values
RankProperty String Name of the property within the collection of recommended values that describes the rank of the recommendation
Binding [RecommendationBinding] List of pairs of a local property and recommended value property

RecommendationBinding

Property Type Description
LocalDataProperty PropertyPath Path to editable property for which recommended values exist
ValueListProperty String Path to property in the collection of recommended values. Format is identical to PropertyPath annotations.

ActionName

Type: String

Name of an Action, Function, ActionImport, or FunctionImport in scope

Possible values are