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.
Note
From 10.5.10/10.6.0 onwards, creating, updating, or deleting DomDefinitions requires the Module settings permission.
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. See Multiple sections.
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 aSectionDefinitionLinkfor each ModuleSection defined in theModuleSettings.When you update the
SectionDefinitionLinkslist of aDomDefinition, it is not possible to remove a link when there are alreadyDomInstancesthat have sections for this link. However, you can hide the link from the UI by flagging it as soft deleted.A
DomDefinitioncan only be deleted when noDomInstancesare 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. |