DomDefinition object
The DomDefinition
object groups DomInstance
objects together (as each instance has a link to a definition). It also defines which SectionDefinitions
can or must be used by the linked DomInstances
.
Properties
The table below lists the properties of the DomDefinition
object. It also indicates whether a property can be used for filtering using the DomDefinitionExposers
.
Note
From DataMiner 10.3.2/10.4.0 onwards, the DomDefinition
object also has the ITrackBase properties.
Property | Type | Filterable | Description |
---|---|---|---|
ID | DomDefinitionId | Yes | The ID of the DomDefinition . |
Name | string | Yes | The name of the DomDefinition . |
SectionDefinitionLinks | List<SectionDefinitionLink> | Yes | Contains the required/allowed SectionDefinitions . |
VisualStructure | DomDefinitionVisualStructure | No | Contains settings related to the client UI. Most of these do not apply for DOM. This property should be ignored since it will be removed in the near future. |
DomBehaviorDefinitionId | DomBehaviorDefinitionId | Yes | ID of the DomBehaviorDefinition that this DomDefinition is linked to. See DomBehaviorDefinition. |
ModuleSettingsOverrides | ModuleSettingsOverrides | No | Used to override some ModuleSettings . See DomInstanceNameDefinition, ExecuteScriptOnDomInstanceActionSettings, and DomInstanceHistorySettings. |
SectionDefinitionLink
This object is also used in the Jobs app. It is used to store a link to a SectionDefinition
object and to define whether the use of this definition is optional or mandatory.
It also has the IsSoftDeleted boolean. See soft-deletable objects.
Note
From DataMiner version 10.3.0/10.3.3 onwards, the SectionDefinitionLink
also contains the AllowMultipleSections boolean, which can be used to define whether a DomInstance
can have multiple Sections
for that specific SectionDefinition
. In earlier DataMiner versions, it is possible to add multiple Sections
already, but these are not checked and cannot be used in the UI. When you upgrade to DataMiner 10.3.0/10.3.3, you will need to update any existing DomDefinitions
with multiple Sections
. Note that when fields are used in multiple sections, they are not available in GQI queries.
ModuleSettingsOverrides
The object contains settings that override the settings defined in the ModuleSettings
. See ModuleSettings for details about the specific settings.
At present, the following settings can be overridden:
- DomInstanceNameDefinition
- ExecuteScriptOnDomInstanceActionSettings (from 10.4.2/10.5.0 onwards)
- DomInstanceHistorySettings (from 10.4.4/10.5.0 onwards)
Note
In order for the ModuleSettings
objects to be used, the objects in the ModuleSettingsOverrides
of the DomDefinition
have to be null. Just making them empty is not sufficient.
Requirements
To create or update a
DomDefinition
, it must contain aSectionDefinitionLink
for each ModuleSection defined in theModuleSettings
.When you update the
SectionDefinitionLinks
list of aDomDefinition
, it is not possible to remove a link when there are alreadyDomInstances
that have sections for this link. However, you can hide the link from the UI by flagging it as soft deleted.A
DomDefinition
can only be deleted when noDomInstances
are linked to it. You should therefore first delete those before you can delete theDomDefinition
.
Errors
When something goes wrong during the CRUD actions, the TraceData can contain one or more DomDefinitionErrors. Below is a list of all possible ErrorReasons:
Reason | Description |
---|---|
DomDefinitionHasLinkedDomInstances | The DomDefinition you want to delete has DomInstances linked to it. The DomDefinition can be retrieved from the DomDefinition property. The IDs of the linked DomInstances can be retrieved from the DomInstanceIds property. |
SectionDefinitionLinkInUseByDomInstances | The SectionDefinitionLink cannot be deleted since this DomDefinition is in use by DomInstances . Set the SectionDefinitionLink.IsSoftDeleted boolean instead. The DomDefinition can be retrieved from the DomDefinition property. The IDs of the linked DomInstances can be retrieved from the DomInstanceIds property. The links that could not be deleted can be retrieved from the SectionDefinitionLinks property. |
DomDefinitionDoesNotContainRequiredModuleSectionDefinitions | The DomDefinition you want to create or update does not include all required section definition links for this module. The DomDefinition can be retrieved from the DomDefinition property. The missing SectionDefinitionIDs can be retrieved from the SectionDefinitionIds property. |