The Calculations List is located in the Slower Queries section of the query list. Clicking on it will present a hierarchical breakdown of where all the individual calculation definitions exist within your system. So, if you have a layout object with a hide condition, six calculated conditional formatting entries, and placeholder text, it will appear as 8 separate entries on the Calculation list, one for each calculation. A Set Field By Name script step appears twice: once for the source calculation, and again for the target calculation.
For each of these calculations, we display information useful for locating performance problems, broken elements, and other support issues.
- The length of the calculation
- Is this calculation entirely commented out (suggesting a copy-pasted field definition that couldn't be resolved)?
- Does the calculation reference a TO that can't be reached from the context of the calculation?
- This even helps with scripts, which can run from any context. A calculation in a script step or menu item will derive a context from the TOs referenced. So, if a script step calculation talks to only one TO, we can't speak to whether that TO will be accessible at runtime. But, if the calculation accesses two TO's, we can flag if they are not both simultaneously accessible from the same undefined context TO.
- This feature also accounts for global fields, which are accessible from any context, regardless of the structure of the relationship graph.
- Does this calculation access information through a sorted relationship? Note that this may display inaccurate values for script steps, as we can't determine the true context TO.
- The list of TOs that are referenced (directly or indirectly) in the order accessed. This is useful for identifying when the chain of TOs would pass through the Selector TO in Selector-Connector, or if a TO that is never explicitly referenced is ever implicitly referenced as part of a chain.
- A count of the remote TOs referenced. If a single calculation references 11 remote TOs, that's something that might be worth further examination.
- The longest TO chain that is referenced in resolving the calculation (Max Distance). So, if you only access 30 different TOs that should all be one step away, but one of them is actually 7 steps away, this will be viewable here.
- For fields, there are columns for "Do Not Evaluate If Empty", "AutoEnter-Do Not Replace", and "Validate-Only If Modified"
- The 6 custom definable "watched functions" that are used elsewhere.
While this may seem more granular than you will generally have a need for, it has pointed out legacy or broken code in almost every system reviewed. We thought this would be helpful, but we had no idea how helpful it would prove to be.
A Calculations list is also available as a sub-query for an individual selected layout, script, privilege set or custom menu. This is a great tool for finding potential problem spots with a particular non-performant layout.