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.