Skip to main content

@ObjectModel

BETA This annotation is beta and should be reviewed for completion and correctness.

Introduction

The object model captures definitions of structural as well as transactional related aspects of the business data model.

Schema Definitions

Annotations Overview

AnnotationScopeDescription
@ObjectModel.compositionRootEntityEntity is the root of a compositional hierarchy.
@ObjectModel.representativeKeyEntity, ServiceIn case of multiple key elements: key element which represents the entity (in the sense that the entity itself is the list of values for this key element)
@ObjectModel.semanticKeyTypeThe property contains element(s) which shall be used to display the key in UIs (instead of the technical key).
@ObjectModel.modelingPatternEntity, ServiceThe property declares the modeling pattern applied in this entity definition.
@ObjectModel.supportedCapabilitiesEntity, ServiceThe property declares the supported usage type for this entity in the context of consuming data models.
@ObjectModel.foreignKey.associationTypeThe element is of type cds.Association which points to the list of values. Use only for service internal associations. For cross service associations, use the @EntityRelationship Vocabulary instead.
@ObjectModel.text.elementTypeThe property contains element(s) containing a text for the annotated (id)element
@ObjectModel.text.associationTypeThe element is of type cds.association, which points to an entity containing (language-dependent) texts for the annotated (id) element

@ObjectModel.compositionRoot

Entity is the root of a compositional hierarchy.

Type: boolean
Default Value: true
Scope: Entity
Extending: EntityDefinition

@ObjectModel.representativeKey

In case of multiple key elements: key element which represents the entity (in the sense that the entity itself is the list of values for this key element)

External Type: Element Reference
Scope: Entity, Service
Extending: EntityDefinition, ServiceDefinition

@ObjectModel.semanticKey

The property contains element(s) which shall be used to display the key in UIs (instead of the technical key).

Type: Array<Element Reference>
Scope: Type
Extending: BooleanType, StringType, LargeStringType, IntegerType, Integer64Type, DecimalType, DoubleType, DateType, TimeType, DateTimeType, TimestampType, UUIDType, AssociationType, CompositionType, CustomType, TypeDefinition

@ObjectModel.modelingPattern

The property declares the modeling pattern applied in this entity definition.

PropertyTypeDescription
#
MANDATORY
string
Provide the value in { "#": "<value>" } enum notation.

Allowed Values:
  • "DATA_STRUCTURE"
  • "LANGUAGE_DEPENDENT_TEXT"
  • "UNIT_CONVERSION_RATE"
  • "VALUE_HELP_PROVIDER"
  • "COLLECTIVE_VALUE_HELP"
  • "DERIVATION_FUNCTION"
  • "PARENT_CHILD_HIERARCHY_NODE_PROVIDER"
  • "ENTERPRISE_SEARCH_PROVIDER"
  • "TRANSACTIONAL_INTERFACE"
  • "TRANSACTIONAL_QUERY"
  • "ANALYTICAL_QUERY"
  • "ANALYTICAL_DOCUMENT_STORE"
  • "ANALYTICAL_CUBE"
  • "ANALYTICAL_DIMENSION"
  • "ANALYTICAL_FACT"
  • "ANALYTICAL_PARENT_CHILD_HIERARCHY_NODE"
  • "ANALYTICAL_KPI"
  • "OUTPUT_FORM_DATA_PROVIDER"
  • "OUTPUT_EMAIL_DATA_PROVIDER"
  • "OUTPUT_PARAMETER_DETERMINATION_DATA_SOURCE"
  • "SITUATION_ANCHOR"
  • "SITUATION_TRIGGER"
  • "SITUATION_DATACONTEXT"
  • "EXTERNAL_DATA_PROVIDER"
  • "NONE"
Example Values
{
"#": "DATA_STRUCTURE"
}

@ObjectModel.supportedCapabilities

The property declares the supported usage type for this entity in the context of consuming data models.

Type: Array<Supported Capabilities Enum Value>
Scope: Entity, Service
Extending: EntityDefinition, ServiceDefinition

@ObjectModel.foreignKey.association

The element is of type cds.Association which points to the list of values. Use only for service internal associations. For cross service associations, use the @EntityRelationship Vocabulary instead.

External Type: Element Reference
Scope: Type
Extending: BooleanType, StringType, LargeStringType, IntegerType, Integer64Type, DecimalType, DoubleType, DateType, TimeType, DateTimeType, TimestampType, UUIDType, AssociationType, CompositionType, CustomType, TypeDefinition

@ObjectModel.text.element

The property contains element(s) containing a text for the annotated (id)element

Type: Array<Element Reference>
Scope: Type
Extending: BooleanType, StringType, LargeStringType, IntegerType, Integer64Type, DecimalType, DoubleType, DateType, TimeType, DateTimeType, TimestampType, UUIDType, AssociationType, CompositionType, CustomType, TypeDefinition

Example Values
[
"BillingDocumentTypeName"
]

@ObjectModel.text.association

The element is of type cds.association, which points to an entity containing (language-dependent) texts for the annotated (id) element

External Type: Element Reference
Scope: Type
Extending: BooleanType, StringType, LargeStringType, IntegerType, Integer64Type, DecimalType, DoubleType, DateType, TimeType, DateTimeType, TimestampType, UUIDType, AssociationType, CompositionType, CustomType, TypeDefinition

Supported Capabilities Enum Value

PropertyTypeDescription
#
MANDATORY
string
The entry declares one supported usage type.

Allowed Values:
  • "SQL_DATA_SOURCE"
  • "CDS_MODELING_DATA_SOURCE"
  • "CDS_MODELING_ASSOCIATION_TARGET"
  • "DATA_STRUCTURE"
  • "LANGUAGE_DEPENDENT_TEXT"
  • "UNIT_CONVERSION_RATE"
  • "VALUE_HELP_PROVIDER"
  • "COLLECTIVE_VALUE_HELP"
  • "EXTRACTION_DATA_SOURCE"
  • "DERIVATION_FUNCTION"
  • "PARENT_CHILD_HIERARCHY_NODE_PROVIDER"
  • "SEARCHABLE_ENTITY"
  • "ENTERPRISE_SEARCH_PROVIDER"
  • "TRANSACTIONAL_PROVIDER"
  • "ANALYTICAL_QUERY"
  • "ANALYTICAL_DOCUMENT_STORE"
  • "ANALYTICAL_DIMENSION"
  • "ANALYTICAL_PROVIDER"
  • "ANALYTICAL_PARENT_CHILD_HIERARCHY_NODE"
  • "ANALYTICAL_KPI"
  • "OUTPUT_FORM_DATA_PROVIDER"
  • "OUTPUT_EMAIL_DATA_PROVIDER"
  • "OUTPUT_PARAMETER_DETERMINATION_DATA_SOURCE"
  • "SITUATION_ANCHOR"
  • "SITUATION_TRIGGER"
  • "SITUATION_DATACONTEXT"
  • "KEY_USER_COPYING_TEMPLATE"
  • "EXTERNAL_DATA_PROVIDER"
  • "ODM_COMPLIANT_PROVIDER"