利用 FlowForce 服务器处理和优化不良输入数据
每当您从外部来源获取数据时,就存在遇到错误的风险。我们之前在博客中探讨过这个问题,例如在《未雨绸缪:Altova MissionKit 解决了数字格式的难题》以及关于《处理 Groupon API》的一系列文章中。
输入文件中存在错误数据可能导致 FlowForce Server 任务的数据转换步骤失败。当 FlowForce Server 任务失败时,后续的执行步骤将不会进行。FlowForce Server 的设计理念是,为了防止一个任务步骤中的错误导致一系列额外的无效结果。 值得庆幸的是,FlowForce Server 还提供了功能,可以帮助您从错误中恢复,并保持生产流程的正常运行。
在这篇文章中,我们将进一步扩展 数据映射 和 报表生成 职位描述 自定义 FlowForce 服务器任务 优雅地处理输入文件中存在的错误数据。

我们首先创建了一个包含错误数据的文件的变体,并在工作流程中添加了一个文件夹,作为存放错误输入文件的目标位置。

我们创建了那个有问题的输入文件,方法是复制了一个现有的输入文件,然后使用DiffDog对其进行编辑。
输入的文件(.csv格式)中的第一列是时间戳,包含小时、分钟、秒和毫秒。我们只是修改了第14行和第15行中的数值,使其超出24小时的上限。

我们启动了MapForce,并将包含错误数据的文件指定为“CameraLogToGPX”转换的输入文件。当我们点击“输出”按钮执行转换时,出现了以下错误:

FlowForce 服务器任务步骤,包含错误处理
接下来,我们定义了一个新的 FlowForce Server 任务,该任务在“错误/成功处理”步骤中处理输入数据。如果数据映射失败,我们将移动包含错误的数据文件以及任何部分写入的 .gpx 文件到“错误数据”文件夹。如果数据映射成功,我们将继续进行转换,生成 .html 报告,然后将输入文件和 .gpx 文件移动到“已完成工作”文件夹。
请注意“错误处理”部分的最后一步。如果出现数据映射错误,将导致“循环处理每个文件”的执行停止。因此,我们会递归地重新运行整个任务,以处理任何尚未处理的输入文件。

如果数据映射错误对企业至关重要,并且需要立即采取行动,我们甚至可以在“错误处理”部分添加一个任务步骤,用于发送电子邮件通知

当然,收件人、主题、正文和附件等字段都可以进行完全自定义设置。
如果数据映射步骤成功,FlowForce 服务器将执行“成功”部分的代码,然后继续执行 .html 渲染任务的后续步骤。
运行任务
该任务按照预设的时间触发器启动,并且 FlowForce 服务器日志会记录每个执行步骤。在下面的日志片段中,我们可以看到如何处理包含错误数据的输入文件。序列中的第三行显示了错误信息,然后将输入文件以及部分生成的 .gpx 文件发送到 "badData" 文件夹。

上一行显示服务器正在开始处理文件夹中的下一个输入文件。
当任务完成处理后,我们可以在工作文件夹的内容中看到预期的结果:

FlowForce Server 适用于 Windows、Linux 平台,并且很快将支持 Mac OS 平台。如果您想开始使用, 请点击此处下载免费试用版!