From daf2444e158f2c0767db16266556b2be8399973b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= Date: Mon, 7 Oct 2024 15:52:14 +0200 Subject: [PATCH] Undeprecate `Common.SecondaryKey` (#343) Co-authored-by: Ralf Handl --- vocabularies/Common.json | 6 +- vocabularies/Common.md | 394 +++++++++++++++++++-------------------- vocabularies/Common.xml | 13 +- 3 files changed, 204 insertions(+), 209 deletions(-) diff --git a/vocabularies/Common.json b/vocabularies/Common.json index 4f0b49b4..c555a95c 100644 --- a/vocabularies/Common.json +++ b/vocabularies/Common.json @@ -182,10 +182,8 @@ "$Collection": true, "$Type": "Edm.PropertyPath", "$AppliesTo": ["EntityType"], - "@Core.Revisions": [ - { "Kind": "Deprecated", "Description": "Use term `AlternateKeys` from the OASIS Core vocabulary instead" } - ], - "@Core.Description": "The listed properties form a secondary key. Multiple secondary keys are possible using different qualifiers." + "@Core.Description": "The listed properties form a secondary key", + "@Core.LongDescription": "Multiple secondary keys are possible using different qualifiers.\n Unlike [`Core.AlternateKeys`](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#AlternateKeys),\n secondary keys need not support addressing an entity in a resource path." }, "MinOccurs": { "$Kind": "Term", diff --git a/vocabularies/Common.md b/vocabularies/Common.md index 3739eb86..01529047 100644 --- a/vocabularies/Common.md +++ b/vocabularies/Common.md @@ -28,90 +28,90 @@ Term|Type|Description [IsUnit](Common.xml#L219)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Annotated property or parameter is a unit of measure [UnitSpecificScale](Common.xml#L223)|PrimitiveType|The number of fractional decimal digits of a currency amount or measured quantity
The annotated property contains a currency code or unit of measure, and the annotation value specifies the default scale of numeric values with that currency code or unit of measure. Can be used in e.g. a list of available currency codes or units of measure, or a list of measuring devices to specify the number of fractional digits captured by that device. [UnitSpecificPrecision](Common.xml#L228) *([Experimental](Common.md#Experimental))*|PrimitiveType|The number of significant decimal digits of a currency amount or measured quantity
The annotated property contains a currency code or unit of measure, and the annotation value specifies the default precision of numeric values with that currency code or unit of measure. Can be used in e.g. a list of available currency codes or units of measure, or a list of measuring devices to specify the number of significant digits captured by that device. -[SecondaryKey](Common.xml#L234) *(Deprecated)*|\[PropertyPath\]|Use term `AlternateKeys` from the OASIS Core vocabulary instead -[MinOccurs](Common.xml#L246)|Int64|The annotated set or collection contains at least this number of items -[MaxOccurs](Common.xml#L250)|Int64|The annotated set or collection contains at most this number of items -[AssociationEntity](Common.xml#L254)|\[NavigationPropertyPath\]|Entity representing an n:m association with attributes -[DerivedNavigation](Common.xml#L261)|NavigationPropertyPath|Shortcut for a multi-segment navigation, contains the long path with all its segments -[Masked](Common.xml#L267) *(Deprecated)*|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Use terms `MaskedValue` instead -[MaskedValue](Common.xml#L282) *([Experimental](Common.md#Experimental))*|String?|Property contains sensitive data that is by default not transferred
By default a masked property is excluded from responses and instead an instance annotation with this term is sent, containing a masked value that can be rendered by user interfaces. -[RevealOnDemand](Common.xml#L291) *([Experimental](Common.md#Experimental))*|Boolean|Unmasked data for this property can be requested with custom query option `masked-values=false` -[SemanticObject](Common.xml#L297)|String?|Name of the Semantic Object represented as this entity type or identified by this property -[SemanticObjectMapping](Common.xml#L300)|\[[SemanticObjectMappingAbstract](#SemanticObjectMappingAbstract)\]|Maps properties of the annotated entity type or sibling properties of the annotated property to properties of the Semantic Object
This allows "renaming" of properties in the current context to match property names of the Semantic Object, e.g. `SenderPartyID` to `PartyID`. Only properties explicitly listed in the mapping are renamed, all other properties are available for intent-based navigation with their "local" name. -[SemanticObjectUnavailableActions](Common.xml#L321)|\[String\]|List of actions that are not available in the current state of the instance of the Semantic Object -[IsInstanceAnnotation](Common.xml#L325)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Term can also be used as instance annotation; AppliesTo of this term specifies where it can be applied -[FilterExpressionRestrictions](Common.xml#L355) *(Deprecated)*|\[[FilterExpressionRestrictionType](#FilterExpressionRestrictionType)\]|Use term Capabilities.FilterRestrictions instead -[FieldControl](Common.xml#L398)|[FieldControlType?](#FieldControlType)|Control state of a property, parameter, or the media stream of a media entity
This term can be used for static field control, providing an enumeration member value in $metadata, as well as dynamically, providing a `Path` expression.
In the dynamic case the property referenced by the `Path` expression MUST be of type `Edm.Byte` to accommodate OData V2 services as well as V4 infrastructures that don't support enumeration types. -[ExceptionCategory](Common.xml#L455) *([Experimental](Common.md#Experimental))*|String|A machine-readable exception category -[Application](Common.xml#L460) *([Experimental](Common.md#Experimental))*|[ApplicationType](#ApplicationType)|... -[Timestamp](Common.xml#L480) *([Experimental](Common.md#Experimental))*|DateTimeOffset|... -[TransactionId](Common.xml#L485) *([Experimental](Common.md#Experimental))*|String|... -[ErrorResolution](Common.xml#L490) *([Experimental](Common.md#Experimental))*|[ErrorResolutionType](#ErrorResolutionType)|Hints for resolving this error -[Messages](Common.xml#L508)|\[ComplexType\]|Collection of end-user messages

The name of the message type is service-specific, its structure components are identified by naming convention, following the names of the OData error response structure.

The minimum structure is

-[additionalTargets](Common.xml#L524) *([Experimental](Common.md#Experimental))*|\[String\]|Additional targets for the message
This instance annotation can be applied to the `error` object and the objects within the `details` array of an OData error response -[longtextUrl](Common.xml#L530)|URL|Location of the message long text
This instance annotation can be applied to the `error` object and the objects within the `details` array of an OData error response -[numericSeverity](Common.xml#L536)|[NumericMessageSeverityType](#NumericMessageSeverityType)|Classifies an end-user message as info, success, warning, or error
This instance annotation can be applied to the `error` object and the objects within the `details` array of an OData error response -[MaximumNumericMessageSeverity](Common.xml#L541) *([Experimental](Common.md#Experimental))*|[NumericMessageSeverityType?](#NumericMessageSeverityType)|The maximum severity of all end-user messages attached to an entity, null if no messages are attached
This metadata annotation can be applied to entity types that are also annotated with term [`Common.Messages`](#Messages) -[IsActionCritical](Common.xml#L570)|Boolean|Criticality of the function or action to enforce a warning or similar before it's executed -[Attributes](Common.xml#L574)|\[PropertyPath\]|Attributes related to this property, which may occur in denormalized entity types -[RelatedRecursiveHierarchy](Common.xml#L578)|AnnotationPath|A recursive hierarchy related to this property. The annotation path must end in Aggregation.RecursiveHierarchy. -[Interval](Common.xml#L582)|[IntervalType](#IntervalType)|An interval with lower and upper boundaries described by two properties -[ResultContext](Common.xml#L605)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|The annotated entity type has one or more containment navigation properties. An instance of the annotated entity type provides the context required for determining the target entity sets reached by these containment navigation properties. -[SAPObjectNodeType](Common.xml#L613) *([Experimental](Common.md#Experimental))*|[SAPObjectNodeTypeType](#SAPObjectNodeTypeType)|The SAP Object Node Type represented by the annotated entity type
SAP Object Node Types define the structure of SAP Object Types, which are a generalization of Business Object, Technical Object, Configuration Object, and Analytical Object. -[Composition](Common.xml#L629) *([Experimental](Common.md#Experimental))*|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|The annotated navigation property represents a logical composition, even though it is non-containment
The entities related via this navigation property have an existential dependency on their composition parent. The entity set of the composition parent MUST contain a NavigationPropertyBinding for this navigation property. -[SAPObjectNodeTypeReference](Common.xml#L638) *([Experimental](Common.md#Experimental))*|String|The entity referenced by the annotated property has the [`SAPObjectNodeType`](#SAPObjectNodeType) with this name
The entity containing the property and the entity referenced by it will in general have different SAP Object Node Types. -[IsNaturalPerson](Common.xml#L646)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|The annotated entity type (e.g. `Employee`) or annotation (e.g. `IsImageUrl`) represents a natural person -[ValueList](Common.xml#L652)|[ValueListType](#ValueListType)|Specifies how to get a list of acceptable values for a property or parameter
The value list can be based on user input that is passed in the value list request. The value list can be used for type-ahead and classical pick lists. -[ValueListRelevantQualifiers](Common.xml#L726)|\[[SimpleIdentifier](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#SimpleIdentifier)\]|List of qualifiers of relevant ValueList annotations
The value of this annotation is a dynamic expression for calculating the qualifiers of relevant value lists depending on the values of one or more other properties. -[ValueListWithFixedValues](Common.xml#L731)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|If specified as true, there's only one value list mapping and its value list consists of a small number of fixed values
Applicable Annotation Terms: -[ValueListShowValuesImmediately](Common.xml#L740) *([Experimental](Common.md#Experimental))*|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|A value list with a very small number of fixed values, can decide to show all values immediately -[ValueListForValidation](Common.xml#L745)|String|Contains the qualifier of the ValueList or ValueListMapping that should be used for validation
An empty string identifies the ValueList or ValueListMapping without a qualifier. -[ValueListReferences](Common.xml#L750)|\[URL\]|A list of URLs of CSDL documents containing value list mappings for this parameter or property -[ValueListMapping](Common.xml#L755)|[ValueListMappingType](#ValueListMappingType)|Specifies the mapping between data service properties and value list properties
The value list can be filtered based on user input. It can be used for type-ahead and classical pick lists. There may be many alternative mappings with different qualifiers. -[IsCalendarYear](Common.xml#L867)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a year number as string following the logical pattern (-?)YYYY(Y*) consisting of an optional minus sign for years B.C. followed by at least four digits. The string matches the regex pattern -?([1-9][0-9]{3,}\|0[0-9]{3}) -[IsCalendarHalfyear](Common.xml#L876)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a halfyear number as string following the logical pattern H consisting of a single digit. The string matches the regex pattern [1-2] -[IsCalendarQuarter](Common.xml#L885)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar quarter number as string following the logical pattern Q consisting of a single digit. The string matches the regex pattern [1-4] -[IsCalendarMonth](Common.xml#L894)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar month number as string following the logical pattern MM consisting of two digits. The string matches the regex pattern 0[1-9]\|1[0-2] -[IsCalendarWeek](Common.xml#L903)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar week number as string following the logical pattern WW consisting of two digits. The string matches the regex pattern 0[1-9]\|[1-4][0-9]\|5[0-3] -[IsDayOfCalendarMonth](Common.xml#L912)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Day number relative to a calendar month. Valid values are between 1 and 31. -[IsDayOfCalendarYear](Common.xml#L920)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Day number relative to a calendar year. Valid values are between 1 and 366. -[IsCalendarYearHalfyear](Common.xml#L928)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar year and halfyear as string following the logical pattern (-?)YYYY(Y*)H consisting of an optional minus sign for years B.C. followed by at least five digits, where the last digit represents the halfyear. The string matches the regex pattern -?([1-9][0-9]{3,}\|0[0-9]{3})[1-2] -[IsCalendarYearQuarter](Common.xml#L938)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar year and quarter as string following the logical pattern (-?)YYYY(Y*)Q consisting of an optional minus sign for years B.C. followed by at least five digits, where the last digit represents the quarter. The string matches the regex pattern -?([1-9][0-9]{3,}\|0[0-9]{3})[1-4] -[IsCalendarYearMonth](Common.xml#L948)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar year and month as string following the logical pattern (-?)YYYY(Y*)MM consisting of an optional minus sign for years B.C. followed by at least six digits, where the last two digits represent the months January to December. The string matches the regex pattern -?([1-9][0-9]{3,}\|0[0-9]{3})(0[1-9]\|1[0-2]) -[IsCalendarYearWeek](Common.xml#L959)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar year and week as string following the logical pattern (-?)YYYY(Y*)WW consisting of an optional minus sign for years B.C. followed by at least six digits, where the last two digits represent week number in the year. The string matches the regex pattern -?([1-9][0-9]{3,}\|0[0-9]{3})(0[1-9]\|[1-4][0-9]\|5[0-3]) -[IsCalendarDate](Common.xml#L969)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar date: year, month and day as string following the logical pattern (-?)YYYY(Y*)MMDD consisting of an optional minus sign for years B.C. followed by at least eight digits, where the last four digits represent the months January to December (MM) and the day of the month (DD). The string matches the regex pattern -?([1-9][0-9]{3,}\|0[0-9]{3})(0[1-9]\|1[0-2])(0[1-9]\|[12][0-9]\|3[01]) The regex pattern does not reflect the additional constraint for "Day-of-month Values": The day value must be no more than 30 if month is one of 04, 06, 09, or 11, no more than 28 if month is 02 and year is not divisible by 4, or is divisible by 100 but not by 400, and no more than 29 if month is 02 and year is divisible by 400, or by 4 but not by 100. -[IsFiscalYear](Common.xml#L986)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal year number as string following the logical pattern YYYY consisting of four digits. The string matches the regex pattern [1-9][0-9]{3} -[IsFiscalPeriod](Common.xml#L995)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal period as string following the logical pattern PPP consisting of three digits. The string matches the regex pattern [0-9]{3} -[IsFiscalYearPeriod](Common.xml#L1004)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal year and period as string following the logical pattern YYYYPPP consisting of seven digits, where the last three digits represent the fiscal period in the year. The string matches the regex pattern ([1-9][0-9]{3})([0-9]{3}) -[IsFiscalQuarter](Common.xml#L1014)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal quarter number as string following the logical pattern Q consisting of a single digit. The string matches the regex pattern [1-4] -[IsFiscalYearQuarter](Common.xml#L1022)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal year and quarter as string following the logical pattern YYYYQ consisting of five digits, where the last digit represents the quarter. The string matches the regex pattern [1-9][0-9]{3}[1-4] -[IsFiscalWeek](Common.xml#L1031)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal week number as string following the logical pattern WW consisting of two digits. The string matches the regex pattern 0[1-9]\|[1-4][0-9]\|5[0-3] -[IsFiscalYearWeek](Common.xml#L1039)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal year and week as string following the logical pattern YYYYWW consisting of six digits, where the last two digits represent the week number in the year. The string matches the regex pattern [1-9][0-9]{3}(0[1-9]\|[1-4][0-9]\|5[0-3]) -[IsDayOfFiscalYear](Common.xml#L1048)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Day number relative to a fiscal year. Valid values are between 1 and 371. -[IsFiscalYearVariant](Common.xml#L1055)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal year variant -[MutuallyExclusiveTerm](Common.xml#L1063)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Only one term of the group identified with the Qualifier attribute can be applied -[DraftRoot](Common.xml#L1069)|[DraftRootType](#DraftRootType)|Root entities of business documents that support the draft pattern -[DraftNode](Common.xml#L1110)|[DraftNodeType](#DraftNodeType)|Entities in this set are parts of business documents that support the draft pattern -[DraftActivationVia](Common.xml#L1132)|\[[SimpleIdentifier](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#SimpleIdentifier)\]|Draft entities in this set are indirectly activated via draft entities in the referenced entity sets -[EditableFieldFor](Common.xml#L1136)|PropertyPath|The annotated property is an editable field for the referenced key property -[SemanticKey](Common.xml#L1166)|\[PropertyPath\]|The listed properties form the semantic key, i.e. they are unique modulo IsActiveEntity -[SideEffects](Common.xml#L1170)|[SideEffectsType](#SideEffectsType)|Describes side-effects of modification operations -[DefaultValuesFunction](Common.xml#L1253)|[QualifiedName](#QualifiedName)|Function to calculate default values based on user input that is only known to the client and "context information" that is already available to the service
The default values function must have a bound overload whose binding parameter type matches the annotation target
- for an entity set: collection of entity type of entity set
- for a navigation property: identical to the type of the navigation property (single- or collection-valued)
- for a bound action/function: identical to the binding parameter type of the annotated action/function
In addition the overload can have non-binding parameters for values that the user has already entered:
- for an entity set or navigation property: each non-binding parameter name and type must match the name and type of a property of the entity to be created
- for an action or function: each non-binding parameter name and type must match the name and type of a non-binding parameter of the action or function to be called
The result type of the default values function is a complex type whose properties correspond in name and type to a subset of
- the properties of the entity to create, or
- the parameters of the action or function to call -[DerivedDefaultValue](Common.xml#L1282) *([Experimental](Common.md#Experimental))*|String|Function import to derive a default value for the property from a given context.
Function import has two parameters of complex types:
- `parameters`, a structure resembling the entity type the parameter entity set related to the entity set of the annotated property
- `properties`, a structure resembling the type of the entity set of the annotated property
The return type must be of the same type as the annotated property.
Arguments passed to the function import are used as context for deriving the default value. The function import returns this default value, or null in case such a value could not be determined. -[FilterDefaultValue](Common.xml#L1303)|PrimitiveType?|A default value for the property to be used in filter expressions. -[FilterDefaultValueHigh](Common.xml#L1307) *([Experimental](Common.md#Experimental))*|PrimitiveType?|A default upper limit for the property to be used in 'less than or equal' filter expressions. -[DerivedFilterDefaultValue](Common.xml#L1312) *([Experimental](Common.md#Experimental))*|String|Function import to derive a default value for the property from a given context in order to use it in filter expressions.
Function import has two parameters of complex types:
- `parameters`, a structure resembling the entity type the parameter entity set related to the entity set of the annotated property
- `properties`, a structure resembling the type of the entity set of the annotated property
The return type must be of the same type as the annotated property.
Arguments passed to the function import are used as context for deriving the default value. The function import returns this default value, or null in case such a value could not be determined. -[SortOrder](Common.xml#L1336)|\[[SortOrderType](#SortOrderType)\]|List of sort criteria
The items of the annotated entity set or the items of the collection of the annotated entity type are sorted by the first entry of the SortOrder collection. Items with same value for this first sort criteria are sorted by the second entry of the SortOrder collection, and so on. -[RecursiveHierarchy](Common.xml#L1396) *(Deprecated)*|[RecursiveHierarchyType](#RecursiveHierarchyType)|Use terms [Aggregation.RecursiveHierarchy](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Aggregation.V1.md#RecursiveHierarchy) and [Hierarchy.RecursiveHierarchy](https://github.com/SAP/odata-vocabularies/blob/main/vocabularies/Hierarchy.md#RecursiveHierarchy) instead -[CreatedAt](Common.xml#L1444)|DateTimeOffset?|Creation timestamp -[CreatedBy](Common.xml#L1448)|[UserID?](#UserID)|First editor -[ChangedAt](Common.xml#L1452)|DateTimeOffset?|Last modification timestamp -[ChangedBy](Common.xml#L1456)|[UserID?](#UserID)|Last editor -[OriginalProtocolVersion](Common.xml#L1468)|String|Original protocol version of a converted (V4) CSDL document, allowed values `2.0` and `3.0` -[ApplyMultiUnitBehaviorForSortingAndFiltering](Common.xml#L1473) *([Experimental](Common.md#Experimental))*|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Sorting and filtering of amounts in multiple currencies needs special consideration
TODO: add link to UX documentation on https://experience.sap.com/fiori-design/ -[mediaUploadLink](Common.xml#L1479) *([Experimental](Common.md#Experimental))*|URL|URL for uploading new media content to a Document Management Service
In contrast to the `@odata.mediaEditLink` this URL allows to upload new media content without directly changing a stream property or media resource. The upload request typically uses HTTP POST with `Content-Type: multipart/form-data` following RFC 7578. The upload request must contain one multipart representing the content of the file. The `name` parameter in the `Content-Disposition` header (as described in RFC 7578) is irrelevant, but the `filename` parameter is expected. If the request succeeds the response will contain a JSON body of `Content-Type: application/json` with a JSON property `readLink`. The newly uploaded media resource can be linked to the stream property by changing the `@odata.mediaReadLink` to the value of this `readLink` in a subsequent PATCH request to the OData entity. -[PrimitivePropertyPath](Common.xml#L1494) *([Experimental](Common.md#Experimental))*|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|A term or term property with this tag whose type is (a collection of) `Edm.PropertyPath` MUST resolve to a primitive structural property -[WebSocketBaseURL](Common.xml#L1499) *([Experimental](Common.md#Experimental))*|URL|Base URL for WebSocket connections +[SecondaryKey](Common.xml#L234)|\[PropertyPath\]|The listed properties form a secondary key
Multiple secondary keys are possible using different qualifiers. Unlike [`Core.AlternateKeys`](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#AlternateKeys), secondary keys need not support addressing an entity in a resource path. +[MinOccurs](Common.xml#L243)|Int64|The annotated set or collection contains at least this number of items +[MaxOccurs](Common.xml#L247)|Int64|The annotated set or collection contains at most this number of items +[AssociationEntity](Common.xml#L251)|\[NavigationPropertyPath\]|Entity representing an n:m association with attributes +[DerivedNavigation](Common.xml#L258)|NavigationPropertyPath|Shortcut for a multi-segment navigation, contains the long path with all its segments +[Masked](Common.xml#L264) *(Deprecated)*|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Use terms `MaskedValue` instead +[MaskedValue](Common.xml#L279) *([Experimental](Common.md#Experimental))*|String?|Property contains sensitive data that is by default not transferred
By default a masked property is excluded from responses and instead an instance annotation with this term is sent, containing a masked value that can be rendered by user interfaces. +[RevealOnDemand](Common.xml#L288) *([Experimental](Common.md#Experimental))*|Boolean|Unmasked data for this property can be requested with custom query option `masked-values=false` +[SemanticObject](Common.xml#L294)|String?|Name of the Semantic Object represented as this entity type or identified by this property +[SemanticObjectMapping](Common.xml#L297)|\[[SemanticObjectMappingAbstract](#SemanticObjectMappingAbstract)\]|Maps properties of the annotated entity type or sibling properties of the annotated property to properties of the Semantic Object
This allows "renaming" of properties in the current context to match property names of the Semantic Object, e.g. `SenderPartyID` to `PartyID`. Only properties explicitly listed in the mapping are renamed, all other properties are available for intent-based navigation with their "local" name. +[SemanticObjectUnavailableActions](Common.xml#L318)|\[String\]|List of actions that are not available in the current state of the instance of the Semantic Object +[IsInstanceAnnotation](Common.xml#L322)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Term can also be used as instance annotation; AppliesTo of this term specifies where it can be applied +[FilterExpressionRestrictions](Common.xml#L352) *(Deprecated)*|\[[FilterExpressionRestrictionType](#FilterExpressionRestrictionType)\]|Use term Capabilities.FilterRestrictions instead +[FieldControl](Common.xml#L395)|[FieldControlType?](#FieldControlType)|Control state of a property, parameter, or the media stream of a media entity
This term can be used for static field control, providing an enumeration member value in $metadata, as well as dynamically, providing a `Path` expression.
In the dynamic case the property referenced by the `Path` expression MUST be of type `Edm.Byte` to accommodate OData V2 services as well as V4 infrastructures that don't support enumeration types. +[ExceptionCategory](Common.xml#L452) *([Experimental](Common.md#Experimental))*|String|A machine-readable exception category +[Application](Common.xml#L457) *([Experimental](Common.md#Experimental))*|[ApplicationType](#ApplicationType)|... +[Timestamp](Common.xml#L477) *([Experimental](Common.md#Experimental))*|DateTimeOffset|... +[TransactionId](Common.xml#L482) *([Experimental](Common.md#Experimental))*|String|... +[ErrorResolution](Common.xml#L487) *([Experimental](Common.md#Experimental))*|[ErrorResolutionType](#ErrorResolutionType)|Hints for resolving this error +[Messages](Common.xml#L505)|\[ComplexType\]|Collection of end-user messages

The name of the message type is service-specific, its structure components are identified by naming convention, following the names of the OData error response structure.

The minimum structure is

+[additionalTargets](Common.xml#L521) *([Experimental](Common.md#Experimental))*|\[String\]|Additional targets for the message
This instance annotation can be applied to the `error` object and the objects within the `details` array of an OData error response +[longtextUrl](Common.xml#L527)|URL|Location of the message long text
This instance annotation can be applied to the `error` object and the objects within the `details` array of an OData error response +[numericSeverity](Common.xml#L533)|[NumericMessageSeverityType](#NumericMessageSeverityType)|Classifies an end-user message as info, success, warning, or error
This instance annotation can be applied to the `error` object and the objects within the `details` array of an OData error response +[MaximumNumericMessageSeverity](Common.xml#L538) *([Experimental](Common.md#Experimental))*|[NumericMessageSeverityType?](#NumericMessageSeverityType)|The maximum severity of all end-user messages attached to an entity, null if no messages are attached
This metadata annotation can be applied to entity types that are also annotated with term [`Common.Messages`](#Messages) +[IsActionCritical](Common.xml#L567)|Boolean|Criticality of the function or action to enforce a warning or similar before it's executed +[Attributes](Common.xml#L571)|\[PropertyPath\]|Attributes related to this property, which may occur in denormalized entity types +[RelatedRecursiveHierarchy](Common.xml#L575)|AnnotationPath|A recursive hierarchy related to this property. The annotation path must end in Aggregation.RecursiveHierarchy. +[Interval](Common.xml#L579)|[IntervalType](#IntervalType)|An interval with lower and upper boundaries described by two properties +[ResultContext](Common.xml#L602)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|The annotated entity type has one or more containment navigation properties. An instance of the annotated entity type provides the context required for determining the target entity sets reached by these containment navigation properties. +[SAPObjectNodeType](Common.xml#L610) *([Experimental](Common.md#Experimental))*|[SAPObjectNodeTypeType](#SAPObjectNodeTypeType)|The SAP Object Node Type represented by the annotated entity type
SAP Object Node Types define the structure of SAP Object Types, which are a generalization of Business Object, Technical Object, Configuration Object, and Analytical Object. +[Composition](Common.xml#L626) *([Experimental](Common.md#Experimental))*|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|The annotated navigation property represents a logical composition, even though it is non-containment
The entities related via this navigation property have an existential dependency on their composition parent. The entity set of the composition parent MUST contain a NavigationPropertyBinding for this navigation property. +[SAPObjectNodeTypeReference](Common.xml#L635) *([Experimental](Common.md#Experimental))*|String|The entity referenced by the annotated property has the [`SAPObjectNodeType`](#SAPObjectNodeType) with this name
The entity containing the property and the entity referenced by it will in general have different SAP Object Node Types. +[IsNaturalPerson](Common.xml#L643)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|The annotated entity type (e.g. `Employee`) or annotation (e.g. `IsImageUrl`) represents a natural person +[ValueList](Common.xml#L649)|[ValueListType](#ValueListType)|Specifies how to get a list of acceptable values for a property or parameter
The value list can be based on user input that is passed in the value list request. The value list can be used for type-ahead and classical pick lists. +[ValueListRelevantQualifiers](Common.xml#L723)|\[[SimpleIdentifier](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#SimpleIdentifier)\]|List of qualifiers of relevant ValueList annotations
The value of this annotation is a dynamic expression for calculating the qualifiers of relevant value lists depending on the values of one or more other properties. +[ValueListWithFixedValues](Common.xml#L728)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|If specified as true, there's only one value list mapping and its value list consists of a small number of fixed values
Applicable Annotation Terms: +[ValueListShowValuesImmediately](Common.xml#L737) *([Experimental](Common.md#Experimental))*|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|A value list with a very small number of fixed values, can decide to show all values immediately +[ValueListForValidation](Common.xml#L742)|String|Contains the qualifier of the ValueList or ValueListMapping that should be used for validation
An empty string identifies the ValueList or ValueListMapping without a qualifier. +[ValueListReferences](Common.xml#L747)|\[URL\]|A list of URLs of CSDL documents containing value list mappings for this parameter or property +[ValueListMapping](Common.xml#L752)|[ValueListMappingType](#ValueListMappingType)|Specifies the mapping between data service properties and value list properties
The value list can be filtered based on user input. It can be used for type-ahead and classical pick lists. There may be many alternative mappings with different qualifiers. +[IsCalendarYear](Common.xml#L864)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a year number as string following the logical pattern (-?)YYYY(Y*) consisting of an optional minus sign for years B.C. followed by at least four digits. The string matches the regex pattern -?([1-9][0-9]{3,}\|0[0-9]{3}) +[IsCalendarHalfyear](Common.xml#L873)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a halfyear number as string following the logical pattern H consisting of a single digit. The string matches the regex pattern [1-2] +[IsCalendarQuarter](Common.xml#L882)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar quarter number as string following the logical pattern Q consisting of a single digit. The string matches the regex pattern [1-4] +[IsCalendarMonth](Common.xml#L891)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar month number as string following the logical pattern MM consisting of two digits. The string matches the regex pattern 0[1-9]\|1[0-2] +[IsCalendarWeek](Common.xml#L900)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar week number as string following the logical pattern WW consisting of two digits. The string matches the regex pattern 0[1-9]\|[1-4][0-9]\|5[0-3] +[IsDayOfCalendarMonth](Common.xml#L909)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Day number relative to a calendar month. Valid values are between 1 and 31. +[IsDayOfCalendarYear](Common.xml#L917)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Day number relative to a calendar year. Valid values are between 1 and 366. +[IsCalendarYearHalfyear](Common.xml#L925)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar year and halfyear as string following the logical pattern (-?)YYYY(Y*)H consisting of an optional minus sign for years B.C. followed by at least five digits, where the last digit represents the halfyear. The string matches the regex pattern -?([1-9][0-9]{3,}\|0[0-9]{3})[1-2] +[IsCalendarYearQuarter](Common.xml#L935)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar year and quarter as string following the logical pattern (-?)YYYY(Y*)Q consisting of an optional minus sign for years B.C. followed by at least five digits, where the last digit represents the quarter. The string matches the regex pattern -?([1-9][0-9]{3,}\|0[0-9]{3})[1-4] +[IsCalendarYearMonth](Common.xml#L945)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar year and month as string following the logical pattern (-?)YYYY(Y*)MM consisting of an optional minus sign for years B.C. followed by at least six digits, where the last two digits represent the months January to December. The string matches the regex pattern -?([1-9][0-9]{3,}\|0[0-9]{3})(0[1-9]\|1[0-2]) +[IsCalendarYearWeek](Common.xml#L956)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar year and week as string following the logical pattern (-?)YYYY(Y*)WW consisting of an optional minus sign for years B.C. followed by at least six digits, where the last two digits represent week number in the year. The string matches the regex pattern -?([1-9][0-9]{3,}\|0[0-9]{3})(0[1-9]\|[1-4][0-9]\|5[0-3]) +[IsCalendarDate](Common.xml#L966)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a calendar date: year, month and day as string following the logical pattern (-?)YYYY(Y*)MMDD consisting of an optional minus sign for years B.C. followed by at least eight digits, where the last four digits represent the months January to December (MM) and the day of the month (DD). The string matches the regex pattern -?([1-9][0-9]{3,}\|0[0-9]{3})(0[1-9]\|1[0-2])(0[1-9]\|[12][0-9]\|3[01]) The regex pattern does not reflect the additional constraint for "Day-of-month Values": The day value must be no more than 30 if month is one of 04, 06, 09, or 11, no more than 28 if month is 02 and year is not divisible by 4, or is divisible by 100 but not by 400, and no more than 29 if month is 02 and year is divisible by 400, or by 4 but not by 100. +[IsFiscalYear](Common.xml#L983)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal year number as string following the logical pattern YYYY consisting of four digits. The string matches the regex pattern [1-9][0-9]{3} +[IsFiscalPeriod](Common.xml#L992)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal period as string following the logical pattern PPP consisting of three digits. The string matches the regex pattern [0-9]{3} +[IsFiscalYearPeriod](Common.xml#L1001)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal year and period as string following the logical pattern YYYYPPP consisting of seven digits, where the last three digits represent the fiscal period in the year. The string matches the regex pattern ([1-9][0-9]{3})([0-9]{3}) +[IsFiscalQuarter](Common.xml#L1011)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal quarter number as string following the logical pattern Q consisting of a single digit. The string matches the regex pattern [1-4] +[IsFiscalYearQuarter](Common.xml#L1019)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal year and quarter as string following the logical pattern YYYYQ consisting of five digits, where the last digit represents the quarter. The string matches the regex pattern [1-9][0-9]{3}[1-4] +[IsFiscalWeek](Common.xml#L1028)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal week number as string following the logical pattern WW consisting of two digits. The string matches the regex pattern 0[1-9]\|[1-4][0-9]\|5[0-3] +[IsFiscalYearWeek](Common.xml#L1036)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal year and week as string following the logical pattern YYYYWW consisting of six digits, where the last two digits represent the week number in the year. The string matches the regex pattern [1-9][0-9]{3}(0[1-9]\|[1-4][0-9]\|5[0-3]) +[IsDayOfFiscalYear](Common.xml#L1045)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Day number relative to a fiscal year. Valid values are between 1 and 371. +[IsFiscalYearVariant](Common.xml#L1052)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Property encodes a fiscal year variant +[MutuallyExclusiveTerm](Common.xml#L1060)|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Only one term of the group identified with the Qualifier attribute can be applied +[DraftRoot](Common.xml#L1066)|[DraftRootType](#DraftRootType)|Root entities of business documents that support the draft pattern +[DraftNode](Common.xml#L1107)|[DraftNodeType](#DraftNodeType)|Entities in this set are parts of business documents that support the draft pattern +[DraftActivationVia](Common.xml#L1129)|\[[SimpleIdentifier](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#SimpleIdentifier)\]|Draft entities in this set are indirectly activated via draft entities in the referenced entity sets +[EditableFieldFor](Common.xml#L1133)|PropertyPath|The annotated property is an editable field for the referenced key property +[SemanticKey](Common.xml#L1163)|\[PropertyPath\]|The listed properties form the semantic key, i.e. they are unique modulo IsActiveEntity +[SideEffects](Common.xml#L1167)|[SideEffectsType](#SideEffectsType)|Describes side-effects of modification operations +[DefaultValuesFunction](Common.xml#L1250)|[QualifiedName](#QualifiedName)|Function to calculate default values based on user input that is only known to the client and "context information" that is already available to the service
The default values function must have a bound overload whose binding parameter type matches the annotation target
- for an entity set: collection of entity type of entity set
- for a navigation property: identical to the type of the navigation property (single- or collection-valued)
- for a bound action/function: identical to the binding parameter type of the annotated action/function
In addition the overload can have non-binding parameters for values that the user has already entered:
- for an entity set or navigation property: each non-binding parameter name and type must match the name and type of a property of the entity to be created
- for an action or function: each non-binding parameter name and type must match the name and type of a non-binding parameter of the action or function to be called
The result type of the default values function is a complex type whose properties correspond in name and type to a subset of
- the properties of the entity to create, or
- the parameters of the action or function to call +[DerivedDefaultValue](Common.xml#L1279) *([Experimental](Common.md#Experimental))*|String|Function import to derive a default value for the property from a given context.
Function import has two parameters of complex types:
- `parameters`, a structure resembling the entity type the parameter entity set related to the entity set of the annotated property
- `properties`, a structure resembling the type of the entity set of the annotated property
The return type must be of the same type as the annotated property.
Arguments passed to the function import are used as context for deriving the default value. The function import returns this default value, or null in case such a value could not be determined. +[FilterDefaultValue](Common.xml#L1300)|PrimitiveType?|A default value for the property to be used in filter expressions. +[FilterDefaultValueHigh](Common.xml#L1304) *([Experimental](Common.md#Experimental))*|PrimitiveType?|A default upper limit for the property to be used in 'less than or equal' filter expressions. +[DerivedFilterDefaultValue](Common.xml#L1309) *([Experimental](Common.md#Experimental))*|String|Function import to derive a default value for the property from a given context in order to use it in filter expressions.
Function import has two parameters of complex types:
- `parameters`, a structure resembling the entity type the parameter entity set related to the entity set of the annotated property
- `properties`, a structure resembling the type of the entity set of the annotated property
The return type must be of the same type as the annotated property.
Arguments passed to the function import are used as context for deriving the default value. The function import returns this default value, or null in case such a value could not be determined. +[SortOrder](Common.xml#L1333)|\[[SortOrderType](#SortOrderType)\]|List of sort criteria
The items of the annotated entity set or the items of the collection of the annotated entity type are sorted by the first entry of the SortOrder collection. Items with same value for this first sort criteria are sorted by the second entry of the SortOrder collection, and so on. +[RecursiveHierarchy](Common.xml#L1393) *(Deprecated)*|[RecursiveHierarchyType](#RecursiveHierarchyType)|Use terms [Aggregation.RecursiveHierarchy](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Aggregation.V1.md#RecursiveHierarchy) and [Hierarchy.RecursiveHierarchy](https://github.com/SAP/odata-vocabularies/blob/main/vocabularies/Hierarchy.md#RecursiveHierarchy) instead +[CreatedAt](Common.xml#L1441)|DateTimeOffset?|Creation timestamp +[CreatedBy](Common.xml#L1445)|[UserID?](#UserID)|First editor +[ChangedAt](Common.xml#L1449)|DateTimeOffset?|Last modification timestamp +[ChangedBy](Common.xml#L1453)|[UserID?](#UserID)|Last editor +[OriginalProtocolVersion](Common.xml#L1465)|String|Original protocol version of a converted (V4) CSDL document, allowed values `2.0` and `3.0` +[ApplyMultiUnitBehaviorForSortingAndFiltering](Common.xml#L1470) *([Experimental](Common.md#Experimental))*|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|Sorting and filtering of amounts in multiple currencies needs special consideration
TODO: add link to UX documentation on https://experience.sap.com/fiori-design/ +[mediaUploadLink](Common.xml#L1476) *([Experimental](Common.md#Experimental))*|URL|URL for uploading new media content to a Document Management Service
In contrast to the `@odata.mediaEditLink` this URL allows to upload new media content without directly changing a stream property or media resource. The upload request typically uses HTTP POST with `Content-Type: multipart/form-data` following RFC 7578. The upload request must contain one multipart representing the content of the file. The `name` parameter in the `Content-Disposition` header (as described in RFC 7578) is irrelevant, but the `filename` parameter is expected. If the request succeeds the response will contain a JSON body of `Content-Type: application/json` with a JSON property `readLink`. The newly uploaded media resource can be linked to the stream property by changing the `@odata.mediaReadLink` to the value of this `readLink` in a subsequent PATCH request to the OData entity. +[PrimitivePropertyPath](Common.xml#L1491) *([Experimental](Common.md#Experimental))*|[Tag](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Tag)|A term or term property with this tag whose type is (a collection of) `Edm.PropertyPath` MUST resolve to a primitive structural property +[WebSocketBaseURL](Common.xml#L1496) *([Experimental](Common.md#Experimental))*|URL|Base URL for WebSocket connections ## [TextFormatType](Common.xml#L134) @@ -123,7 +123,7 @@ Member|Value|Description [html](Common.xml#L138)|1|Plain text with markup that can validly appear directly within an HTML DIV element -## [*SemanticObjectMappingAbstract*](Common.xml#L304) +## [*SemanticObjectMappingAbstract*](Common.xml#L301) Maps a property of the Semantic Object to a property of the annotated entity type or a sibling property of the annotated property or a constant value **Derived Types:** @@ -132,36 +132,36 @@ Maps a property of the Semantic Object to a property of the annotated entity typ Property|Type|Description :-------|:---|:---------- -[SemanticObjectProperty](Common.xml#L306)|String|Name of the Semantic Object property +[SemanticObjectProperty](Common.xml#L303)|String|Name of the Semantic Object property -## [SemanticObjectMappingType](Common.xml#L310): [SemanticObjectMappingAbstract](#SemanticObjectMappingAbstract) +## [SemanticObjectMappingType](Common.xml#L307): [SemanticObjectMappingAbstract](#SemanticObjectMappingAbstract) Property|Type|Description :-------|:---|:---------- -[*SemanticObjectProperty*](Common.xml#L306)|String|Name of the Semantic Object property -[LocalProperty](Common.xml#L311)|PropertyPath|Path to a local property that provides the value for the Semantic Object property +[*SemanticObjectProperty*](Common.xml#L303)|String|Name of the Semantic Object property +[LocalProperty](Common.xml#L308)|PropertyPath|Path to a local property that provides the value for the Semantic Object property -## [SemanticObjectMappingConstant](Common.xml#L315): [SemanticObjectMappingAbstract](#SemanticObjectMappingAbstract) *([Experimental](Common.md#Experimental))* +## [SemanticObjectMappingConstant](Common.xml#L312): [SemanticObjectMappingAbstract](#SemanticObjectMappingAbstract) *([Experimental](Common.md#Experimental))* Property|Type|Description :-------|:---|:---------- -[*SemanticObjectProperty*](Common.xml#L306)|String|Name of the Semantic Object property -[Constant](Common.xml#L317)|PrimitiveType|Constant value for the Semantic Object property +[*SemanticObjectProperty*](Common.xml#L303)|String|Name of the Semantic Object property +[Constant](Common.xml#L314)|PrimitiveType|Constant value for the Semantic Object property -## [FilterExpressionRestrictionType](Common.xml#L366) *(Deprecated)* +## [FilterExpressionRestrictionType](Common.xml#L363) *(Deprecated)* Use term Capabilities.FilterRestrictions instead -## [FilterExpressionType](Common.xml#L378) *(Deprecated)* +## [FilterExpressionType](Common.xml#L375) *(Deprecated)* Use term Capabilities.FilterRestrictions instead -## [FieldControlType](Common.xml#L403) +## [FieldControlType](Common.xml#L400) Control state of a property When changes are requested, the value of this annotation in the before-image or after-image @@ -169,117 +169,117 @@ When changes are requested, the value of this annotation in the before-image or Member|Value|Description :-----|----:|:---------- -[Mandatory](Common.xml#L409)|7|Property is mandatory from a business perspective

A request that

fails entirely if this annotation is Mandatory in the after-image of the request. The empty string is an empty value. Service-specific rules may consider other values, also of non-string type, empty. Values in draft entities are never considered empty. Mandatory properties SHOULD be decorated in the UI with an asterisk. Null or empty values can also be disallowed by restricting the property value range with the standard type facet Nullable or terms from the Validation vocabulary.

-[Optional](Common.xml#L425)|3|Property may have a value
This value does not make sense as a static annotation value. -[ReadOnly](Common.xml#L429)|1|Property value cannot be changed
A request to change the property to a value that differs from the before-image fails entirely according to [OData-Protocol, section 11.4.3](https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_UpdateanEntity) if this annotation is given dynamically as `ReadOnly` in the before-image of the request.
To statically mark a property as read-only use term [Core.Computed](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Computed) instead. -[Inapplicable](Common.xml#L439)|0|Property has no meaning in the current entity state
A request that sets the property to a non-initial non-null value fails entirely if this annotation is `Inapplicable` in the after-image of the request.
This value does not make sense as a static annotation value.
Example for dynamic use: in a travel expense report the property `DestinationCountry` is inapplicable if trip type is domestic, and mandatory if trip type is international. -[Hidden](Common.xml#L449)|0|Deprecated synonym for Inapplicable, do not use
To statically hide a property on a UI use [UI.Hidden](UI.md#Hidden) instead +[Mandatory](Common.xml#L406)|7|Property is mandatory from a business perspective

A request that

fails entirely if this annotation is Mandatory in the after-image of the request. The empty string is an empty value. Service-specific rules may consider other values, also of non-string type, empty. Values in draft entities are never considered empty. Mandatory properties SHOULD be decorated in the UI with an asterisk. Null or empty values can also be disallowed by restricting the property value range with the standard type facet Nullable or terms from the Validation vocabulary.

+[Optional](Common.xml#L422)|3|Property may have a value
This value does not make sense as a static annotation value. +[ReadOnly](Common.xml#L426)|1|Property value cannot be changed
A request to change the property to a value that differs from the before-image fails entirely according to [OData-Protocol, section 11.4.3](https://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_UpdateanEntity) if this annotation is given dynamically as `ReadOnly` in the before-image of the request.
To statically mark a property as read-only use term [Core.Computed](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#Computed) instead. +[Inapplicable](Common.xml#L436)|0|Property has no meaning in the current entity state
A request that sets the property to a non-initial non-null value fails entirely if this annotation is `Inapplicable` in the after-image of the request.
This value does not make sense as a static annotation value.
Example for dynamic use: in a travel expense report the property `DestinationCountry` is inapplicable if trip type is domestic, and mandatory if trip type is international. +[Hidden](Common.xml#L446)|0|Deprecated synonym for Inapplicable, do not use
To statically hide a property on a UI use [UI.Hidden](UI.md#Hidden) instead -## [ApplicationType](Common.xml#L465) *([Experimental](Common.md#Experimental))* +## [ApplicationType](Common.xml#L462) *([Experimental](Common.md#Experimental))* Property|Type|Description :-------|:---|:---------- -[Component](Common.xml#L467)|String?|Software component of service implementation -[ServiceRepository](Common.xml#L470)|String?|... -[ServiceId](Common.xml#L473)|String?|... -[ServiceVersion](Common.xml#L476)|String?|... +[Component](Common.xml#L464)|String?|Software component of service implementation +[ServiceRepository](Common.xml#L467)|String?|... +[ServiceId](Common.xml#L470)|String?|... +[ServiceVersion](Common.xml#L473)|String?|... -## [ErrorResolutionType](Common.xml#L495) *([Experimental](Common.md#Experimental))* +## [ErrorResolutionType](Common.xml#L492) *([Experimental](Common.md#Experimental))* Property|Type|Description :-------|:---|:---------- -[Analysis](Common.xml#L497)|String?|Short hint on how to analyze this error -[Note](Common.xml#L500)|String?|Note for error resolution -[AdditionalNote](Common.xml#L503)|String?|Additional note for error resolution +[Analysis](Common.xml#L494)|String?|Short hint on how to analyze this error +[Note](Common.xml#L497)|String?|Note for error resolution +[AdditionalNote](Common.xml#L500)|String?|Additional note for error resolution -## [NumericMessageSeverityType](Common.xml#L546) +## [NumericMessageSeverityType](Common.xml#L543) **Type:** Byte Classifies an end-user message as info, success, warning, or error Allowed Value|Description :------------|:---------- -[1](Common.xml#L550)|Success - no action required -[2](Common.xml#L554)|Information - no action required -[3](Common.xml#L558)|Warning - action may be required -[4](Common.xml#L562)|Error - action is required +[1](Common.xml#L547)|Success - no action required +[2](Common.xml#L551)|Information - no action required +[3](Common.xml#L555)|Warning - action may be required +[4](Common.xml#L559)|Error - action is required -## [IntervalType](Common.xml#L585) +## [IntervalType](Common.xml#L582) Property|Type|Description :-------|:---|:---------- -[Label](Common.xml#L586) *([Experimental](Common.md#Experimental))*|String?|A short, human-readable text suitable for labels and captions in UIs -[LowerBoundary](Common.xml#L591)|PropertyPath|Property holding the lower interval boundary -[LowerBoundaryIncluded](Common.xml#L594)|Boolean|The lower boundary value is included in the interval -[UpperBoundary](Common.xml#L597)|PropertyPath|Property holding the upper interval boundary -[UpperBoundaryIncluded](Common.xml#L600)|Boolean|The upper boundary value is included in the interval +[Label](Common.xml#L583) *([Experimental](Common.md#Experimental))*|String?|A short, human-readable text suitable for labels and captions in UIs +[LowerBoundary](Common.xml#L588)|PropertyPath|Property holding the lower interval boundary +[LowerBoundaryIncluded](Common.xml#L591)|Boolean|The lower boundary value is included in the interval +[UpperBoundary](Common.xml#L594)|PropertyPath|Property holding the upper interval boundary +[UpperBoundaryIncluded](Common.xml#L597)|Boolean|The upper boundary value is included in the interval -## [SAPObjectNodeTypeType](Common.xml#L621) *([Experimental](Common.md#Experimental))* +## [SAPObjectNodeTypeType](Common.xml#L618) *([Experimental](Common.md#Experimental))* Information about an SAP Object Node Type Property|Type|Description :-------|:---|:---------- -[Name](Common.xml#L624)|String|The name of the SAP Object Node Type +[Name](Common.xml#L621)|String|The name of the SAP Object Node Type -## [ValueListType](Common.xml#L656) +## [ValueListType](Common.xml#L653) Property|Type|Description :-------|:---|:---------- -[Label](Common.xml#L677)|String?|Headline for value list, fallback is the label of the property or parameter -[CollectionPath](Common.xml#L681)|String|Resource path of an OData collection with possible values, relative to CollectionRoot -[CollectionRoot](Common.xml#L684)|String?|Service root of the value list collection; not specified means local to the document containing the annotation -[DistinctValuesSupported](Common.xml#L687)|Boolean|Indicates that the value list supports a 'distinct' aggregation on the value list properties defined via ValueListParameterInOut and ValueListParameterOut -[SearchSupported](Common.xml#L690)|Boolean|Value list supports the $search query option
The value of the target property is used as the search expression instead of in $filter -[FetchValues](Common.xml#L694)|[FetchValuesType?](#FetchValuesType)|Hint on when to fetch values -[PresentationVariantQualifier](Common.xml#L697)|[SimpleIdentifier?](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#SimpleIdentifier)|Alternative representation of a value help, e.g. as a bar chart
Qualifier for annotation with term [UI.PresentationVariant](UI.md#PresentationVariant) on the entity set identified via CollectionPath -[SelectionVariantQualifier](Common.xml#L701)|[SimpleIdentifier?](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#SimpleIdentifier)|Optional combination of parameters and filters to query the value help entity set
Qualifier for annotation with term [UI.SelectionVariant](UI.md#SelectionVariant) on the entity set identified via CollectionPath -[Parameters](Common.xml#L705)|\[[ValueListParameter](#ValueListParameter)\]|Instructions on how to construct the value list request and consume response properties +[Label](Common.xml#L674)|String?|Headline for value list, fallback is the label of the property or parameter +[CollectionPath](Common.xml#L678)|String|Resource path of an OData collection with possible values, relative to CollectionRoot +[CollectionRoot](Common.xml#L681)|String?|Service root of the value list collection; not specified means local to the document containing the annotation +[DistinctValuesSupported](Common.xml#L684)|Boolean|Indicates that the value list supports a 'distinct' aggregation on the value list properties defined via ValueListParameterInOut and ValueListParameterOut +[SearchSupported](Common.xml#L687)|Boolean|Value list supports the $search query option
The value of the target property is used as the search expression instead of in $filter +[FetchValues](Common.xml#L691)|[FetchValuesType?](#FetchValuesType)|Hint on when to fetch values +[PresentationVariantQualifier](Common.xml#L694)|[SimpleIdentifier?](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#SimpleIdentifier)|Alternative representation of a value help, e.g. as a bar chart
Qualifier for annotation with term [UI.PresentationVariant](UI.md#PresentationVariant) on the entity set identified via CollectionPath +[SelectionVariantQualifier](Common.xml#L698)|[SimpleIdentifier?](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#SimpleIdentifier)|Optional combination of parameters and filters to query the value help entity set
Qualifier for annotation with term [UI.SelectionVariant](UI.md#SelectionVariant) on the entity set identified via CollectionPath +[Parameters](Common.xml#L702)|\[[ValueListParameter](#ValueListParameter)\]|Instructions on how to construct the value list request and consume response properties **Applicable Annotation Terms:** - [QuickInfo](#QuickInfo) -## [FetchValuesType](Common.xml#L710) +## [FetchValuesType](Common.xml#L707) **Type:** Byte Hint on when to fetch values Allowed Value|Description :------------|:---------- -[1](Common.xml#L714)|Fetch values immediately without filter -[2](Common.xml#L718)|Fetch values with a filter +[1](Common.xml#L711)|Fetch values immediately without filter +[2](Common.xml#L715)|Fetch values with a filter -## [ValueListMappingType](Common.xml#L759) +## [ValueListMappingType](Common.xml#L756) Property|Type|Description :-------|:---|:---------- -[Label](Common.xml#L765)|String?|Headline for value list, fallback is the label of the property or parameter -[CollectionPath](Common.xml#L769)|String|Resource path of an OData collection with possible values, relative to the document containing the value list mapping -[DistinctValuesSupported](Common.xml#L772)|Boolean|Indicates that the value list supports a 'distinct' aggregation on the value list properties defined via ValueListParameterInOut and ValueListParameterOut -[FetchValues](Common.xml#L775)|[FetchValuesType?](#FetchValuesType)|Hint on when to fetch values -[PresentationVariantQualifier](Common.xml#L778)|[SimpleIdentifier?](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#SimpleIdentifier)|Alternative representation of a value help, e.g. as a bar chart
Qualifier for annotation with term [UI.PresentationVariant](UI.md#PresentationVariant) on the value list entity set identified via CollectionPath in the ValueListReference annotation -[SelectionVariantQualifier](Common.xml#L782)|[SimpleIdentifier?](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#SimpleIdentifier)|Optional combination of parameters and filters to query the value help entity set
Qualifier for annotation with term [UI.SelectionVariant](UI.md#SelectionVariant) on the entity set identified via CollectionPath -[Parameters](Common.xml#L786)|\[[ValueListParameter](#ValueListParameter)\]|Instructions on how to construct the value list request and consume response properties +[Label](Common.xml#L762)|String?|Headline for value list, fallback is the label of the property or parameter +[CollectionPath](Common.xml#L766)|String|Resource path of an OData collection with possible values, relative to the document containing the value list mapping +[DistinctValuesSupported](Common.xml#L769)|Boolean|Indicates that the value list supports a 'distinct' aggregation on the value list properties defined via ValueListParameterInOut and ValueListParameterOut +[FetchValues](Common.xml#L772)|[FetchValuesType?](#FetchValuesType)|Hint on when to fetch values +[PresentationVariantQualifier](Common.xml#L775)|[SimpleIdentifier?](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#SimpleIdentifier)|Alternative representation of a value help, e.g. as a bar chart
Qualifier for annotation with term [UI.PresentationVariant](UI.md#PresentationVariant) on the value list entity set identified via CollectionPath in the ValueListReference annotation +[SelectionVariantQualifier](Common.xml#L779)|[SimpleIdentifier?](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#SimpleIdentifier)|Optional combination of parameters and filters to query the value help entity set
Qualifier for annotation with term [UI.SelectionVariant](UI.md#SelectionVariant) on the entity set identified via CollectionPath +[Parameters](Common.xml#L783)|\[[ValueListParameter](#ValueListParameter)\]|Instructions on how to construct the value list request and consume response properties **Applicable Annotation Terms:** - [QuickInfo](#QuickInfo) -## [*ValueListParameter*](Common.xml#L791) +## [*ValueListParameter*](Common.xml#L788) **Derived Types:** @@ -293,97 +293,97 @@ Property|Type|Description Property|Type|Description :-------|:---|:---------- -[ValueListProperty](Common.xml#L792)|String|Path to property in the value list . Format is identical to PropertyPath annotations. +[ValueListProperty](Common.xml#L789)|String|Path to property in the value list . Format is identical to PropertyPath annotations. -## [ValueListParameterIn](Common.xml#L796): [ValueListParameter](#ValueListParameter) +## [ValueListParameterIn](Common.xml#L793): [ValueListParameter](#ValueListParameter) Property|Type|Description :-------|:---|:---------- -[*ValueListProperty*](Common.xml#L792)|String|Path to property in the value list . Format is identical to PropertyPath annotations. -[LocalDataProperty](Common.xml#L797)|PropertyPath|Path to property that is used to filter the value list with `eq` comparison
In case the property path contains a collection-based navigation or structural property, the filter is a set of `eq` comparisons connected by `or` operators -[InitialValueIsSignificant](Common.xml#L801)|Boolean|Initial value, e.g. empty string, is a valid and significant value +[*ValueListProperty*](Common.xml#L789)|String|Path to property in the value list . Format is identical to PropertyPath annotations. +[LocalDataProperty](Common.xml#L794)|PropertyPath|Path to property that is used to filter the value list with `eq` comparison
In case the property path contains a collection-based navigation or structural property, the filter is a set of `eq` comparisons connected by `or` operators +[InitialValueIsSignificant](Common.xml#L798)|Boolean|Initial value, e.g. empty string, is a valid and significant value -## [ValueListParameterConstant](Common.xml#L805): [ValueListParameter](#ValueListParameter) +## [ValueListParameterConstant](Common.xml#L802): [ValueListParameter](#ValueListParameter) Property|Type|Description :-------|:---|:---------- -[*ValueListProperty*](Common.xml#L792)|String|Path to property in the value list . Format is identical to PropertyPath annotations. -[Constant](Common.xml#L806)|PrimitiveType|Constant value that is used to filter the value list with `eq` comparison, using the same representation as property default values, see [CSDL XML, 7.2.7 Default Value](https://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.html#sec_DefaultValue) -[InitialValueIsSignificant](Common.xml#L809) *([Experimental](Common.md#Experimental))*|Boolean|Initial value, e.g. empty string, is a valid and significant value +[*ValueListProperty*](Common.xml#L789)|String|Path to property in the value list . Format is identical to PropertyPath annotations. +[Constant](Common.xml#L803)|PrimitiveType|Constant value that is used to filter the value list with `eq` comparison, using the same representation as property default values, see [CSDL XML, 7.2.7 Default Value](https://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.html#sec_DefaultValue) +[InitialValueIsSignificant](Common.xml#L806) *([Experimental](Common.md#Experimental))*|Boolean|Initial value, e.g. empty string, is a valid and significant value -## [ValueListParameterConstants](Common.xml#L814): [ValueListParameter](#ValueListParameter) *([Experimental](Common.md#Experimental))* +## [ValueListParameterConstants](Common.xml#L811): [ValueListParameter](#ValueListParameter) *([Experimental](Common.md#Experimental))* Property|Type|Description :-------|:---|:---------- -[*ValueListProperty*](Common.xml#L792)|String|Path to property in the value list . Format is identical to PropertyPath annotations. -[Constants](Common.xml#L816)|\[PrimitiveType\]|List of constant values that are used to filter the value list with `eq` comparisons connected by `or` operators, using the same representation as property default values, see [CSDL XML, 7.2.7 Default Value](https://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.html#sec_DefaultValue). Initial values are significant.
An empty list means a vacuous filter condition +[*ValueListProperty*](Common.xml#L789)|String|Path to property in the value list . Format is identical to PropertyPath annotations. +[Constants](Common.xml#L813)|\[PrimitiveType\]|List of constant values that are used to filter the value list with `eq` comparisons connected by `or` operators, using the same representation as property default values, see [CSDL XML, 7.2.7 Default Value](https://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.html#sec_DefaultValue). Initial values are significant.
An empty list means a vacuous filter condition -## [ValueListParameterInOut](Common.xml#L823): [ValueListParameter](#ValueListParameter) +## [ValueListParameterInOut](Common.xml#L820): [ValueListParameter](#ValueListParameter) Property|Type|Description :-------|:---|:---------- -[*ValueListProperty*](Common.xml#L792)|String|Path to property in the value list . Format is identical to PropertyPath annotations. -[LocalDataProperty](Common.xml#L824)|PropertyPath|Path to property that is used to filter the value list with `startswith` comparison and filled from the picked value list item -[InitialValueIsSignificant](Common.xml#L827)|Boolean|Initial value, e.g. empty string, is a valid and significant value +[*ValueListProperty*](Common.xml#L789)|String|Path to property in the value list . Format is identical to PropertyPath annotations. +[LocalDataProperty](Common.xml#L821)|PropertyPath|Path to property that is used to filter the value list with `startswith` comparison and filled from the picked value list item +[InitialValueIsSignificant](Common.xml#L824)|Boolean|Initial value, e.g. empty string, is a valid and significant value **Applicable Annotation Terms:** - [Importance](UI.md#Importance) -## [ValueListParameterOut](Common.xml#L836): [ValueListParameter](#ValueListParameter) +## [ValueListParameterOut](Common.xml#L833): [ValueListParameter](#ValueListParameter) Property|Type|Description :-------|:---|:---------- -[*ValueListProperty*](Common.xml#L792)|String|Path to property in the value list . Format is identical to PropertyPath annotations. -[LocalDataProperty](Common.xml#L837)|PropertyPath|Path to property that is filled from response +[*ValueListProperty*](Common.xml#L789)|String|Path to property in the value list . Format is identical to PropertyPath annotations. +[LocalDataProperty](Common.xml#L834)|PropertyPath|Path to property that is filled from response **Applicable Annotation Terms:** - [Importance](UI.md#Importance) -## [ValueListParameterDisplayOnly](Common.xml#L846): [ValueListParameter](#ValueListParameter) +## [ValueListParameterDisplayOnly](Common.xml#L843): [ValueListParameter](#ValueListParameter) Value list property that is not used to fill the edited entity Property|Type|Description :-------|:---|:---------- -[*ValueListProperty*](Common.xml#L792)|String|Path to property in the value list . Format is identical to PropertyPath annotations. +[*ValueListProperty*](Common.xml#L789)|String|Path to property in the value list . Format is identical to PropertyPath annotations. **Applicable Annotation Terms:** - [Importance](UI.md#Importance) -## [ValueListParameterFilterOnly](Common.xml#L854): [ValueListParameter](#ValueListParameter) *(Deprecated)* +## [ValueListParameterFilterOnly](Common.xml#L851): [ValueListParameter](#ValueListParameter) *(Deprecated)* All filterable properties of the value list can be used to filter -## [DraftRootType](Common.xml#L1074): [DraftNodeType](#DraftNodeType) +## [DraftRootType](Common.xml#L1071): [DraftNodeType](#DraftNodeType) Property|Type|Description :-------|:---|:---------- -[*PreparationAction*](Common.xml#L1116)|[QualifiedName?](#QualifiedName)|Action that prepares a draft document for later activation -[*ValidationFunction*](Common.xml#L1119) *(Deprecated)*|[QualifiedName?](#QualifiedName)|Separate validation without side-effects is not useful -[ActivationAction](Common.xml#L1075)|[QualifiedName](#QualifiedName)|Action that activates a draft document -[DiscardAction](Common.xml#L1078) *([Experimental](Common.md#Experimental))*|[QualifiedName?](#QualifiedName)|Action that discards a draft document -[EditAction](Common.xml#L1082)|[QualifiedName?](#QualifiedName)|Action that creates an edit draft -[NewAction](Common.xml#L1085)|[QualifiedName?](#QualifiedName)|Action that creates a new draft
New drafts may also be created by POSTing an empty entity without any properties to the entity set. -[AdditionalNewActions](Common.xml#L1089) *([Experimental](Common.md#Experimental))*|\[[QualifiedName](#QualifiedName)\]|Additional actions that create a new draft
Additional actions beside the default POST or standard `NewAction` that create a new draft. -[ShareAction](Common.xml#L1094)|[QualifiedName?](#QualifiedName)|Action that shares a draft document with other users
The action is bound to the draft document root node and has the following signature:
- `Users`: collection of structure with properties
  - `UserID` of type `String` and
  - `UserAccessRole` of type `String` with possible values `O` (owner, can perform all draft actions), and `E` (editor, can change the draft)
It restricts access to the listed users in their specified roles. +[*PreparationAction*](Common.xml#L1113)|[QualifiedName?](#QualifiedName)|Action that prepares a draft document for later activation +[*ValidationFunction*](Common.xml#L1116) *(Deprecated)*|[QualifiedName?](#QualifiedName)|Separate validation without side-effects is not useful +[ActivationAction](Common.xml#L1072)|[QualifiedName](#QualifiedName)|Action that activates a draft document +[DiscardAction](Common.xml#L1075) *([Experimental](Common.md#Experimental))*|[QualifiedName?](#QualifiedName)|Action that discards a draft document +[EditAction](Common.xml#L1079)|[QualifiedName?](#QualifiedName)|Action that creates an edit draft +[NewAction](Common.xml#L1082)|[QualifiedName?](#QualifiedName)|Action that creates a new draft
New drafts may also be created by POSTing an empty entity without any properties to the entity set. +[AdditionalNewActions](Common.xml#L1086) *([Experimental](Common.md#Experimental))*|\[[QualifiedName](#QualifiedName)\]|Additional actions that create a new draft
Additional actions beside the default POST or standard `NewAction` that create a new draft. +[ShareAction](Common.xml#L1091)|[QualifiedName?](#QualifiedName)|Action that shares a draft document with other users
The action is bound to the draft document root node and has the following signature:
- `Users`: collection of structure with properties
  - `UserID` of type `String` and
  - `UserAccessRole` of type `String` with possible values `O` (owner, can perform all draft actions), and `E` (editor, can change the draft)
It restricts access to the listed users in their specified roles. -## [DraftNodeType](Common.xml#L1115) +## [DraftNodeType](Common.xml#L1112) **Derived Types:** @@ -391,15 +391,15 @@ Property|Type|Description Property|Type|Description :-------|:---|:---------- -[PreparationAction](Common.xml#L1116)|[QualifiedName?](#QualifiedName)|Action that prepares a draft document for later activation -[ValidationFunction](Common.xml#L1119) *(Deprecated)*|[QualifiedName?](#QualifiedName)|Separate validation without side-effects is not useful +[PreparationAction](Common.xml#L1113)|[QualifiedName?](#QualifiedName)|Action that prepares a draft document for later activation +[ValidationFunction](Common.xml#L1116) *(Deprecated)*|[QualifiedName?](#QualifiedName)|Separate validation without side-effects is not useful -## [SimpleIdentifier](Common.xml#L1140) *(Deprecated)* +## [SimpleIdentifier](Common.xml#L1137) *(Deprecated)* Use type [Core.SimpleIdentifier](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#SimpleIdentifier) instead -## [QualifiedName](Common.xml#L1152) +## [QualifiedName](Common.xml#L1149) **Type:** String The namespace-qualified name of an OData construct in scope @@ -407,7 +407,7 @@ The namespace-qualified name of an OData construct in scope Alias-qualified names are not fully supported, and the use of namespace-qualified names is strongly recommended. -## [ActionOverload](Common.xml#L1157) +## [ActionOverload](Common.xml#L1154) **Type:** String The namespace-qualified name of an action with an optional overload @@ -417,7 +417,7 @@ The namespace-qualified name of an action, optionally followed by parentheses or by empty parentheses to identify the unbound overload, like in the `Target` attribute of an `Annotation`. -## [SideEffectsType](Common.xml#L1173) +## [SideEffectsType](Common.xml#L1170) Changes to the source properties or source entities may have side-effects on the target properties or entities. If neither TargetProperties nor TargetEntities are specified, a change to the source property values may have unforeseeable side-effects. @@ -431,35 +431,35 @@ This can also be used with OData V2 services: the annotation target is a functio Property|Type|Description :-------|:---|:---------- -[SourceProperties](Common.xml#L1185)|\[PropertyPath\]|Changes to the values of one or more of these structural properties may affect the targets -[SourceEntities](Common.xml#L1188)|\[NavigationPropertyPath\]|Changes to one or more of these entities may affect the targets. An empty path means the annotation target. -[TargetProperties](Common.xml#L1191)|\[String\]|These structural properties may be affected if the value of one of the sources changes
The syntax follows closely the syntax rules for `Edm.PropertyPath`, with the addition of `*` as the last path segment meaning all structural properties directly reached via the preceding path -[TargetEntities](Common.xml#L1195)|\[NavigationPropertyPath\]|These entities will be affected if the value of one of the sources changes. All affected entities need to be explicitly listed. An empty path means the annotation target. -[EffectTypes](Common.xml#L1198) *(Deprecated)*|[EffectType?](#EffectType)|All side effects are essentially value changes, differentiation not needed. -[TriggerAction](Common.xml#L1209)|[QualifiedName?](#QualifiedName)|Bound action to trigger side-effects after modifying an entity
Binding parameter type of the trigger action is the entity type annotated with `SideEffects`. The action does not have any additional parameters and does not return anything. It either succeeds with `204 No Content` or it fails with `4xx` or `5xx`. -[Discretionary](Common.xml#L1213) *([Experimental](Common.md#Experimental))*|Boolean|Indicates whether the client can decide if a side-effect should be triggered or not
The value of this property typically a static boolean value. It can be used by clients (e.g. by asking the end user) to decide if the side effect should be triggered or not. This indicator is only allowed in case a trigger action is given as only then the execution control of the side effect is provided to the client. +[SourceProperties](Common.xml#L1182)|\[PropertyPath\]|Changes to the values of one or more of these structural properties may affect the targets +[SourceEntities](Common.xml#L1185)|\[NavigationPropertyPath\]|Changes to one or more of these entities may affect the targets. An empty path means the annotation target. +[TargetProperties](Common.xml#L1188)|\[String\]|These structural properties may be affected if the value of one of the sources changes
The syntax follows closely the syntax rules for `Edm.PropertyPath`, with the addition of `*` as the last path segment meaning all structural properties directly reached via the preceding path +[TargetEntities](Common.xml#L1192)|\[NavigationPropertyPath\]|These entities will be affected if the value of one of the sources changes. All affected entities need to be explicitly listed. An empty path means the annotation target. +[EffectTypes](Common.xml#L1195) *(Deprecated)*|[EffectType?](#EffectType)|All side effects are essentially value changes, differentiation not needed. +[TriggerAction](Common.xml#L1206)|[QualifiedName?](#QualifiedName)|Bound action to trigger side-effects after modifying an entity
Binding parameter type of the trigger action is the entity type annotated with `SideEffects`. The action does not have any additional parameters and does not return anything. It either succeeds with `204 No Content` or it fails with `4xx` or `5xx`. +[Discretionary](Common.xml#L1210) *([Experimental](Common.md#Experimental))*|Boolean|Indicates whether the client can decide if a side-effect should be triggered or not
The value of this property typically a static boolean value. It can be used by clients (e.g. by asking the end user) to decide if the side effect should be triggered or not. This indicator is only allowed in case a trigger action is given as only then the execution control of the side effect is provided to the client. -## [EffectType](Common.xml#L1219) *(Deprecated)* +## [EffectType](Common.xml#L1216) *(Deprecated)* All side effects are essentially value changes, differentiation not needed. -## [SortOrderType](Common.xml#L1344) +## [SortOrderType](Common.xml#L1341) Exactly one of `Property`, `DynamicProperty` and `Expression` must be present Property|Type|Description :-------|:---|:---------- -[Property](Common.xml#L1346)|PropertyPath?|Sort property -[DynamicProperty](Common.xml#L1358)|AnnotationPath?|Dynamic property introduced by an annotation and used as sort property
If the annotation referenced by the annotation path does not apply to the same collection of entities as the one being sorted according to the [`UI.PresentationVariant`](UI.md#PresentationVariant) or `Common.SortOrder` annotation, this instance of `UI.PresentationVariant/SortOrder` or `Common.SortOrder` MUST be silently ignored.
Allowed terms: -[Expression](Common.xml#L1372) *([Experimental](Common.md#Experimental))*|PrimitiveType?|Dynamic expression whose primitive result value is used to sort the instances -[Descending](Common.xml#L1376)|Boolean?|Sort direction, ascending if not specified otherwise +[Property](Common.xml#L1343)|PropertyPath?|Sort property +[DynamicProperty](Common.xml#L1355)|AnnotationPath?|Dynamic property introduced by an annotation and used as sort property
If the annotation referenced by the annotation path does not apply to the same collection of entities as the one being sorted according to the [`UI.PresentationVariant`](UI.md#PresentationVariant) or `Common.SortOrder` annotation, this instance of `UI.PresentationVariant/SortOrder` or `Common.SortOrder` MUST be silently ignored.
Allowed terms: +[Expression](Common.xml#L1369) *([Experimental](Common.md#Experimental))*|PrimitiveType?|Dynamic expression whose primitive result value is used to sort the instances +[Descending](Common.xml#L1373)|Boolean?|Sort direction, ascending if not specified otherwise -## [RecursiveHierarchyType](Common.xml#L1409) *(Deprecated)* +## [RecursiveHierarchyType](Common.xml#L1406) *(Deprecated)* Use terms [Aggregation.RecursiveHierarchy](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Aggregation.V1.md#RecursiveHierarchy) and [Hierarchy.RecursiveHierarchy](https://github.com/SAP/odata-vocabularies/blob/main/vocabularies/Hierarchy.md#RecursiveHierarchy) instead -## [UserID](Common.xml#L1460) +## [UserID](Common.xml#L1457) **Type:** String User ID diff --git a/vocabularies/Common.xml b/vocabularies/Common.xml index 32567d11..ef58e793 100644 --- a/vocabularies/Common.xml +++ b/vocabularies/Common.xml @@ -232,15 +232,12 @@ - - - - - - - + + + Multiple secondary keys are possible using different qualifiers. + Unlike [`Core.AlternateKeys`](https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md#AlternateKeys), + secondary keys need not support addressing an entity in a resource path. -