A full impact analysis is available for all design objects. Impact analysis is determined by two types of inverse relationships between objects:
- Dependents are objects that depend on the selected object. For example, when an interface references an expression rule, the interface becomes a dependent of that expression rule.
- Precedents are objects that the selected object relies on. For example, an interface calls a constant. As a result, the constant is a precedent of the interface.
These relationships are shown in the Dependents and Precedents views. These views allow you to drill through multiple levels of dependents or precedents, and perform other tasks such as:
- Find all objects that use a particular query rule, including process models.
- Determine which applications contain the utility expression rule
- See all objects that an interface uses.
Up to 500 dependents or precedents are shown in the list. Only the objects that the current user can see are displayed. For more information, see Considerations for Impact Analysis.
Tracing Dependents and Precedents
Within an application, select an object in the application view and click Dependents or Precedents in the toolbar.
The application view will update to show you the dependents or precedents for your selected object. The annotated screenshot and descriptions below define the navigation options and information displayed in the dependents or precedents view.
- All Application Objects: Navigates back to the application contents view.
- Object Link: A link to the selected object whose dependents or precedents are listed below.
- Describes the number of dependents or precedents listed below.
- View Toggle: A link to switch to the alternate dependents or precedents view for the selected object.
- Object Type Filter: Allows you to filter the direct dependents and precedents listed by object type. The filter options do not apply to indirect dependents and precedents.
- Application Filter: Allows you to filter dependents and precedents that are or are not in this current application. (6b) Objects that are not in this application have italicized names.
- Toolbar: Allows you to take action on selected objects in the dependents or precedents list. Applications cannot be selected.
- Expand/Collapse buttons: Allows you to trace through multiple levels of object relationships. Up to 50 additional dependents or precedents will be displayed for each object listed in this view.
- Locations column: Shows where the relationship occurs. For example, the process model New Purchase Request uses the interface PR_SubmitPrForm as a start form. When a relationship occurs in more than one location, the list of locations is shown in a dialog.
For data types, decisions, expression rules, integrations, interfaces, record types, sites, and web APIs, select Dependents or Precedents in the Settings menu, as shown below.
This view displays the same relationship information as the application view annotated above. You can toggle between dependents and precedents views (3), trace through multiple levels of object relationships (8), and view the locations of relationships (9). Filters and toolbar options don't apply when viewing dependents or precedents within an object.
Considerations for Impact Analysis
- Only 500 direct dependents and precedents are returned. When tracing through multiple levels of relationships, only 50 dependents and precedents are returned.
- If there are more than 100,000 groups or document management objects on the system, not all of their relationship information may be captured by the system. In this scenario, informational messages will be displayed to users viewing dependents and precedents, describing which relationships may not be displayed.
- Impact analysis is not available for user accounts. This means that users do not show up in any dependents and precedents list, and you cannot view their relationships.
- Impact analysis is also not available for portal pages and discussion forums, both of which are deprecated.
- The relationships of a deleted object cannot be viewed. For instance, the process model New Purchase Request uses the interface PR_submitPurchaseRequest. If the interface is deleted, the precedents list for New Purchase Request does not include the interface.
- Deleting an object will impact all its dependents. When deleting a single object, Appian will check for remaining dependents and prompt you to review them before continuing.
- When objects reference themselves in a recursive relationship, the dependents or precedents list do not include the object. For instance, the process model Send Adhoc Task calls itself as a sub-process. When viewing the dependents or precedents list for Send Adhoc Task, Send Adhoc Task is not included.
- Only the latest version of an object's relationships are calculated
Objects with Syntax Errors
- If an object's definition has an expression with a syntax error, the relationships in the expression are not traced. For instance, the interface PR_submitForm uses the expression rule APN_displayName. If the latest version of the interface is saved with a syntax error, e.g., a missing closing parenthesis, APN_displayName isn't included in PR_submitForm's precedents, list. Likewise, PR_submitForm is not included in APN_displayName's dependents list.
Relationship Tracing in Progress
- When attempting to view dependents or precedents lists before Appian has finished calculating the object relationships, some objects that you expect to display may not be present. This would only happen after the application server is started, and the process of calculating the relationships is not completed.