Data Page throwing ConnectorException propagates FAIL to callers
A Data Page invokes a Connector and throws a ConnectorException (NoRouteToHostException). The error conditions are made available on the Data Page and the resulting Step Status FAIL propagates back through the calling Activities. In Agent and Flow Processing, this triggers a rollback of the current interaction even if the caller of the Data Page checks for the errors on the Data Page content.
In this use case, a When rule invokes the Data Page, the Tracer confirms that the When rule correctly returns the intended answer. However, the propagation of the Step Status FAIL can also be seen in elements of the call stack that come after the completion of the When rule evaluation.
In this scenario, you expect the When rule to return "false" once the messages are found on the Data Page, but the NoRouteToHostException is thrown instead.
Fail: Caught unhandled exception:NoRouteToHostException: No route to host
Steps to Reproduce
- Set up a Connect REST rule to be unable to connect to its endpoint, throwing a NoRouteToHostException.
- Implement a Data Page that wraps the REST connector.
- Implement a When rule whose conditional logic first tests whether the Data Page has messages, and then tests a value from the Data Page if no messages exist (that is, loading was successful).
- Invoke the When rule.
The step status failure on invoking the connector method (Connect-REST or Connect-SOAP and so on) in the activity pxCallConnector is not cleared and, therefore, is propagated to the callers.
Perform the following local-change:
Call a Rule-Utility-Function (RUF) to clear the step status failure through a response data transform.
In this case, the developer handled the scenario with a facade data page.
100% found this useful