Skip to content
DataMiner DoJo

More results...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in posts
Search in pages
Search in posts
Search in pages
Log in
Menu
  • Blog
  • Questions
  • Learning
    • E-learning Courses
    • Open Classroom Training
    • Certification
      • DataMiner Fundamentals
      • DataMiner Configurator
      • DataMiner Automation
      • Scripts & Connectors Developer: HTTP Basics
      • Scripts & Connectors Developer: SNMP Basics
      • Visual Overview – Level 1
      • Verify a certificate
    • Tutorials
    • Video Library
    • Books We Like
    • >> Go to DataMiner Docs
  • Expert Center
    • Solutions & Use Cases
      • Solutions
      • Use Case Library
    • Markets & Industries
      • Media production
      • Government & defense
      • Content distribution
      • Service providers
      • Partners
      • OSS/BSS
    • DataMiner Insights
      • Security
      • Integration Studio
      • System Architecture
      • DataMiner Releases & Updates
      • DataMiner Apps
    • Agile
      • Agile Webspace
      • Everything Agile
        • The Agile Manifesto
        • Best Practices
        • Retro Recipes
      • Methodologies
        • The Scrum Framework
        • Kanban
        • Extreme Programming
      • Roles
        • The Product Owner
        • The Agile Coach
        • The Quality & UX Coach (QX)
    • DataMiner DevOps Professional Program
  • Downloads
  • More
    • Feature Suggestions
    • Climb the leaderboard!
    • Swag Shop
    • Contact
      • General Inquiries
      • DataMiner DevOps Support
      • Commercial Requests
    • Global Feedback Survey
  • PARTNERS
    • All Partners
    • Technology Partners
    • Strategic Partner Program
    • Deal Registration
  • >> Go to dataminer.services

Matrix Helper Class Renaming Parameters

Solved1.42K views1st October 2020auto-generated Matrix protocol
1
Geovanny Galeano [SLC] [DevOps Advocate]725 13th September 2020 0 Comments

I'm working on a matrix driver which i used the help of the CreateMatrix Macro to generate the inputs and outputs table. Later in development i saw the need to change the name of the tables and columns from inputs to sources and outputs to destinations. I see now that the driver is not working properly because of this, it looks like the matrix helper class has a reference to the parameters which i can't not edit since it is part of the auto generated code.

I was able to pinpoint one specific column in the outputs table, the last generated column. If i change the original name "RouterControlOutputsConnectedInput" to anything else for example "DestinationsCurrentSourceIndex" i get this following exception.

