Extended conditional shape manipulation actions
To apply conditional shape manipulation actions to any type of linked shape, or to combine multiple conditions, a different configuration is required than for the basic conditional shape manipulation actions.
Note
- For more information on the more limited basic conditional shape manipulation actions, see Basic conditional shape manipulation actions.
- The Collapse, Show, Hide, FlipX, FlipY, and Enabled actions are supported on shapes that are not linked to an element, service, or view, though for the Enabled action, the shape has to be clickable. Other conditional shape manipulation actions must always be configured on shapes linked to an element, service, or view.
Tip
For an example, see Ziine > Visual Overview Design Examples view > [misc > MANIPULATION] page.
Configuring the shape data fields
Depending on the action or actions you want to apply, create the following shape data fields:
Blink: Makes a shape blink when the condition is true.
Collapse: Available from DataMiner 10.1.8/10.2.0 onwards. Hides a shape when the condition is true, without actually removing the shape.
Note
This can be convenient as an alternative to the ChildrenFilter shape data, as it will keep all shapes in memory instead of removing and recreating them, allowing better performance but leading to more memory usage. It can also be convenient in a grid layout, as a collapsed shape will not take up room in a grid, unlike a shape hidden using Hide shape data.
Enabled: Enables user interaction when the condition is true.
FlipX: Makes a shape flip horizontally when the condition is true.
FlipY: Makes a shape flip vertically when the condition is true.
Hide: Makes a shape disappear when the condition is true.
Highlight: Highlights the shape when the condition is true.
Show: Makes a shape appear when the condition is true.
As the value for the above-mentioned shape data fields, you need to enter a single condition or multiple conditions combined into one. Regardless of whether a single or multiple conditions are used, each condition has to be assigned an alias.
Single condition
Alias-"Alias"|"Target"|"What"|"Condition"
Multiple conditions combined
"Logical expression"-"Alias1"|"Target"|"What"|"Condition"
-"Alias2"|"Target"|"What"|"Condition"
-"Alias3"|"Target"|"What"|"Condition"
-...
Condition components
Logical expression: The expression that combines the defined aliases using "and", "or", "(", ")" or "not". Example: <A>or<B>
Alias: A, B, C, etc.
Target: The object to which the action should be applied. Use the following syntax (optionally using wildcards or placeholders):
For an element: Element:[Element name or ID]
For a service: Service:[Service name or ID]
For a view: View:[View name or ID]
For a connection (see Conditional manipulation of connection shapes: Connection
For an EPM object (supported from DataMiner 10.2.9/10.3.0 onwards), the following are supported:
- SystemType=[system type];SystemName=[system name]
- SystemType=[system type]
- SystemName=[system name]
Depending on a value: Value
The default target is Element, so if only a name or ID is specified, without a preceding keyword, this will be considered an element name or ID.
If the target is set to Value, the "What" condition component has to contain the value to be evaluated. The latter can also be a placeholder referring to a session variable.
What: Can be configured as follows:
ALARMLEVEL
NAME: [Name of the element, view or service specified in the Target]
PARAMETER: [Parameter ID]
Alternatively, you can specify the parameter ID without the prefix, as a reference without prefix will by default be interpreted as a parameter reference.
To use a column parameter, append the primary key (or display key) to the parameter ID, separated by either a comma or colon.
- [Parameter ID]:[Primary key]
- [Parameter ID],[Primary key]
PROPERTY: [Property name]
Protocol
Note
You can also use statistics in this part of the condition. See Using statistics in the condition.
Condition: The condition that determines whether the shape manipulation is applied. If you want to check if the specified "What" matches with a regular expression, start the condition with "Regex=", followed by the regular expression.
Multiple conditions can be combined within this part of the condition, using a semicolon. In that case, each condition should include an operator and a value. The complete condition component will only function correctly if all conditions within it are correctly configured.
For an overview of the supported operators in the condition, see Condition operators. However, note that if the target is an EPM object, only the operators =, !=, >, >=, <, and <= are supported.
Using an asterisk in a condition
When an asterisk ("*") is used in shape data to refer to an element, view, or service, the asterisk is replaced with the first element ID, view ID, or service ID that is found starting from the current shape.
If you instead want it to be replaced with the first element ID, view ID, or service ID starting from the parent shape, add the StartResolvingFromParent option.
Changing the separator character in the condition
To change the separator character in part of the condition, you must add the [sep:XY] option in the first position of that part of the condition. For example:
<A>or<B>or<C>-[Sep:|^]A^Highlight Element 00^Property:ServiceType^Regex=.*[Var:CheckBoxes].*-[Sep:|^]B^Highlight Element 00^Name^Regex=.*[Var:SearchQuery].*-[Sep:|^]C^Highlight Element 00^Property:Color^[Var:ColorVar]
However, in order to replace the – separators, the separator replacement option must be placed in the first position of the shape data value. For example:
[sep:-^]<A>^A|Element:myElement|Name|Regex=.*[var:myVar].*
In addition, it is possible to use the [sep:XY] option in the condition part of the shape data. Normally, if this part contains a semicolon, it will be interpreted to consist of several conditions. To change this behavior, specify the [sep:XY] option immediately before the condition. For example:
<A>-A|Element:MyElement|Parameter:1|[Sep:;$]=a;b
Tip
See also: About using separator characters
Using statistics in the condition
Alarm statistics can be used in the "What" part of the condition. The following table lists the available items and indicates whether they can be used to retrieve data for a view, a service, or an element.
Statistical data | View | Service | Element | EPM object |
---|---|---|---|---|
#CriticalElements | X | X | ||
#MajorElements | X | X | ||
#MinorElements | X | X | ||
#WarningElements | X | X | ||
#NormalElements | X | X | ||
#TimeoutElements | X | X | ||
#NoticeElements | X | X | ||
#ErrorElements | X | X | ||
#MaskedElements | X | X | ||
#TotalElements | X | X | ||
#TotalElementsInAlarm | X | X | ||
#CriticalServices | X | |||
#MajorServices | X | |||
#MinorServices | X | |||
#WarningServices | X | |||
#NormalServices | X | |||
#TotalServices | X | |||
#TotalServicesInAlarm | X | |||
#CriticalAlarms | X | X | X | X |
#MajorAlarms | X | X | X | X |
#MinorAlarms | X | X | X | X |
#WarningAlarms | X | X | X | X |
#NormalAlarms | X | X | X | X |
#TimeoutAlarms | X | X | X | X |
#NoticeAlarms | X | X | X | X |
#ErrorAlarms | X | X | X | X |
#MaskedAlarms | X | X | X | |
#TotalAlarms | X | X | X | X |
Note
- #NormalAlarms can only be used if, in the MaintenanceSettings.xml file, the <AutoClear> tag is set to "false".
- On a DMA with a Ticketing module, you can also use the placeholder #Tickets to create a condition based on the number of tickets, optionally followed by the domain name in case you only want tickets from a particular domain to be taken into account. This is possible for views, services, and elements. For example: #Tickets:Internal.
Specifying a default return value
By default, if the condition cannot be evaluated (e.g. because the element or parameter does not exist), it always returns false. If the condition must return "true" when it cannot be evaluated, add "DefaultReturnValue=True" to the condition.
For example, with the configuration below, if the A condition cannot be evaluated because the element does not exist, "true" will be returned, and the shape will be shown.
Shape data field | Value |
---|---|
Show | <A>-A|Element:NonExistingElement|Parameter:1|>0|DefaultReturnValue=True |
Note
The DefaultReturnValue option is placed in the same position as a possible calculation option, e.g. Min, Max, Concat, or Avg. To combine these options, use a semicolon (";"). See also: Conditional manipulation of connection shapes.
Conditional manipulation of connection shapes
When conditional shape manipulation actions are defined on connection property shapes, there are additional possibilities for the "What" field of the condition.
Note
Connection property shapes are shapes that have an Options shape data field with the value "ConnectionProperty:PropertyName". See Displaying connection properties.
The following conditions can be defined:
Does a connection property have a specific string value?
This condition will be true if a connection property has a specific string value. If a line represents multiple connections, the different values of that same property will be concatenated. Example:
Shape data field Value Options ConnectionProperty:State Show A|Connection|Property:State|=Active Is a connection highlighted?
This condition will be true if the connection is either highlighted or not. Example:
Shape data field Value Options ConnectionProperty:Bandwidth FlipX A|Connection|IsHighlighted|=false Is the mouse pointer on a connection?
This condition will be true if the mouse pointer is either on the connection or not. Example:
Shape data field Value Options ConnectionProperty:Bandwidth FlipY A|Connection|IsMouseOver|=true Does a connection property have a specific numeric value?
This condition will be true if a connection property is greater or smaller than a specific value. For lines that represent multiple connections, you can specify the calculation that has to be made with the different values of that same property. The default calculation is Sum, but you can also specify Min, Max, Concat, and Avg. Note that when you use Concat, the result will no longer be a numeric value but a string value (e.g. <value1>, <value2>). Example:
Shape data field Value Options ConnectionProperty:Speed Highlight A|Connection|Property:Speed|>=5|Max
Examples
Single conditions:
<A>-A|57/2|1|<0
<B>-B|57/3|510,1|<0
<C>-C|number|PROPERTY:Class|=A
<D>-D|VIEW:2|PROPERTY:Class|=A
<E>-E|Service:serv|PROPERTY:Class|=A
<F>-F|Element:number|ALARMLEVEL|>=MINOR
<G>-G|Element:MyElement|Protocol|=MyProtocolName
<H>-H|Element:MyElement|Parameter:1|<0
<I>-I|Element:MyElement|Parameter:510,1|<0
<J>-J|VIEW:2|ALARMLEVEL|>=MINOR
<K>-K|Service:serv|ALARMLEVEL|>=MINOR
Multiple conditions combined:
<A>or<B>or<C>or<D>or<E>or<F>or<G>or<H>-A|57/2|1|<0-B|57/3|510,1|<0
-C|number|PROPERTY:Class|=A-D|VIEW:2|PROPERTY:Class|=A
-E|Service:serv|PROPERTY:Class|=A-F|Element:number|ALARMLEVEL|>=MINORG|
VIEW:2|ALARMLEVEL|>=MINOR-H|Service:serv|ALARMLEVEL|>=MINOR
<A>and<B>and<C>and<D>and<E>and<F>and<G>and<H>-A|57/2|1|<0-
B|57/3|510,1|<0-C|number|PROPERTY:Class|=A-D|VIEW:2|PROPERTY:Class|=AE|
Service:serv|PROPERTY:Class|=A-F|Element:number|ALARMLEVEL|>=MINORG|
VIEW:2|ALARMLEVEL|>=MINOR-H|Service:serv|ALARMLEVEL|>=MINOR
Multiple conditions combined with the "condition" part of the shape data:
<A>-A|Element:MyElement|Parameter:1|!=a;!=b
Conditions using alarm statistics:
<A>-A|Element:myElement|#CriticalAlarms|>=10
<A>-A|View:myView|#CriticalElements|>0
<A>and<B>-A|Service:myService|#TotalAlarms|=0-B|Element:myElement|#TimeoutAlarms|=0
<A>or<B>-A|View:myView|#MinorServices|>0-B|Element:myElement|Property:Enabled|=true
Conditions using the target "Value":
<A>-A|Value|10|<=20
<A>-A|Value|5|>2
<A>-A|Value|[var:MyVar01]|>=[var:MyVar02]
Condition with EPM target (supported from DataMiner 10.2.9/10.3.0 onwards):
<A>-A|SystemType= Cable;SystemName=SF Cable1|#TotalAlarms|>0