logo
logo

Entity definitions

Entity definitions allow you to create a data schema, also known as a domain model.

The entity definitions contain properties on their own and sub-definitions in property definitions and relation definitions. Property and relation definitions define potential properties (type, names, and so on) and possible relations between two entities (cardinality, name, and so on).

Entity definitions store the property and relation definitions (members) in one or more member groups.

Entity definition overall structure

For explanation purposes, an entity definition is an object-like structure containing the following elements.

NameDescription
IdAutomatically assigned unique integer number identifying entity definition (queries, references, etc.).
NameUnique language-agnostic string name of the entity definition. It is case-sensitive. For example, M.Geography, M.Asset, M.Project.Block. The name can contain alphanumerical characters, underscore _ and period . characters, with a maximum length of 50 characters. Period . cannot be used as the last character or duplicity.
ModifiedOnTime of the last modification of the entity definition.
ModifiedByID of the user who performed the last modification.
CreatedOnTime of the entity definition creation.
CreatedByID of the user who performed creation.
DisplayTemplateLanguage-agnostic string display format for entities of this definition, for example, \{ClassificationName\} or \{ProductName\} - \{ProductCode\}. All property names can be used as {PropertyName}; { and } characters can be escaped as {{ and }} respectively.
IsManualSortingAllowedBoolean flag that indicates if the items of this definition can be sorted manually (UI-related).
IsIncludedInSecurityAncestorEvaluationBoolean flag indicating if this definition is included in ancestor evaluation when calculating security permissions.
IsTaxonomyItemDefinitionBoolean flag indicating that entities of this definition are taxonomy items; they can be used as a search facet.
IsPathEnabledDefinitionBoolean flag indicating that entities of this definition can be part of the so-called paths, which are technically UI breadcrumbs. Example use cases are taxonomy entity definitions or M.Project block entity definitions.
IsSystemOwnedIndicates that the entity definition is system-owned and cannot be updated.
LabelsCollection of the language culture-specific non-empty definition labels.
MemberGroupsCollection of member groups.
Note

This is not an exhaustive list.

Member groups

A Member group groups together multiple members (relation or property definitions) for logical grouping, representation (API, UI), and access level. An example is the M.Asset entity definition with member groups like System, General, Content, ReleaseInformation.

The Member group contains the following elements.

NameDescription
NameLanguage-agnostic, case-sensitive. The name can contain alphanumerical characters, underscore _ and period . characters, with a maximum length of 256 characters. Period . cannot be used as the last character or duplicity.
MemberDefinitions
IsSystemOwnedIndicates that the member group is owned by the system and cannot be updated by regular users.
IsSecuredIndicates that the read-write access to this member group is restricted.
LabelsCollection of the language culture-specific group labels.

Member property definition

Property definitions define the entity properties holding language-agnostic or language-aware primitive value types (string, number) or collections of primitive value types. For more information, see Adding a property.

Definition limitations

Due to the internal restrictions of search services, there are limitations on which property definitions you can create for a given entity definition. For a single entity definition, you cannot create two property definitions that have the same name but differ in any of the following properties:

  • type
  • multi-value flag
  • multi-language flag

This includes any historical property definitions that were deleted in the meantime. Properties of each entity definition are distinct and can have different data types, even when they have the same name.

Can we improve this article ? Provide feedback