Icon

JKISeason2-17_​sryu

Challenge 17: Better Workflows with Error Handling and Logging
Level: Hard

Description: The goal of this challenge is to remind you of the importance of building robust solutions with error handling and logging. These are best practices in workflow development that are often forgotten, but make a big difference in the end -- especially if the application is critical or if you are working with a team. Concretely, you will pick any workflow of your choice and add the following elements to it:

Error handling: Use the Try & Catch construction;
Logging - Extract the workflow name, username, start and end of the execution. Next, create a table containing these metadata as well as the name of a failing node (if any) and its message in one row, and write this table to a CSV file. Make sure that once the workflow is executed again, a new row is appended to the log table in the CSV file. Optionally, you can add more columns to your log file, e.g., the column with a custom message depending on the execution status - success or failure. You can also create a logging component that takes workflow name, username, start and end of the execution as input, allows configuring the custom message, and updates the log file.

The workflow you want to do error handlingand logging. error : input # = 0FailingNodeFailingNodeMessageworkflow nameusernamestartendIf the input value is 0, an error occurs in the workflow.save logrename & sort columncheck logNode 35Node 36dummyexecution status Breakpoint Variable toTable Row Extract ContextProperties Date&Time Widget Date&Time Widget IntegerConfiguration CSV Writer Table Manipulator CSV Reader Try (VariablePorts) Catch Errors(Var Ports) Table Creator Rule EngineVariable The workflow you want to do error handlingand logging. error : input # = 0FailingNodeFailingNodeMessageworkflow nameusernamestartendIf the input value is 0, an error occurs in the workflow.save logrename & sort columncheck logNode 35Node 36dummyexecution status Breakpoint Variable toTable Row Extract ContextProperties Date&Time Widget Date&Time Widget IntegerConfiguration CSV Writer Table Manipulator CSV Reader Try (VariablePorts) Catch Errors(Var Ports) Table Creator Rule EngineVariable

Nodes

Extensions

Links