I have an event frame template with a Status attribute (String Builder data reference) that takes its value from an attribute in the parent element called PI Comms.
Status Settings = .\Elements[.]|PI Comms;
Status Value Type = String
This element template attribute is a Formula and is defined in terms of another attribute called Heartbeat_Trigger (PI Point) in the same element template:
PI Comms Settings = A=Heartbeat_Trigger;[if A > 298 then 1 else 0]
PI Comms Value Type = Healthy/Failed
A value of 1 for this attribute triggers an event frame and the Status is set to Failed.
What I am finding is that when I retrieve the event frame attributes after the frame has closed, the Status attribute is showing Healthy (corresponding to the PI Comms zero value that ends the frame).
I only ever want this attribute to show the value (Failed) that triggered the event frame, i.e. the value at the start of the frame.
If the PI Comms attribute were a PI Point data reference this would be easy; simply add TimeRangeMethod=StartTime to the settings for the Status attribute. But it isn't.
I can't make Status into a PI Point data reference because the attribute it references is not itself a PI Point data reference, so this produces an error when Status is viewed.
I can't use the TimeRangeMethod qualifier for Status because it's a String Builder not a PI Point; all that does is append the string "TimeRangeMethod=StartTime;" to the value Healthy.