---
title: "使用 FlowForce Server 实现数据转换的自动化"
date: "2013-02-05"
categories: 
  - "data-integration"
tags: 
  - "data-mapping"
  - "flowforce-server"
  - "mapforce"
description: 了解如何使用 FlowForce Server 实现数据转换的自动化，利用“热文件夹”和通配符，从而高效地处理和管理数据映射。
---
Status: #blog

Tags:  #data-mapping #flowforce-server #mapforce

Categories: [data-integration](/blog/zh/category/data-integration.md)
# 使用 FlowForce Server 实现数据转换的自动化

Altova 设计了 [FlowForce Server](https://www.altova.com/zh/flowforce.html)，旨在为由专用高速服务器执行的数据转换提供全面的自动化、管理和控制功能。 FlowForce Server Beta 3 版本目前免费提供给 MapForce Enterprise 和 Professional 版本的用户，仅限在测试期间使用。 FlowForce Server 可以提供数据映射的热文件夹自动化功能，并维护详细的活动日志，用户可以通过网页浏览器窗口远程监控这些日志。 以下截图显示了运行 FlowForce Server 的日志 [MapForce](https://www.altova.com/zh/mapforce.html) 我们在名为“……”的博客文章中介绍过一种数据映射方案，该方案可以将CameraLog数据转换为GPX格式 [在一个数据映射过程中处理多个输入文件](https://www.altova.com/blog/2013/01/process-multiple-input-files-in-single.html). 这个映射关系使用了通配符来指定多个输入文件，以便进行处理。 

![FlowForce 服务器任务日志](https://lh4.ggpht.com/-Y2W3wl_49us/UQqMAu-rvKI/AAAAAAAABAE/0smVWZzKnWE/clip_image001%25255B3%25255D.png?imgmax=800 "FlowForce Server job log")

在 FlowForce Server 上，设置、运行和查看此类任务的结果只需要几分钟的时间。 

**使用通配符还是热文件夹？**
通配符和热文件夹会增加数据转换工作流程的复杂性，成功使用它们需要仔细的规划。让我们花一点时间深入了解一下我们想要实现的场景。假设我们是一家出版自然和徒步指南的公司，负责IT部门。我们雇佣摄影师，他们外出徒步，并使用数码相机的GPS跟踪功能记录他们的路线。我们希望将相机GPS日志文件转换为基于XML的.gpx格式，以便进行地图绘制和其他处理。我们将公司网络上建立一个文件夹，供摄影师上传他们的GPS日志文件。这将是FlowForce Server监控的热文件夹，用于获取输入文件，以便进行CameraLogToGPX的映射转换。我们只需要对每个输入文件进行一次处理。因此，在数据转换完成后，我们可以将输入文件从热文件夹中删除。我们还希望将输出文件放置在单独的文件夹中。这表明以下FlowForce Server的工作流程步骤：

- 请查看“热文件夹”，看看是否有新的输入文件已经到达
- 对输入文件进行数据映射，并将输出文件放置在单独的文件夹中
- 将输入文件移动到永久存储位置

下图展示了一种我们可以使用的工作流程文件夹结构，其中包含已准备好的文件，可以直接放入“热文件夹”进行处理

![热文件夹结构](https://lh6.ggpht.com/-asx6QjtywbI/UQqMBDMb25I/AAAAAAAABAM/DFy-FKarvgQ/clip_image002%25255B3%25255D.png?imgmax=800 "Hot folder structure")

指定的“热文件夹”为 C:CameraGPShotFolder，生成的 .gpx 文件将保存在 C:CameraGPSoutputFiles 文件夹中。当数据映射完成后，输入文件将被移动到 C:CameraGPScompletedInput 文件夹。

** 在服务器上部署映射**
[ MapForce Beta](https://www.altova.com/zh/flowforce/architecture.html) 是 FlowForce Server 的一个组件，它与 MapForce 类似，并增加了一个功能，可以将映射文件部署到 FlowForce Server。现有的数据映射在部署时通常不需要进行任何特殊准备。我们只需要考虑输入和输出文件的文件名。我们将指示 FlowForce Server 将输入文件名作为作业参数，以便在新的文件到达“热文件夹”进行处理时，能够自动识别。原始映射中为输入组件指定了通配符文件名，这不再需要。我们还需要让 FlowForce 指定输出文件的位置。 可以在 MapForce Beta 中打开映射，从输入组件中移除文件名，并在输出文件中添加一个移除文件夹路径的功能，以便 FlowForce Server 可以设置目标位置。下图显示了映射中新的文件名定义。

![映射文件名](https://lh3.ggpht.com/-r5yBw9YFHZY/UQqMBkV-MMI/AAAAAAAABAU/xL5Li6rp5KY/clip_image003%25255B3%25255D.png?imgmax=800 "Mapping file names")

在 MapForce Beta 的部署对话框中，为了部署映射关系，我们可以选择立即在 Web 浏览器中打开一个 FlowForce Server 的作业定义窗口，以便完成作业操作的配置。

![部署映射对话框](https://lh6.ggpht.com/-kBBP0SdTKhI/UQqMBxv8AHI/AAAAAAAABAc/Np02Av__Sgc/clip_image004%25255B3%25255D.png?imgmax=800 "Deploy mapping dialog")

**在 FlowForce Server 中定义任务**
以下截图展示了在 FlowForce Server 任务属性窗口中定义的完整任务步骤：

![FlowForce 服务器任务定义](https://lh3.ggpht.com/-A_n4WloIckY/UQqMCuZC22I/AAAAAAAABAk/fFFQiZOTts0/clip_image005%25255B3%25255D.png?imgmax=800 "FlowForce Server job definition")

任务触发器定义在窗口的底部。每30秒，FlowForce Server 会检查指定的“热文件夹”。如果文件夹内容发生变化，FlowForce Server 将执行任务步骤。每个执行步骤可以是一个已部署的 MapForce 映射、一个系统步骤，甚至可以是另一个 FlowForce Server 任务。进入“热文件夹”的每个新文件的名称将成为一个名为 {triggerfile} 的参数，我们在映射步骤中将其用作输入文件名，在移动步骤中则用作要移动的文件名。映射步骤中的“工作目录”参数定义了输出文件将存储的位置。FlowForce Server 还提供了设置任务自动运行和停止时间、用户权限和角色，以及队列设置的功能，用于定义任务运行之间的最小时间间隔以及任务的最大并行实例数。在我们的场景中，我们很可能收到多个以组的形式传输的输入文件，这些文件是从摄影师的存储卡上复制而来的。多个并行运行可以显著提高处理速度。通常，您可以将并行运行的数量与运行 FlowForce Server 的机器上的核心或 CPU 数量相匹配。

![FlowForce 服务器的任务队列设置](https://lh3.ggpht.com/-gOS3cMv9fk8/UQqMDEVgTOI/AAAAAAAABAs/LY4M-7fMw-g/clip_image006%25255B3%25255D.png?imgmax=800 "FlowFoprce Server job queue settings")

**查看工作日志**

每次 FlowForce Server 运行我们的任务时，都会在“日志视图”中新增六行记录，如图所示。第一行和最后一行分别记录任务的开始和结束，而每个“执行步骤”都会生成自己的开始和结束消息。 “已成功完成，状态码：0” 表示该步骤成功执行，没有发生任何错误。

![FlowForce 作业日志](https://lh4.ggpht.com/-ehCqEYCeST8/UQqMDdhcyLI/AAAAAAAABA0/tWt7MYqX-Fc/clip_image007%25255B3%25255D.png?imgmax=800 "FlowForce job log")

我们可以点击“更多”链接，以获取关于每个执行步骤的详细报告。下图显示了“MapForce”映射执行步骤的消息：

![FlowForce 职位详情](https://lh5.ggpht.com/-FKRbtRq6uGM/UQqMDjeIaZI/AAAAAAAABA8/__RKzBpLYlk/clip_image008%25255B3%25255D.png?imgmax=800 "FlowForce job details")

将每个文件放入“热文件夹”后，FlowForce Server 会生成一个独立的作业实例，即使是批量添加多个文件也是如此。这使得追踪任何导致错误的单个输入文件变得容易。当我们向“热文件夹”中放入四个文件时，FlowForce Server 运行了四个作业，输出文件夹的内容如下所示：

![任务结果文件夹](https://lh5.ggpht.com/-rxfQa9sOELc/UQqMENmGKgI/AAAAAAAABBE/HauLZZkgg6M/clip_image009%25255B3%25255D.png?imgmax=800 "Job results folder")


