FlatFileSend(BizTalk Server 示例)
FlatFileSend 示例演示如何使用 BizTalk Server 将 XML 文件处理成等效的平面文件。
本示例的用途
本示例将 FFInput 文件夹配置为接收位置。 在将文件(如示例文件 FlatFileSend_in.xml)放入此文件夹后,BizTalk Server 将按照以下步骤处理该文件内的消息:
BizTalk Server 读取接收位置文件夹 FFInput 下输入文件中的消息。
相应消息通过 XML 接收管道传递。
在 MessageBox 数据库中,消息会路由至 FILE 发送端口,该端口具有一个配置有平面文件组装器组件的发送管道。 平面文件组装器组件使用平面文件架构将 XML 消息转换为等效的平面文件表示形式。
BizTalk Server 将转换后的消息写入发送适配器文件夹 FFOutput 下的文本文件。
此示例的设计方式和原因
示例消息反映了本示例的诸多基本设计特征。 平面文件消息必须使用自定义发送管道内的平面文件组装器和平面文件架构进行组装。 下表对以上设计元素和其他设计元素进行了总结。
设计元素 | 选择的原因 |
---|---|
自定义发送管道 | - 自定义管道使用平面文件汇编程序和平面文件架构将实例消息转换为平面文件格式;平面文件汇编程序本身不是管道,在 BizTalk Server 管理控制台中配置发送管道时不能使用。 |
平面文件架构 | - 定义所有相同的记录和字段特征 (包括结构) 作为 XML 架构,并提供一种机制,用于定义将 XML 实例消息转换为平面文件消息所需的所有平面文件特征 (反之亦然) 。 |
订阅筛选器 | - 订阅筛选器通过根据属性字段捕获满足一个或多个条件的消息来执行实际路由。 |
XMLReceive | - 执行入站 XML 消息的处理。 在本示例中,用作源消息的是采购订单的 XML 表示形式。 |
通过结合这些元素,产生了一个可从接收位置接受 XML 格式的采购订单消息并将平面文件格式的采购订单写出到发送位置的解决方案。
本示例所在的位置
<示例 Path>\Pipelines\AssemblerDisassembler\FlatFileSend
下表显示了本示例中的文件及其用途说明:
文件 | 说明 |
---|---|
Cleanup.bat | 用于取消部署程序集并从全局程序集缓存中删除这些程序集。 删除发送和接收端口。 根据需要删除 Microsoft Internet 信息服务 (IIS) 虚拟目录。 |
FlatFileSend.btproj、FlatFileSend.sln | 本示例的项目文件和解决方案文件。 |
FlatFileSendBinding.xml | 用于如端口绑定之类的自动化设置。 |
FlatFileSend_in.xml | 示例输入文件。 |
PO.xsd | 出站平面文件的架构。 |
SendPipeline.btp | 带平面文件组装器组件的 BizTalk Server 发送管道文件。 |
Setup.bat | 用于生成和初始化本示例。 |
如何使用本示例
可将本示例用作您自己的平面文件处理解决方案的基础, 并可根据自己的需要扩展本示例中用到的诸多设计元素。
生成和初始化此示例
在命令窗口中,导航到下面的文件夹:
<示例 Path>\Pipelines\AssemblerDisassembler\FlatFileSend
运行 Setup.bat 文件,该文件将执行以下操作:
在下面的文件夹中,为本示例创建输入 (FFInput) 和输出 (FFOutput) 文件夹:
<示例 Path>\Pipelines\AssemblerDisassembler\FlatFileSend
为本示例编译 Visual Studio 项目。
创建并绑定 BizTalk Server 接收位置、发送和接收端口。
注意
此示例在创建和绑定端口时显示以下警告:
Warning: Receive handler not specified for receive location "FlatFileSend_RL"; updating with first receive handler with matching transport type. Warning: Host not specified for orchestration "FlatFileSend"; updating with first available host.
可以放心地忽略这些警告。 (为了适应用户安装中可能存在的命名差异,绑定文件中省略了主机名和接收处理程序。)启用接收位置并启动发送端口。
注意
在尝试运行本示例前,您应确认在生成和初始化过程中 BizTalk Server 未报告任何错误。
注意
如果选择在此示例中打开并生成项目而不运行 Setup.bat,则必须首先使用.NET Framework强名称实用工具 (sn.exe) 创建强名称密钥对。 使用此密钥对对对生成的程序集进行签名。
注意
若要撤销 Setup.bat 所做的更改,请运行 Cleanup.bat。 第二次运行 Setup.bat 之前,必须运行 Cleanup.bat。
运行本示例
将 FlatFileSend_in.xml 文件的副本放到 FFInput 文件夹下。
查看在 FFOutput 文件夹中创建的文本文件。 文本文件的名称基于消息 ID GUID。 此文件包含与 XML 输入文件 FlatFileSend_in.xml 等效的平面文件。
本示例中使用的类或方法
配置脚本 Setup.bat 和 Cleanup.bat 依赖于以下 Windows 管理规范 (WMI) 管理脚本:
启动发送端口\StartSendPort.vbs
启用接收位置\EnableRecLoc
删除发送端口\RemoveSendPort
安装和清除批处理文件使用以下 BTSTask:
BTSTask ImportBindings 应用绑定文件并创建应用程序、端口和绑定
BTSTask RemoveApp 以删除 FlatFileSendApplication