I've been having trouble with an event frame-generating AF analysis missing events due to input data points being received out of order (OOO). The analysis receives PI point data that is generated by a remote server and delivered via a PI-to-PI interface across the internet to my company's server. When an event was missed, I could see the event frame through the 'preview results' function in PI System Explorer, and recalculating the analysis resulted in an event frame being generated.
A while back, I changed the analysis to look at data timestamped one minute ago, figuring this would give a margin of time for any interrupted/lagging data to be filled in to the AF cache. The results improved, but there were still events being missed.
I recently found out that expression analyses can be set to automatically recalculate when OOO data is received, so I moved all of the variable logic from the EF-generation analysis to an expression analysis, replaced the start trigger with a boolean output to a PI point, set it to auto-recalculate (output time stamp was set to "Trigger Time"), and made a separate EF-generation analysis that triggers on the boolean output from the expression analysis.
Long story short: it didn't work. The next time OOO data was received, the expression analysis recalculated (I can see this in the recalculation logs), but an event frame was not created. I'm assuming this is because of the Output Time Stamp setting on the expression analysis, so I changed it from "Trigger Time" to "Execution Time" in hopes that this will force the EF-generation analysis to catch it.
Is this assumption correct? Is there a different way to force an EF-generation analysis to run when OOO data is received? Any insight would be appreciated.