2020/09/12 21:23:52.584|SLManagedScripting.exe|ManagedInterop|ERR|0|QA2160|101|Run|Exception System.ArgumentException: Could not auto detect outputsTable. Please use the correct parameter name format and don't forget write virtualsets and serializedsets single parameters.
   at Skyline.DataMiner.Library.Protocol.Matrix.MatrixHelper.ParseProtocolAutoDetectOutputTable(MatrixHelperParameterIds requestParameters, MatrixHelperParameterIds foundParameters, MatrixSearchTableInfo tablesWithLabel, MatrixSearchTableInfo tablesWithEnabled, MatrixSearchTableInfo tablesWithLocked, MatrixSearchTableInfo tablesWithConnected, MatrixSearchSingleSetInfo tablesWithSet)
   at Skyline.DataMiner.Library.Protocol.Matrix.MatrixHelper.ParseProtocolAutoDetectTables(ParameterInfo[] parameters, MatrixHelperParameterIds requestParameters, MatrixHelperParameterIds foundParameters, IDictionary`2 potentialTables)
   at Skyline.DataMiner.Library.Protocol.Matrix.MatrixHelper.ParseProtocolInfo(GetElementProtocolResponseMessage response, MatrixHelperParameterIds requestParameters, MatrixHelperParameterIds foundParameters)
   at Skyline.DataMiner.Library.Protocol.Matrix.MatrixHelper..ctor(SLProtocol protocol, MatrixHelperParameterIds matrixHelperParameters, Int32 maxInputCount, Int32 maxOutputCount)
   at MatrixStorage.GetMatrix(SLProtocol protocol)
   at QAction.ProccesListRoutes(SLProtocolExt protocol)
   at QAction.Run(SLProtocolExt protocol)

Is there a way to generate that code again so it recognizes the name change, or is there a way to edit the reference in the matrix helper class? I tried removing the QA63000 but it just gets re-created with the old reference.

Geovanny Galeano [SLC] [DevOps Advocate] Selected answer as best 1st October 2020

1 Answer

  • Active
  • Voted
  • Newest
  • Oldest
4
Laurens Moutton [SLC] [DevOps Enabler]8.73K Posted 14th September 2020 1 Comment

To avoid having to specify every column to be used by the matrix helper class, the choice has been made to let it detect by looking at the parameter names. This way it enables the possibility to work with existing tables where the column order is shifted and parameter descriptions are custom, and still support it with the matrix helper class without needing a driver version range change. It's looking at the table name suffixed with values: "Label", "IsEnabled", "IsLocked", "ConnectedInput", "VirtualSets", or "SerializedSets".
We specially developed the macro so it would create the columns with the correct parameter names for you, so you wouldn't have to care about the needed format.
As the parameter name has been manually modified, it can't find the parameter with name <tablename> + "ConnectedInput", and will throw the exception. It would be impossible for the helper class if there are multiple string parameters in a table to know which one(s) should be used for the router control and which ones are used for other purposes without having anything to rely on (such as an agreed parameter name format).

You will have to use the original intended parameter name. Parameter names are not visible on the UI and you should use the matrixhelper to access the values from a QAction, so I see no need why you still want to change the parameter name as you shouldn't be using the parameter name anywhere in the driver. If you're changing the table name to "Destinations" instead of "RouterControlOutputs" then the parameter name will be "DestinationsConnectedInput".

The parameter description can be anything, so the end user can still see "Current Source Index (Destinations)".

Geovanny Galeano [SLC] [DevOps Advocate] Selected answer as best 1st October 2020
Geovanny Galeano [SLC] [DevOps Advocate] commented 1st October 2020

While that is correct that the description can be anything since the helper class uses the name and tries to find like you said those keywords. I think that it could be a little confusing and also sometimes can be marked as a remark during a code review. Like for my case the device uses Destinations and Sources instead of Inputs and Outputs, so having a parameter with the name [Table name]ConnectedInput and a description of Connected Source (Table name) could be a problem since we tried to match the name and description as much as possible.

Please login to be able to comment or post an answer.

My DevOps rank

DevOps Members get more insights on their profile page.

My user earnings

0 Dojo credits

Spend your credits in our swag shop.

0 Reputation points

Boost your reputation, climb the leaderboard.

Promo banner DataMiner DevOps Professiona Program
DataMiner Integration Studio (DIS)
Empower Katas

Recent questions

Web Applications exception in Cube due to invalid certificate 0 Answers | 0 Votes
Redundancy Groups and Alarming – Duplicate Alarms 0 Answers | 0 Votes
Correlation Engine: “Test rule” doesn’t result in a hit, despite functional rule 1 Answer | 3 Votes

Question Tags

adl2099 (115) alarm (62) Alarm Console (82) alarms (100) alarm template (83) Automation (223) automation scipt (111) Automation script (167) backup (71) Cassandra (180) Connector (109) Correlation (69) Correlation rule (52) Cube (151) Dashboard (194) Dashboards (188) database (83) DataMiner Cube (57) DIS (81) DMS (71) DOM (140) driver (65) DVE (56) Elastic (83) Elasticsearch (115) elements (80) Failover (104) GQI (159) HTTP (76) IDP (74) LCA (152) low code app (166) low code apps (93) lowcodeapps (75) MySQL (53) protocol (203) QAction (83) security (88) SNMP (86) SRM (337) table (54) trending (87) upgrade (62) Visio (539) Visual Overview (345)
Privacy Policy • Terms & Conditions • Contact

© 2025 Skyline Communications. All rights reserved.

DOJO Q&A widget

Can't find what you need?

? Explore the Q&A DataMiner Docs

[ Placeholder content for popup link ] WordPress Download Manager - Best Download Management Plugin