DomBehaviorDefinition object
A DomBehaviorDefinition
object is a standalone object that extends a normal DOM definition and contains the configuration for special behavior. This includes all configuration for the status system.
Note
This object is supported from DataMiner 10.1.11/10.2.0 onwards.
Properties
The table below lists the properties of the DomBehaviorDefinition
object. It also indicates whether a property can be used for filtering using the DomBehaviorDefinitionExposers
.
Note
From DataMiner 10.3.2/10.4.0 onwards, the DomBehaviorDefinition
object also has the ITrackBase properties.
Property | Type | Filterable | Description |
---|---|---|---|
ID | DomBehaviorDefinitionId | Yes | The unique ID of the object. |
Name | string | Yes | The name of this definition. |
ParentId | DomBehaviorDefinitionId | Yes | The ID of the parent DomBehaviorDefinition when inheritance is used. |
InitialStatusId | string | No | The ID of the status that should be used when new DomInstances are created. |
Statuses | List<DomStatus> | No | Contains all statuses. |
StatusSectionDefinitionLinks | List<DomStatusSectionDefinitionLink> | No | Contains all links to SectionDefinitions that define what fields are required, allowed etc. for a specific status. |
StatusTransitions | List<DomStatusTransition> | No | Contains all transitions that are allowed to be made from one status to another. |
ButtonDefinitions | List<IDomButtonDefinition> | No | Contains the button definitions (see Actions). |
ActionDefinitions | List<IDomActionDefinition> | No | Contains the action definitions (see Actions). |
Inheritance
One DomBehaviorDefinition
can inherit from another. However, there are important limitations in place:
It can only inherit from the
ModuleDomBehaviorDefinition
(the ID is defined in the ModuleBehaviorDefinition property of theModuleSettings
).The inheriting definition can only contain an ID, parent ID, and extra:
DomStatusSectionDefinitionLinks
forSectionDefinitions
that are not already defined on the module definition.ButtonDefinitions
(with other IDs than those defined on the parent).ActionDefinitions
(with other IDs than those defined on the parent).
Adding extra statuses or transitions on the child definition is not allowed.
This logic makes it possible to define a complete status system that should be used by all DomDefinitions
. With an inheriting DomBehaviorDefinition
, you can then define the visibility, requirements etc. for fields of extra SectionDefinitions
.
Status System
The DomBehaviorDefinition
has several properties that contain the configuration for the status system. For more information on how these should be used, see DOM status system.
Buttons and Actions
The DomBehaviorDefinition
has several properties related to the buttons and actions concept. For more information, see Actions.
Requirements
To create or update a
DomBehaviorDefinition
:The string IDs of the statuses, transitions, actions, and buttons must not contain duplicates and should all be lowercase.
When there is a
ModuleDomBehaviorDefinition
defined, this definition must inherit from it. If this is not defined, the ParentId property should be empty.The InitialStatusId property must contain the ID of an existing status. (This is not checked for an inheriting definition.)
The transitions must contain IDs of existing statuses.
Only one
DomStatusSectionDefinitionLink
for eachSectionDefinition
and status combo is allowed.The links must also reference existing status IDs.
You can only delete a
DomBehaviorDefinition
if there is noDomDefinition
or otherDomBehaviorDefinition
linked to it.
Errors
When something goes wrong during the CRUD actions, the TraceData
can contain one or more DomDefinitionErrors
. For each error, the Id and Name properties will be filled in alongside any other property mentioned in the description. Below is a list of all possible ErrorReasons
:
Reason | Description |
---|---|
InvalidParentId | The DomBehaviorDefinition.ParentId property contains an unexpected ID. If a module DomBehaviorDefinition is defined, it must contain the ID of that definition. If that is not the case, it should be empty. |
InheritingDefinitionContainsInvalidData | This DomBehaviorDefinition is inheriting from another DomBehaviorDefinition , but it contains data that is not allowed. Only the StatusSectionDefinitionLinks , ButtonDefinitions , and ActionDefinitions can contain extra objects. |
StatusTransitionsReferenceNonExistingStatuses | There was at least one DomStatusTransition that references a status that does not exist. StatusTransitionsIds contains the ID(s) of the invalid transition(s). |
StatusSectionDefinitionLinksReferenceNonExistingStatuses | There was at least one DomStatusSectionDefinitionLink that referenced a status that does not exist. DomStatusSectionDefinitionLinkIds contains the ID(s) of the invalid DomStatusSectionDefinitionLink(s) . |
InvalidStatusIds | There was at least one status defined with an invalid ID (should only contain lowercase characters). StatusIds contains the ID(s) of the invalid status(es). |
DuplicateStatusIds | There are statuses defined with duplicate status IDs. StatusIds contains the ID(s) of the duplicate status(es). |
InvalidTransitionIds | There was at least one transition defined with an invalid transition ID (should only contain lowercase characters). StatusTransitionsIds contains the ID(s) of the invalid transition(s). |
DuplicateTransitionIds | There are transitions defined with duplicate transition IDs. StatusTransitionsIds contains the ID(s) of the duplicate transition(s) |
InUseByDomDefinitions | The DomBehaviorDefinition for which there was a deletion attempt is still used by at least one DomDefinition . DomDefinitionIds contains the ID(s) of these DomDefinition(s) . |
InUseByDomBehaviorDefinitions | The DomBehaviorDefinition for which there was a deletion attempt is still used by at least one DomBehaviorDefinition . DomBehaviorDefinitionIds contains the ID(s) of these DomBehaviorDefinition(s) |
InvalidInitialStatusId | The DomBehaviorDefinition defines at least one status but does not define a valid initial status. StatusIds contains the ID of the invalid initial status (could be empty). |
DuplicateSectionDefinitionLinks | The DomBehaviorDefinition defines more than one DomStatusSectionDefinitionLink for the same SectionDefinition and status. DomStatusSectionDefinitionLinkIds contains the ID(s) of the duplicate DomStatusSectionDefinitionLinks . |
InvalidActionDefinitionIds | There was at least one IDomActionDefinition defined with an invalid ID (should only contain lowercase characters). ActionDefinitionIds contains the ID(s) of the invalid definition(s). |
DuplicateActionDefinitionIds | There are IDomActionDefinition defined with duplicate IDs. ActionDefinitionIds contains the ID(s) of the duplicate definition(s). |
InvalidButtonDefinitionIds | There was at least one IDomButtonDefinition defined with an invalid ID (should only contain lowercase characters). ButtonDefinitionIds contains the ID(s) of the invalid definition(s). |
DuplicateButtonDefinitionIds | There are IDomButtonDefinition defined with duplicate IDs. ButtonDefinitionIds contains the ID(s) of the duplicate definition(s). |
InvalidButtonActionCombination | An IDomButtonDefinition contains a combination of actions, which is not supported. At this time, only a single action is allowed. This error is returned from DataMiner 10.3.2/10.4.0 onwards when more than one action ID is added to an IDomButtonDefinition . ButtonDefinitionIds contains the ID(s) of the invalid definition(s). |
Note
When a DomBehaviorDefinition
inherits from another definition, make sure that the IDs of the StatusSectionDefinitionLinks
, ButtonDefinitions
and ActionDefinitions
are unique accross both parent & child definition.