自定义 FlowForce 服务器任务

在我们的上一篇文章中,标题是: 使用 FlowForce Server 实现数据映射和转换的自动化, 我们创建了一个名为 "SimpleMapAndTransform" 的任务,用于 自动化数据映射 使用 MapForce Server 以及 生成 HTML 报告 由 StyleVision Server 提供。在...之后 FlowForce Server 该任务运行了多次,因此我们在用于处理输入文件的同一文件夹中积累了大量输出文件,同时,工作文件夹(workFiles)中也产生了许多临时中间文件,如图所示。

在这篇文章中,我们将对该程序进行改进,以获得更清晰、更有条理的结果,并删除不必要的临时文件。

重新组织输出

首先,我们可以在处理输入文件的“For each”循环中添加更多步骤,将数据映射和转换后创建的新的 .gpx 和 .html 文件移动到“已完成输入”文件夹中。这些步骤是以下步骤中的第 3 步和第 4 步。

在每个步骤中的“工作目录”选项也可以用于重定向输出。但是,我们用来选择每个输入文件的处理变量 包含了完整路径和文件名,因此,为了简化操作,我们可以继续使用这个字符串,并在处理完成后将所有输出文件移动到指定位置。

我们的 StyleVision 设计方案中,报告包含一个图表,该图表以 .png 文件格式单独保存,与主 .html 文档分开。 在任务的最后一步,我们使用系统命令行功能,将所有 .png 文件从输入文件夹移动到已完成的工作文件夹。

命令行功能允许您将任何有效的操作系统命令定义为 FlowForce Server 作业的步骤。在这个作业中,我们仍然在 "For-each" 循环中,因此 .png 文件将与相关的 .html 文档一起移动。我们使用了通配符来指定 .png 文件的名称,因为 .png 文件并不完全遵循输入文档的命名规则。这种通配符模式也适用于 StyleVision 设计,该设计为每个报告创建多个图表。

家务工作步骤

定期清理工作目录中的内容是一个好习惯。我们的任务使用名为“workFiles”的文件夹来扩展.pxf文件中的内容,以便生成报告。如图所示,该文件夹中包含XML Schema(XML模式)、设计相关的工作文件、用于生成各种报告格式的.XSLT文件以及临时工作文件。

我们可以在作业中的循环结束后增加一个清理步骤,以便在处理完成后立即清理。然而,FlowForce Server 允许同时运行同一作业的多个实例。如果一个实例在另一个实例仍在使用的同时清理工作文件目录,那将是非常糟糕的!

更好的解决方案是定义一个独立的清理任务,并将其安排在主任务空闲时运行。以下是一个非常简单的清理任务的示例,用于清理名为 "workingFiles" 的文件夹,再次使用命令行功能:

我们使用通配符删除了工作目录(workFiles)中的所有文件,但这种方法可能并不适用于所有情况。如果.pxf文件中包含.html文档所需要的.css样式表或图片文件,则需要执行更精细的清理操作。

工作触发器

原始的 SimpleMapAndTransform 任务计划在每周一至周五的 8:30 至 5:00 之间,每 15 分钟运行一次。如上所示,清理任务计划每天在 19:00(晚上 7 点)运行一次。FlowForce Server 的 Web 界面主页显示了任务计划:

这里有一个快速技巧,您可以在定义 FlowForce Server 任务时使用,以测试该任务。每个任务都可以有多个时间触发器。我们可以定义一个“立即运行”的触发器,以便立即测试一个新的任务,并将其安排在未来几秒钟后运行:

我们可以通过查看 FlowForce 服务器日志,了解每个任务步骤的详细信息,从而获得即时反馈。

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