A full impact analysis is available for all design objects and plug-ins. Impact analysis is determined by two types of inverse relationships between objects and plug-ins:
- Dependents are objects or plug-ins that depend on the selected object or plug-in. For example, when an interface references an expression rule, the interface becomes a dependent of that expression rule.
- Precedents are objects or plug-ins that the selected object relies on. For example, an interface calls a constant and a plug-in. As a result, the constant and the plug-in is a precedent of the interface.
Plug-in Impact Analysis is a preview feature. To share feedback or report issues with references to plug-ins, please open a support case.
These relationships are shown in the Dependents and Precedents views. Precedent and dependent views of selected objects allow you to drill through multiple levels of dependents or precedents, and perform other tasks such as:
- Find all objects or plug-ins that use a particular expression rule.
- Determine which applications contain the utility expression rule
- See all objects or plug-ins 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.
Dependents and Precedents View
You can view dependents and precedents of objects, and dependents of plug-ins in Appian Designer. Click the Objects View and select the Design Objects tab or Plug-ins tab to view a list of objects or plug-ins within the environment.
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.
From an object's dependents view, you can also run all of the test cases for an object's direct dependent expression rules (10). Click Run Direct Rule Dependents to manage Test Cases for the object's dependent rules.
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 subprocess. 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, such as 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
Some objects or plug-ins may not display in dependents or precedents lists if Appian has not finished calculating object relationships. This would only happen after the application server is started, and the process of calculating the relationships is not completed.