Composable strives to replicate the concepts of coding via a UI, and to further that goal, we added feature that allow the user to react to errors. There are three major features that encompass our error handling: Continue On Error, Email On Error, and Execute On Error. These settings can be altered in the Error Handling Options modal under the progress and trace options in the Designer.
Continue On Error is exactly what it sounds like- if an error occurs during a Dataflow, it is logged, but the Dataflow will continue. The setting can be set at either the Dataflow level or the Module level, allowing for further precision within the Dataflow as the Module level setting will override the setting at the Dataflow level. It does not however, have to be set on every Module- if a Module does not have it set, it defaults to whatever the Dataflow level setting is at the time. When using Continue On Error, it’s important to note that any failed Module’s outputs are erased, and will not send data to a downstream Module. This is because that data is not necessarily trustworthy after a failure, so to prevent any inconsistent results, the output values are removed. With the exception of the Optional List Builder, Alert Sender, and the Consolidator, any Module directly connected to the failed Module will not execute because the input that connects to the failed Module will never be satisfied. It is important to keep this in mind while building a Dataflow so that Modules have the correct behavior after a failure. Every error that occurs is written to the trace and can be seen there when reviewing the run. The run will have a status of ‘Success’ because no error was allowed to fully surface during execution, and as a result, and further error handling options will not be activated.
In order to have error suppression work in tandem with the other options, set Error On Completion to true in the settings modal. Note that it will not do anything unless Continue On Error is set somewhere in the Dataflow, because errors are logged at immediate failure normally. When set to true, all of errors are collected in the background and then stored until the end of the Dataflow execution, where they are appropriately logged. The same rules for Module failures apply with Error On Completion set as with Continue On Error- all the output values will be removed from the offending Module. In addition to these suppression and logging settings, we also have reflexive actions that can be taken if a failure occurs.
Email On Error and Execute On Error allow for notification and immediate action upon an error occurring. Email On Error emails a person or persons when an error occurs. When set, it defaults to emailing the Dataflow Owner, but that can be overwritten by a comma-delimited list of emails should it be necessary. Execute On Error allows the user to specify another Dataflow if the one running fails. In order to provide information about what occurred, Composable passes error and run information to the reacting Dataflow so that actions can be taken based on the type or error logged or what Module failed previously. Re-running tasks, updating external databases post error, correcting any potential partial Dataflow completion results, and more are all possible.
With the additions of these types of error manipulation, we are excited to see the ways that Composable users can be further empowered to automate their processes.