Full impact analysis is available for all modern design objects. Impact analysis uses the following concepts to describe relationships between objects:
- Dependents are objects that depend on the selected object. For example, a data store is a dependent of a data type because the data store references the data type.
- 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 using the Dependents and Precedents views. These views allow you to drill through multiple levels of dependents or precedents, which is handy when you want to do the following kinds of things:
- 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 additional exceptions on what's returned, see Considerations for Impact Analysis below.
Tracing Dependents and Precedents
In the application designer, select an object in the application contents view and select Dependents or Precedents in the toolbar options:
The precedents of a process model called New Purchase Request display as follows:
To navigate back to the application contents view, click All Application Objects:
When tracing relationships in the application designer, you can take action on selected objects in the list. Selection is disabled for application objects. For instance, you can add options to an application patch from the relationship results.
When tracing relationships in the application designer, the direct dependents and precedents can be filtered using the filter options in the left hand navigation pane. The filter options do not apply to indirect dependents and precedents.
An additional filter is available to show objects that are in or not in the current application. Additionally, these objects are italicized, as shown below:
In the individual object designers for data types, expression rules, integrations, interfaces, record types, sites, and web APIs, select Dependents or Precedents in the Settings menu, as shown below:
You can trace through multiple levels of relationships by clicking the expand/collapse triangles next to the object name. Up to 50 dependents or precedents can be viewed in this way, as shown below:
The Locations column show where the relationship occurs. For instance, the process model New Purchase Request uses the interface PR_SubmitPrForm in the process model's start form:
When a relationship occurs in more than one location, the list of locations is shown in a dialog. For instance, the process model New Purchase Request uses the data store Purchase Request DS in five nodes' node inputs:
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.
- 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 happens after the application server is started, and the process of calculating the relationships is not completed.