After modifying a CDT and updating all of its dependents, process models with smart services that rely on references within expressions to the modified CDT still fail to execute. The reason for this may be that the custom output still indexes a component of the CDT that was modified. The following message is shown in the application server log:
INFO [stdout] (Appian Work Item - 566 - ProcessExec02 : ExpressionGroupRequest) 2016-05-10 20:19:45,003 [Appian Work Item - 566 - ProcessExec02 : ExpressionGroupRequest] ERROR com.appiancorp.process.engine.ExpressionGroup - An error occurred while evaluating expression: quantity:ac!Param1.quantity (Invalid index: Cannot index property 'quantity' of type Text into type cdt_to_2)
A custom output of a node in a process model differs from an input because the custom output of a node is an expression. Node inputs on the other hand are variables whose mappings will get updated when all dependents of the CDT are updated. You would see the same behavior in any rules (e.g. pv!cdt_to_2.quantity), meaning they would not get removed when dependents are updated.
pv!cdt_to_2.quantity
This is by design as Appian shouldn’t be deleting custom outputs nor removing parts of the definition of rules when CDTs are modified, because that could easily cause other issues.
Modify the custom output of the node to reflect the change in the CDT manually and the process will be able to complete correctly.
This article applies to all versions of Appian.
Last Reviewed: February 2017