Hi,
What is the best approach to retrieve a value of a single table parameter by index from a remote element in a DMS in a connector QAction? DmaID, ElementId, ParameterID and Index are known.
The method NT_GET_PARAMETER (73) (protocol.NotifyDataMiner) does not allow a parameter index, presumably used only for non-table params.
The method DMS_GET_VALUE (87) retrieves the whole table which then has to be iterated over, which is not very efficient.
The Skyline.DataMiner.Library's element only features a GetStandaloneParameter and then a full GetTable method, which is same as above.
Can you please advise on best way and possibly provide an example or link documenting the method?
Thank you.
Hi Martin, the recommended way to retrieve a single cell from another element is using Skyline.DataMiner.Library. This doesn't request the content of the whole table, but only one cell.
Example:
var dmaId = 10;
var elementId = 11;
var tableId = 100;
var columnId = 102;
var index = "index";
var dms = protocol.GetDms();
var element = dms.GetElement(new DmsElementId(dmaId, elementId));
var table = element.GetTable(tableId);
var column = table.GetColumn<double>(columnId);
var value = column.GetValue(index);
Hi Martin,
That’s actually a know bug that will need to be solved. The GetValue method should work with the primary key. Retrieving a cell by primary key works, but when there is a display key with the same value, that one will be taken instead, although the primary key of that row could be different.
(internal task ID 168905)
Hi Tom,
Thanks a lot for your answer. This works, though only partially.
The culprit is, that in the GetValue method I am not able to retrieve a value using a primary key (which is what I need) as the index , instead of a display key from a table that is using a “displayColumn” attribute, while it works for tables using the “naming” option. Retrieving the value from a table with a “displayColumn” using Display Key as the index works well.
I guess this is a known limitation and drivers are encouraged to use the naming feature.
Thanks