Icon

JKISeasor2-17_​tomljh_​ver2

There has been no title set for this workflow's metadata.

JKISeasor2-17_tomljh_ver2

Challenge 17: Better Workflows with Error Handling and Logging

挑战 17:通过错误处理和日志记录改进工作流水平: 难描述:此挑战的目标是提醒您使用错误处理和日志记录构建可靠解决方案的重要性。这些是工作流开发中的最佳实践,经常被遗忘,但最终会产生很大的不同 - 特别是如果应用程序至关重要或您正在与团队合作。具体来说,您将选择您选择的任何工作流并向其添加以下元素:错误处理:使用 Try & Catch 构造;日志记录 - 提取工作流名称、用户名、执行的开始和结束。接下来,在一行中创建一个包含这些元数据以及故障节点的名称(如果有)及其消息的表,并将此表写入 CSV 文件。确保再次执行工作流后,会将新行追加到 CSV 文件中的日志表中。或者,您可以向日志文件添加更多列,例如,根据执行状态(成功或失败)带有自定义消息的列。您还可以创建一个日志记录组件,该组件将工作流名称、用户名、执行的开始和结束作为输入,允许配置自定义消息并更新日志文件。 Try Start Catch success/failure and Write log 设计工作流一般要注意:1、最好是 单点进入,因为多点进入的话,会出现各进入点数据没有一起同步更新的问题。例如:reset 第一个入口点,但忘记reset第二个入口点,将导致工作流的总体逻辑不正确。2、有些工作确实是可以并行的,但最好设计了依赖主流程分支上的某个节点。不耗时节点,设计成顺序执行是好的处理,可以防止逻辑错误。例如:本工作流,获取结束时间最好靠近后面,而不能独立出来做为一个入口点(ver1版本),这个是逻辑错误。其他注意:目前4.7.51、 时间节点的问题:创建时间范围节点Create Date&Time Range获取的执行时间,精度只能到秒,而小部件Data&TimeWidget精度可以到毫秒。2、Try and Catch两个节点要求要在同一个工作流中,如果封装到组件或元节点catch节点都会报错。 Main Workflow TryManual changeFor example:2023-07-21 Success2023-07-211 FailureCatchWorkflow Informationexecution status$FailingNode$ = "none" =>"success"TRUE =>"failure"Write to log filelog.csvStart TimeEnd TimeReload and Check log Try (VariablePorts) Table Creator String to Date&Time Catch Errors(Var Ports) Extract ContextProperties Variable ToTable Row Rule Engine CSV Writer Table Manipulator Date&Time Widget Date&Time Widget CSV Reader 挑战 17:通过错误处理和日志记录改进工作流水平: 难描述:此挑战的目标是提醒您使用错误处理和日志记录构建可靠解决方案的重要性。这些是工作流开发中的最佳实践,经常被遗忘,但最终会产生很大的不同 - 特别是如果应用程序至关重要或您正在与团队合作。具体来说,您将选择您选择的任何工作流并向其添加以下元素:错误处理:使用 Try & Catch 构造;日志记录 - 提取工作流名称、用户名、执行的开始和结束。接下来,在一行中创建一个包含这些元数据以及故障节点的名称(如果有)及其消息的表,并将此表写入 CSV 文件。确保再次执行工作流后,会将新行追加到 CSV 文件中的日志表中。或者,您可以向日志文件添加更多列,例如,根据执行状态(成功或失败)带有自定义消息的列。您还可以创建一个日志记录组件,该组件将工作流名称、用户名、执行的开始和结束作为输入,允许配置自定义消息并更新日志文件。 Try Start Catch success/failure and Write log 设计工作流一般要注意:1、最好是 单点进入,因为多点进入的话,会出现各进入点数据没有一起同步更新的问题。例如:reset 第一个入口点,但忘记reset第二个入口点,将导致工作流的总体逻辑不正确。2、有些工作确实是可以并行的,但最好设计了依赖主流程分支上的某个节点。不耗时节点,设计成顺序执行是好的处理,可以防止逻辑错误。例如:本工作流,获取结束时间最好靠近后面,而不能独立出来做为一个入口点(ver1版本),这个是逻辑错误。其他注意:目前4.7.51、 时间节点的问题:创建时间范围节点Create Date&Time Range获取的执行时间,精度只能到秒,而小部件Data&TimeWidget精度可以到毫秒。2、Try and Catch两个节点要求要在同一个工作流中,如果封装到组件或元节点catch节点都会报错。 Main Workflow TryManual changeFor example:2023-07-21 Success2023-07-211 FailureCatchWorkflow Informationexecution status$FailingNode$ = "none" =>"success"TRUE =>"failure"Write to log filelog.csvStart TimeEnd TimeReload and Check log Try (VariablePorts) Table Creator String to Date&Time Catch Errors(Var Ports) Extract ContextProperties Variable ToTable Row Rule Engine CSV Writer Table Manipulator Date&Time Widget Date&Time Widget CSV Reader

Nodes

Extensions

Links