1-Many Relationships in Expressions Rule
Run the Health Check Tool, and then select the 1-Many Relationships in Expressions rule. This rule detects expressions that use one-to-many relationships, which may cause performance issues because only the first record in a relationship is evaluated by an expression, even if thousands of records are returned.
Use this information to find and assess the need for expressions that use one-to-many relationships. For example, you may want to replace these expressions with those that use one-to-one relationships. Other configurations may also meet your needs, such as using a constant value rather than an expression.
Note that aggregate expressions are not included in the Health Check rule because in this case, using one-to-many relationships is valid.
The rule returns the following information for each expression used in a one-to-many relationship:
- Owner: Indicates the Business Object that contains returned expressions. Example: Change Request.
- ParentDefType: Indicates the type of definition used by each expression. For example, BusinessProcessDef indicates an expression is used by an Automation Process definition.
- ParentDefName: Indicates the name of the parent definition using the expressions. Example: Change - Notify Problem Owner.
- Relationship: Indicates the relationship that uses an expression. Example: Change Request Links Problems.
- Path: Provides guidance on how to find an expression that needs review.
Example:
BusinessProcessDef (Change - Notify Problem Owner)\Expression (Left) [Problem.ChangeRequestID (Change Request Links Problem)]
To find the expression in the example, create an Automation Process Blueprint, and then edit the Change - Notify Problem Owner Automation Process.
To fix the potential performance issue for the example, consider creating a one-to-one relationship that links Change Request to Problem.