- New rows are generated on each scheduled record and on each transition of runStatus. (Otherwise we'd create a record for each cycle of the machines running many parts per minute.) firstOutAlarm will only change with a runStatus changing to stop. SKU can only be changed when the machine is stopped.
- We used a view or session property to hold the dataset for the machine(s) in question. A script transform on the SQL query to subtract the initial counts from all subsequent counts (so the chart would start at Y = 0). An XY Chart plotted that data and a start and added in a separate plot - basically (0, 0) and and end point based on the average rate expected for the time period. Uptime, etc., can be calculated from the same dataset without another trip to the database.
- We stayed with stock. I'm always nervous about using non-stock in case it breaks with upgrade.
In retrospect, we used many script transforms of which many could probably have been done much more efficiently as expressions with Automation Professionals' Integration Toolkit Module.