Hi,
To determine what method to use for my use case, I like to better understand the behavior of this method:
FillArray(int, List<object[]>, SaveOption, DateTime?)
How will providing the exact same row data in the object List, but with a different datetime, be interpreted by dataminer?
Will this be seen as a change and therefor trigger anything that triggers on a change event?
E.g. Generate an information event when configured in the alarm template. Send a new SET to storage...
In the end I want to update an entire table with history sets and only trigger a change (and anything linked to this) when there really is a change in the value.
Hi Mieke,
As long as the value itself does not change, then no change-events should trigger.
- QActions should not run (unless it is a write parameter as per Executing a QAction)
- Alarms will not get updated
- Information events should not generate
- No write to the storage is done (not even to close the trendwindow, for this the NT_CLOSE_HISTORY_TREND_WINDOW can be used)
It is a bit tricky to predict all actions and combinations of columns that can be sent using the FillArray, so edge cases may occur, but in general the DMA should only update the internal 'change time' to ensure historysets are coming in chronologically but not execute any logic when there is no value change.
Should you find cases where this does not hold true, or want to dive into a specific example deeper, I am more than happy to delve through the code to figure it out.
What if there is 1 cell with a changed value?
I would expect there will only be a change event for that 1 cell an not for every cell in the table. Is that correct?