- Bookmark
- Subscribe
- Email to a Friend
- Printer Friendly Page
- Report Inappropriate Content
Link copied. Please paste this link to share this article on your social media post.
Load Events Using LoadRecord and LoadRecords
Originally published on Geo SCADA Knowledge Base by AdamWoodland | March 25, 2024 09:52 AM
Overview
Event data can be loaded into the Geo SCADA historian using some database methods:
- LoadRecord - One event at a time with any freeform/custom text as the event message
- LoadRecords - Multiple events at a time, supporting multiple objects at the same time, with any freeform/custom text for the event message
The only difference in parameters between these two methods are LoadRecords takes an array of values (even if an array size of 1) whereas LoadRecord just takes a singular value from each parameter.
LoadEncodedRecord and LoadEncodedRecords also exist, the only difference with these is the message parameter for these two methods must be a defined encoded message that allows backend support for internationalisation. The encoded message can be extracted from CDBEventJournal using the EncodedMessage column. Using the encoded message is typically better for moving events between two Geo SCADA systems, whereas the non-encoded messages will be necessary when bringing in event data from other systems.
Parameters
Parameter | Maps to CDBEventJournal Column | Details |
Timestamp (Time) | RecordTime | The time in UTC of the event message for the source of the event (e.g. timestamp from RTU if event is originally sourced from an RTU) |
ClassName (String) | Category | The event category name of the event based on the category name in the table DBEventCategoryDef, not the friendly description seen by users in CDBEventJournal (do a SQL JOIN between those tables if necessary to extract in one go) |
ObjectId (Long) | Id / Source | The valid database object id that the event is to be loaded into |
Severity (Long) | Severity / SeverityDesc / SeverityValue | Database severity between 1 and 1000, ideally should match a valid severity on the target system but will round down to the nearest severity if not matched. Will error if 0 is used. |
OPCType (Long) | None | Bitmask for the OPC-AE event type:
Bit 1 - Simple Bit 2 - Tracking Bit 3 - Condition Bitmask cannot be 0, so unless you specifically need to set the event type suggest just using a value of 1 for the imported events |
SCXType (Long) | AlarmStateDesc |
Shows the alarm state causing the event:
|
Message (String) | Message / EncodedMessage | The message shown for the event entry, see above for details on EncodedMessage. Cannot be blank. |
UserName (String) | User | Can be any valid string, including blank. |
SeqNo (Long) | None | Doesn't currently import anything, use Null/Nothing depending on your coding language. A new SeqNo will be generated by the server automatically |
CommentNo (Long) | None | Use 0, no other value supported |
ReceiptTime (Time) | ReceiptTime | The timestamp for the event that the server receives it, for the import typically the same as RecordTime or the current time depending on need |
ClientAddress (String) | ClientAddress |
The IP address of the user that generated a source using string (dotted quads) or as 32-bit unsigned representation of the IP address. Cannot be blank, use "0" for a blank entry in the event journal else provide a valid IP address |
AreaOfInterest (Long) | AreaOfInterest | Use 0 for "World", else a valid Id for an AOI. Parameter still required if AOI is disabled on your system (just use 0 in this case) |
SuppressionType (Byte) | SuppressionDesc |
Doesn't cause any suppression to occur, just cosmetic. |
Author
Link copied. Please paste this link to share this article on your social media post.