DIS 2.38
New features
IDE
XML editor: Validator results now include warnings [ID 32837]
When, in the DIS Validator pane, you click the information icon of an error or you right-click that error and select Show Details, the window showing those details will now also include possible warnings.
Also, when you right-click an error with warnings and select Fix > This error, a popup window will now appear to draw your attention to those warnings. Only when you click OK in that popup window will the error be fixed.
XML editor: Protocol comparison will now also include a validation of both protocols [ID 33133]
When you compare two protocols in the DIS Comparer tool window, apart from comparing the protocols, DIS will now also automatically validate both these protocols.
When comparison and validation have finished, instead of one result list, you will now see two tabs:
- Major Change: The result of the protocol comparison.
- Validator: The differences between the two protocol validations.
Language version of the C# projects now set to 7.3 by default [ID 33184]
As from version 2.38, by default, DIS will set the language version of the C# projects to 7.3.
Automation Script solutions: New 'Import Automation Script' command [ID 33411]
Apart from the Existing DataMiner Automation Script... option, which can be used to import locally stored Automation scripts into an Automation script solution, you can now use the Import DataMiner Automation Script option to import Automation scripts from the DataMiner Agent you are connected to.
- Right-click a solution folder in the Solution Explorer.
- Select Add > Import DataMiner Automation Script.
- Select a least one Automation script file.
- Click Open.
Note
- This new Import DataMiner Automation Script option will only be available if DIS is connected to a DataMiner Agent.
- When you add existing scripts to an Automation script solution, they are automatically converted to the correct format. For each Exe block, a C# project is created, and the code in that Exe block is transferred to the newly created C# project.
Validator
New checks and error messages [ID 33428] [ID 33477] [ID 33698] [ID 33732] [ID 33740]
The following checks and error messages have been added.
Check ID | Error message name | Error message |
---|---|---|
2.17.1 | EmptyAttribute | Empty attribute 'ArrayOptions@options' in Param '{tablePid}'. |
2.17.2 | UntrimmedAttribute | Untrimmed attribute 'ArrayOptions@options' in Table '{tablePid}'. Current value '{untrimmedValue}'. |
2.17.3 | NamingEmpty | Empty option 'naming' in attribute 'ArrayOptions@options'. Table PID '{tablePid}'. |
2.17.4 | NamingRefersToNonExistingParam | Option 'naming' in attribute 'ArrayOptions@options' references a non-existing 'Param' with ID '{referencedPid}'. Table PID '{tablePid}'. |
2.38.7 | ForeignKeyColumnInvalidInterpreteType | Invalid value '{columnIntrepeteType}' in tag 'Interprete/Type' for foreign key column. Possible values 'string'. FK column PID '{fkColumnPid}'. |
2.38.8 | ForeignKeyColumnInvalidMeasurementType | Invalid value '{columnMeasurementType}' in tag 'Measurement/Type' for foreign key column. Possible values 'string, number'. FK column PID '{fkColumnPid}'. |
2.38.9 | ForeignKeyColumnInvalidType | Invalid value '{columnType}' in tag 'Param/Type' for foreign key column. Possible values 'read'. FK column PID '{fkColumnPid}'. |
2.39.6 | DisplayKeyColumnInvalidInterpreteType | Invalid value '{columnIntrepeteType}' in tag 'Interprete/Type' for display key column. Possible values 'string'. DK column PID '{dkColumnPid}'. |
2.39.7 | DisplayKeyColumnInvalidMeasurementType | Invalid value '{columnMeasurementType}' in tag 'Measurement/Type' for display key column. Possible values 'string, number'. DK column PID '{dkColumnPid}'. |
2.39.8 | DisplayKeyColumnInvalidType | Invalid value '{columnType}' in tag 'Param/Type' for display key column. Possible values 'read'. DK column PID '{dkColumnPid}'. |
2.39.9 | DisplayKeyColumnMissing | Missing column with ColumnOption@type="displaykey". Table PID {tablePid}. |
2.39.10 | UnexpectedIdxSuffix | Unexpected [IDX] suffix on Param/Description. Column Pid {columnPid}. |
2.39.11 | DuplicateDisplayKeyColumn | Table has multiple ColumnOption tags with value 'displaykey' in type attribute. Table Pid {tablePid}. |
2.46.7 | InvalidColumnInterpreteType | Invalid value '{columnIntrepeteType}' in tag 'Interprete/Type' for primary key column. Possible values 'string'. PK column PID '{pkColumnPid}'. |
2.46.8 | InvalidColumnMeasurementType | Invalid value '{columnMeasurementType}' in tag 'Measurement/Type' for primary key column. Possible values 'string, number'. PK column PID '{pkColumnPid}'. |
2.46.9 | InvalidColumnType | Invalid value '{columnType}' in tag 'Param/Type' for primary key column. Possible values 'read'. PK column PID '{pkColumnPid}'. |
2.60.1 | EmptyTag | Missing tag 'Display' in Param '{pid}'. |
2.61.1 | MissingTag | Missing tag 'Param/Type' in Param '{pid}'. |
2.61.2 | EmptyTag | Empty tag 'Param/Type' in Param '{pid}'. |
2.61.3 | UntrimmedTag | Untrimmed tag 'Param/Type' in Param '{pid}'. Current value '{untrimmedValue}'. |
2.61.4 | InvalidValue | Invalid value '{tagValue}' in tag 'Param/Type'. Param ID '{pid}'. |
2.62.1 | EmptyAttribute | Empty attribute 'Type@id' in Param '{pid}'. |
2.62.2 | UntrimmedAttribute | Untrimmed attribute 'Type@id' in Param '{pid}'. Current value '{untrimmedValue}'. |
2.62.3 | NonExistingParam | Attribute 'Type@id' references a non-existing 'Param' with ID '{referencedPid}'. Param ID '{pid}'. |
2.62.4 | NonExistingResponse | Attribute 'Type@id' references a non-existing 'Response' with ID '{responseId}'. Param ID '{pid}'. |
2.62.5 | NonExistingColumn | Attribute 'Type@id' references a non-existing 'Column' with PID '{columnPid}'. Param ID '{pid}'. |
2.62.6 | MissingAttribute | Missing attribute 'Type@id' due to 'Param/Type' '{paramType}'. Param ID '{pid}'. |
2.63.1 | MissingAttribute | Missing attribute 'ColumnOption@pid' in table '{tablePid}'. |
2.63.2 | EmptyAttribute | Empty attribute 'ColumnOption@pid' in Param '{tablePid}'. |
2.63.3 | UntrimmedAttribute | Untrimmed attribute 'ColumnOption@pid' in Table '{tablePid}'. Current value '{untrimmedValue}'. |
2.63.4 | NonExistingParam | Attribute 'ColumnOption@pid' references a non-existing 'column' with PID '{columnPid}'. Table PID '{tablePid}'. |
2.64.1 | ColumnInvalidType | Invalid value '{columnType}' in tag 'Param/Type' for column. Possible values 'read, write, group, read bit, write bit'. Column PID '{columnPid}'. |
2.65.1 | EmptyTag | Empty tag 'ArrayOptions/NamingFormat' in Table '{tablePid}'. |
2.65.2 | UntrimmedTag | Untrimmed tag 'ArrayOptions/NamingFormat' in Table '{tablePid}'. Current value '{untrimmedValue}'. |
2.65.3 | NonExistingParam | Tag 'ArrayOptions/NamingFormat' references a non-existing 'Param' with ID '{referencedPid}'. Table PID '{tablePid}'. |
2.65.4 | MissingDynamicPart | Missing dynamic part(s) in 'ArrayOptions/NamingFormat' tag. Table PID '{tablePid}'. |
2.66.1 | ObsoleteTag | Obsolete tag 'Information/Includes'. Param ID '{pid}'. |
2.67.1 | EmptyTag | Missing tag 'Dependencies/Id' in Param '{pid}'. |
2.67.2 | UntrimmedTag | Untrimmed tag 'Dependencies/Id' in Param '{pid}'. Current value '{untrimmedValue}'. |
2.67.3 | NonExistingId | Attribute 'Dependencies/Id' references a non-existing 'Param' with ID '{referencedPid}'. Param ID '{pid}'. |
2.67.4 | RTDisplayExpected | RTDisplay(true) expected on Param '{pid}' containing 'Dependencies/Id' tag(s). |
2.67.5 | RTDisplayExpectedOnReferencedParam | RTDisplay(true) expected on Param '{referencedPid}' referenced by a 'Dependencies/Id' tag. Param ID '{referencingPid}'. |
6.5.1 | MissingTag | Missing tag 'Type' in Action '{actionId}'. |
6.5.2 | EmptyTag | Empty tag 'Type' in Action '{actionId}'. |
6.5.3 | UntrimmedTag | Untrimmed tag 'Type' in Action '{actionId}'. Current value '{untrimmedValue}'. |
6.5.4 | InvalidValue | Invalid value '{actionType}' in tag 'Type'. Action ID '{actionId}'. |
6.6.1 | MissingTag | Missing tag 'On' in Action '{actionId}'. |
6.6.2 | EmptyTag | Empty tag 'On' in Action '{actionId}'. |
6.6.3 | UntrimmedTag | Untrimmed tag 'On' in Action '{actionId}'. Current value '{untrimmedValue}'. |
6.6.4 | InvalidValue | Invalid value '{actionOn}' in tag 'On'. Action ID '{actionId}'. |
6.7.1 | IncompatibleTypeVsOnTag | Incompatible 'Action/Type' value '{actionType}' with 'Action/On' value '{actionOn}'. Action ID '{actionId}'. |
6.7.2 | MissingOnIdAttribute | Missing attribute 'On@id' due to 'Action/Type' '{actionType}' and 'Action/On' '{actionOn}'. Action ID '{actionId}'. |
6.7.3 | MissingTypeIdAttribute | Missing attribute 'Type@id' due to 'Action/Type' '{actionType}' and 'Action/On' '{actionOn}'. Action ID '{actionId}'. |
6.7.4 | MissingOnNrAttribute | Missing attribute 'On@nr' due to 'Action/Type' '{actionType}' and 'Action/On' '{actionOn}'. Action ID '{actionId}'. |
6.7.5 | NonExistingParamRefInTypeIdAttribute | Attribute 'Type@id' references a non-existing 'Param' with ID '{pid}'. Action ID '{actionId}'. |
6.7.6 | MissingTypeIdOrTypeValueAttribute | Missing attribute 'Type@id or Type@value' due to 'Action/Type' '{actionType}' and 'Action/On' '{actionOn}'. Action ID '{actionId}'. |
6.7.7 | ExcessiveTypeIdOrTypeValueAttribute | Excessive attribute 'Type@id or Type@value' due to 'Action/Type' '{actionType}' and 'Action/On' '{actionOn}'. Action ID '{actionId}'. |
6.7.8 | NonExistingRefToPairOnTimeoutSetNext | Attribute 'On@nr' references a non-existing 'Pair' with 1-based position '{pairPosition}' in Group '{groupId}'. Action ID '{actionId}' triggered by Trigger '{triggerId}'. |
6.7.9 | NonExistingConnectionRefInTypeNrAttribute | Attribute 'Type@nr' references a non-existing 'Connection' with ID '{connectionId}'. Action ID '{actionId}'. |
6.7.10 | UnsupportedConnectionTypeDueTo | {optionalPrefix}'Type@nr' attribute in action of type '{actionType}' on '{actionOn}' references Connection '{connectionId}' with wrong type '{connectionType}'. Action ID '{actionId}'. |
6.7.11 | UnsupportedGroupContentDueTo | Attribute 'On@id' in action of type '{actionType}' on '{actionOn}' references Group '{groupId}' which is missing 'Content/Param' tag(s). Action ID '{actionId}'. |
6.7.12 | UnsupportedGroupParamType | Attribute 'On@id' in action of type '{actionType}' on '{actionOn}' references Group '{groupId}' which references Param '{paramId}' with unsupported 'Param/Type' '{paramType}'. Action ID '{actionId}'. |
6.7.13 | UnsupportedGroupParamWithoutSnmp | Attribute 'On@id' in action of type '{actionType}' on '{actionOn}' references Group '{groupId}' which references Param '{paramId}' with unsupported 'SNMP/Enabled' '{snmpEnabledValue}'. Action ID '{actionId}'. |
6.7.100 | UnsupportedAttributeOnNr | Unsupported attribute 'Action/On@nr' in combination with 'Action/Type' '{actionType}' and 'Action/On' '{actionOn}'. Action ID '{actionId}'. |
6.22.2 | EmptyAttribute | Empty attribute 'Action/On@nr' in Action '{actionId}'. |
6.22.3 | UntrimmedAttribute | Untrimmed value '{untrimmedValue}' in attribute 'Action/On@nr'. Action ID '{actionId}'. |
6.22.4 | InvalidValue | Invalid value '{attributeValue}' in attribute 'Action/On@nr'. Action ID '{actionId}'. |
Changes
Enhancements
IDE - C# editor: StyleCop.Analyzers rules disabled [ID 33313]
DIS defines a default set of analysis rules for QAction projects. These rules can be used by Visual Studio extensions like e.g. SonarLint or StyleCop to analyze the code.
The following StyleCop.Analyzers rules have now been disabled:
- SA1127 - GenericTypeConstraintsMustBeOnOwnLine
- SA1128 - ConstructorInitializerMustBeOnOwnLine
Validator: System.Xml DLL file will by default be added as a reference to QAction projects when the Validator creates a solution [ID 33472]
When a protocol.xml file is being validated, a solution is built from the XML file. Up to now, when that solution was built, the System.Xml.dll would incorrectly not be added as a reference when creating the QAction project(s). In some cases, this could result in compilation errors during validation when types from the System.Xml DLL file were being used.
From now on, the System.Xml DLL file will by default be added as a reference to the QAction projects when the Validator creates a solution from a protocol.xml.
Fixes
DIS Inject window: Automation script selection box would be empty [ID 33473]
When you opened the DIS Inject window to select the Automation script to be debugged, in some cases, the selection box listing all Automation scripts would be empty.