FlatFileReceive(BizTalk Server 示例)

FlatFileReceive 示例演示如何使用 BizTalk Server 将平面文件处理成等效的 .xml 文件。

本示例的用途

本示例将 FFInput 文件夹配置为接收位置。 在将文件(如示例文件 FlatFileReceive_in.txt)放入此文件夹后,BizTalk Server 将按照以下一系列步骤处理该文件内的消息:

  1. 读取接收位置文件夹 FFInput 下的输入文件中的消息。

  2. 在接收管道中,平面文件拆装器组件将平面文件格式的消息转换为等效的 XML 消息。

  3. 在 MessageBox 数据库中,消息会路由至 FILE 发送端口,该端口将 XML 消息写入到发送适配器文件夹 FFOutput 中的某一文件中。

此示例的设计方式和原因

示例消息反映了本示例的诸多基本设计特征。 平面文件消息必须使用自定义接收管道内的平面文件拆装器和平面文件架构进行拆装。 下表对以上设计元素和其他设计元素进行了总结。

设计元素 选择的原因
自定义接收管道 - 自定义管道使用平面文件反汇编程序和平面文件架构来转换入站采购订单消息。 平面文件拆装器自身不是管道,因此在 BizTalk Server 管理控制台中配置接收管道时不能使用平面文件拆装器。
平面文件架构 - 定义所有相同的记录和字段特征 (包括结构) 作为 XML 架构,并提供一种机制,用于定义将平面文件实例消息转换为等效 XML 实例消息所需的所有平面文件特征 (,反之亦然) 。
订阅筛选器 - 订阅筛选器通过根据属性字段捕获满足一个或多个条件的消息来执行实际路由。
XMLTransmit - 根据需要执行传出 XML 消息的基本程序集。 PassThruTransmit 管道不提供其他支持。

通过结合这些元素,产生了一个可从接收位置接受平面文件格式的采购订单消息并将生成的 XML 表示形式写出到发送位置的解决方案。

以下注意事项适用于此示例的设计:

  • 平面文件架构 (PO.xsd) 包含描述采购订单平面文件的结构的扩展标注。 可手动创建这些文件,但大多数文件都可以使用平面文件向导生成。

  • 平面文件架构使用 elementFormDefault 的 Unqualified 值。 这会生成正确结果,但该结果带有其他意外 XML 命名空间 (xmlns) 限定。 使用 elementFormDefault 的 Qualified 值可避免此问题。

  • XmlTransmit 用作发送管道。 当发送管道中不需要属性降级或其他消息处理时,请使用 PassThruTransmit 管道。

本示例所在的位置

<示例路径>\Pipelines\AssemblerDisassembler\FlatFileReceive\

下表显示了本示例中的文件及其用途说明:

文件 说明
Cleanup.bat 用于取消部署程序集并从全局程序集缓存中删除这些程序集。 删除发送和接收端口。 根据需要删除 Microsoft Internet 信息服务 (IIS) 虚拟目录。
FFReceivePipeline.btp 带平面文件拆装器组件的 BizTalk Server 接收管道文件。
FlatFileReceive.btproj、FlatFileReceive.sln 本示例的项目文件和解决方案文件。
FlatFileReceive_in.txt 示例输入文件。
FlatFileReceiveBinding.xml 用于如端口绑定之类的自动化设置。
PO.xsd 入站平面文件的架构。
Setup.bat 用于生成和初始化本示例。

如何使用本示例

可将本示例用作您自己的平面文件处理解决方案的基础, 并可根据自己的需要扩展本示例中用到的诸多设计元素。

生成和初始化此示例

  1. 在命令窗口中,导航到下面的文件夹:

    <示例路径>\Pipelines\AssemblerDisassembler\FlatFileReceive

  2. 运行 Setup.bat 文件,该文件将执行以下操作:

    • 在下面的文件夹中,为本示例创建输入 (FFInput) 和输出 (FFOutput) 文件夹:

      <示例路径>\Pipelines\AssemblerDisassembler\FlatFileReceive

    • 为本示例编译并部署 Visual Studio 项目。

    • 创建并绑定 BizTalk Server 接收位置、发送和接收端口。

      注意

      此示例在创建和绑定端口时显示以下警告: Warning: Receive handler not specified for receive location "FlatFileReceive_RL"; updating with first receive handler with matching transport type. 可以安全地忽略这些警告。 (为了适应用户安装中可能存在的命名差异,绑定文件中省略了主机名和接收处理程序。)

    • 启用接收位置并启动发送端口。

注意

在尝试运行本示例前,您应确认在生成和初始化过程中 BizTalk Server 未报告任何错误。

注意

如果选择在此示例中打开并生成项目而不运行 Setup.bat,则必须首先使用.NET Framework强名称实用工具 (sn.exe) 创建强名称密钥对。 使用此密钥对对对生成的程序集进行签名。

注意

若要撤销 Setup.bat 所做的更改,请运行 Cleanup.bat。 必须在第二次运行 Setup.bat 之前运行 Cleanup.bat。

运行本示例

  1. 将 FlatFileReceive_in.txt 文件的副本放到 FFInput 文件夹下。

  2. 查看在 FFOutput 文件夹中创建的 .xml 文件。 此输出文件是根据消息 ID GUID 命名的。 此文件包含与接收文件夹中放置的平面文件等效的 XML 文件。

本示例中使用的类或方法

配置脚本 Setup.bat 和 Cleanup.bat 依赖于以下 Windows 管理规范 (WMI) 管理脚本:

  • 启动发送端口\StartSendPort.vbs

  • 启用接收位置\EnableRecLoc

  • 删除发送端口\RemoveSendPort

    安装和清除批处理文件使用以下 BTSTask:

  • BTSTask ImportBindings ,用于应用绑定文件并创建应用程序、端口和绑定

  • BTSTask RemoveApp 以删除 FlatFileReceiveApplication

另请参阅