Table 58 defines the UpdateDataDetails structure.
Table 58 – UpdateDataDetails Structure
Name |
Type |
Description |
UpdateDataDetails |
Structure |
The details for insert, replace, and insert/replace history updates. |
nodeId |
NodeId |
Node id of the Object to be updated. |
performInsertReplace |
PerformUpdateType |
This enumeration determines which action of Insert, Replace, or Update is performed. The Delete enumerated value is not allowed and will result in a Bad_InvalidArgument error. |
updateValues[] |
DataValue |
New values to be inserted or to replace. |
Its representation in the AddressSpace is defined in Table 59.
Table 59 – UpdateDataDetails definition
Attribute |
Value |
|||||
BrowseName |
UpdateDataDetails |
|||||
IsAbstract |
False |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the HistoryUpdateDetails DataType defined in Table 56. |
||||||
Conformance Units |
||||||
Historical Access Insert Value |
||||||
Historical Access Delete Value |
||||||
Historical Access Update Value |
||||||
Historical Access Replace Value |
||||||
|
Setting performInsertReplace = INSERT inserts entries into the history database at the specified timestamps for one or more HistoricalDataNodes. If an entry exists at the specified timestamp, then the new entry shall not be inserted; instead the StatusCode shall indicate Bad_EntryExists.
This function is intended to insert new entries at the specified timestamps, e.g., the insertion of lab data to reflect the time of data collection.
If the Time does not fall within range that can be stored then the related operationResults entry shall indicate Bad_OutOfRange.
Setting performInsertReplace = REPLACE replaces entries in the history database at the specified timestamps for one or more HistoricalDataNodes. If no entry exists at the specified timestamp, then the new entry shall not be inserted; otherwise, the StatusCode shall indicate Bad_NoEntryExists.
This function is intended to replace existing entries at the specified timestamp, e.g., correct lab data that was improperly processed, but inserted into the history database.
Setting performInsertReplace = UPDATE inserts or replaces entries in the history database for the specified timestamps for one or more HistoricalDataNodes. If the item has an entry at the specified timestamp, then the new entry will replace the old one. If there is no entry at that timestamp, then the function will insert the new data.
A Server can create a modified value for a value being replaced or inserted (see 3.1.7) however it is not required.
This function is intended to unconditionally insert/replace values and qualities, e.g., correction of values for bad sensors.
Good as a StatusCode for an individual entry is allowed when the Server is unable to say whether there was already a value at that timestamp. If the Server can determine whether the new entry replaces an entry that was already there, then it should use Good_EntryInserted or Good_EntryReplaced to return that information.
If the Time does not fall within range that can be stored then the related operationResults entry shall indicate Bad_OutOfRange.