扩展映射器示例演示如何使用和扩展 BizTalk 映射器。 此示例包含多个 BizTalk Server 映射文件(.btm),其中每个文件都说明了 BizTalk Mapper 的不同功能。
此示例的作用
扩展映射器示例使用基于内容的路由(CBR),并且不使用编排。 通过在示例发送端口上指定筛选器,它直接连接到示例接收端口。 在发送端口上指定了一个映射,以应用于已处理的文档。
在何处查找此示例
<示例路径>\XmlTools\ExtendingMapper
下表显示了此示例中的文件,并描述了它们的用途。
文件 | DESCRIPTION |
---|---|
MapperClassLibrary\AssemblyInfo.cs、MapperClassLibrary\MapperClassLibrary.csproj、MapperClassLibrary\MapperHelper.cs、MapperClassLibrary\MapperClassLibrary.sln | ® Microsoft Visual Studio® 项目文件和 Visual C# ® 源文件。 |
Cleanup.bat | 用于取消部署程序集并将其从全局程序集缓存 (GAC) 中删除。 |
Destination.xsd | 模式文件。 |
ExtendingMapper.btproj,ExtendingMapper.sln | 此示例的 BizTalk 项目和解决方案文件。 |
ExtendingMapper.xml | 源 XML。 |
ExtendingMapperBinding.xml | 绑定 XML。 |
ExternalAssembly.xml | 外部程序集 XML。 |
OverridingMapXslt.btm | 映射文件。 |
OverridingMapXslt.xml | 重写映射 XML。 |
OverridingMapXslt.xslt | 重写地图样式表。 |
Scriptor_CallExternalAssembly.btm | 示例映射文件。 |
Scriptor_GlobalVariableInInlineScript.btm | 示例映射文件。 |
Scriptor_InlineScripts.btm | 示例映射文件。 |
Scriptor_InlineXslt.btm | 示例映射文件。 |
Scriptor_InlineXsltCallingExternalAssembly.btm | 示例映射文件。 |
Scriptor_XsltCalltemplate.btm | 示例映射文件。 |
Setup.bat | 用于生成和初始化示例。 |
Source.xsd | 模式文件。 |
生成和初始化此示例
使用以下过程生成和初始化扩展映射器示例。
生成和初始化此示例
在命令窗口中,将目录(cd)更改为以下文件夹:
<样本路径>\XmlTools\ExtendingMapper
运行文件 Setup.bat,执行以下作:
为此示例创建输入 (\In) 和输出 (\Out) 文件夹。
编译并部署此示例的 Visual Studio 项目。
创建并绑定 BizTalk Server 接收位置以及发送和接收端口。
如果要使用 Scriptor_CallExternalAssembly.btm 或 Scriptor_InlineXsltCallingExternalAssembly.btm 地图,请在 Visual Studio 中打开ExtendingMapper.sln并进行以下修改(否则请转到步骤 3):
在解决方案资源管理器中,打开 Scriptor_CallExternalAssembly.btm。
在映射器网格中,选择“脚本”功能节点。
在属性网格中,选择 “脚本 ”属性,然后单击省略号 (...) 按钮以配置 functoid 脚本。
在 “配置脚本”Functoid 对话框中,选择 “脚本 Functoid 配置”,并指定以下内容:
设置此项 对此 脚本类型 外部程序集 脚本汇编 Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary 脚本类 Microsoft.Samples.BizTalk.ExtendingMapper.MapperHelper 脚本方法 MyConcat 在 Visual Studio文件 菜单中,选择“ 保存” 以保存对映射文件的更改,然后关闭解决方案。
按任意键继续(Setup.bat)。
重要
如果要使用 Scriptor_InlineXsltCallingExternalAssembly.btm,则必须编辑 ExternalAssembly.xml 文件。 BizTalk 使用 ExternalAssembly.xml 将映射器扩展对象注册的命名空间映射到 .NET 程序集。 由于依赖程序集由其完全限定的名称(包括自动生成的公钥令牌)引用,因此必须更新此值。 如果不想使用 Scriptor_InlineXsltCallingExternalAssembly.btm,则无需完成步骤 a 到 e。
在 Windows 资源管理器中,导航到 <Windows 文件夹>\assembly\。
右键单击 Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary 并选择 “属性”。
复制公钥令牌值。
在文本编辑器中,打开 <示例路径>\XML Tools\ExtendingMapper\ExternalAssembly.xml。
选择 AssemblyName=“Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary,Version=1.0.0.0,Culture=neutral,PublicKeyToken=68496d20c737d84b”属性,并将 PublicKeyToken 值替换为在步骤 c 中复制的公钥令牌值。
保存并关闭 ExternalAssembly.xml。
注释
在尝试运行此示例之前,应确认在生成和初始化过程中未报告任何错误。
配置、登记和启动发送端口
依次单击“ 开始”、“ 所有程序”、“ Microsoft BizTalk Server”,然后选择 “BizTalk Server 管理”。
在 BizTalk Server 管理控制台中,单击以展开 BizTalk Server 管理,单击以展开 BizTalk 组 [<servername>:<management database>],然后单击以展开 应用程序。
单击以展开 ExtendingMapperApplication,然后单击发送端口。
在右窗格中,右键单击“ 发送端口”,然后单击“ 属性”。
在 “ExtendingMapperSP – 发送端口属性 ”对话框中,单击“ 出站映射 ”页。
在 “映射 ”列中,从下拉列表中选择所需的地图,然后单击“ 确定”。 下表描述了这些地图。
映射以应用属性 DESCRIPTION Microsoft.Samples.BizTalk.ExtendingMapper。 Scriptor_CallExternalAssembly 演示如何根据此 functoid 的输入参数从映射中的 Scripting functoid 调用外部 .NET 程序集中的函数。 这有助于将处理逻辑与映射文件清晰地分开。 此映射文件使用此示例随附的程序集 MapperClassLibrary.dll。 Microsoft.Samples.BizTalk.ExtendingMapper。 Scriptor_InlineScripts 演示如何使用 .NET 语言(如 C#、Visual Basic.NET 和 JScript.NET)在映射文件中编写 脚本功能块的简单内联脚本。 Microsoft.Samples.BizTalk.ExtendingMapper。 Scriptor_GlobalVariableInInlineScript (全局变量在内联脚本中) 演示如何在 脚本构件的内联脚本中使用全局变量。 全局变量通常用于在不同的脚本功能块中维持映射文件的状态信息。 Microsoft.Samples.BizTalk.ExtendingMapper。 Scriptor_InlineXslt 演示如何在地图中的 脚本 functoid 中使用原始内联 XSLT 在目标文档中构造结构。 您可以在无法使用其他 functoid 在 BizTalk Mapper 中构建某些部分时,使用内联 XSLT 的脚本 functoid 来构造目标文档的一些部分。 Microsoft.Samples.BizTalk.ExtendingMapper。 Scriptor_XsltCalltemplate 演示如何在地图的 脚本 functoid 中使用 XSLT 调用模板在目标文档中创建结构。 XSLT 调用模板相对于内联 XSLT 的优点是调用模板可以接受参数,因此可以根据输入到 脚本 functoid 的参数创建结构。 如果在 BizTalk 映射器中无法使用其它 functoid,则可以使用带有内联 XSLT 的 脚本 functoid 来构造目标文档的某些部分。 Microsoft.Samples.BizTalk.ExtendingMapper。 Scriptor_InlineXslt调用外部程序集 演示如何从映射中 脚本 functoid 的内联 XSLT 内部调用外部 .NET 程序集。 介绍如何使用包含要调用的外部 .NET 程序集的详细信息的自定义扩展文件 ExternalAssembly_extxml.xml 重写 BizTalk 映射器网格的 自定义扩展 XML 属性。 当无法在 Mapper UI 中使用其他 functoid 时,可以使用带内联 XSLT 的 脚本 functoid 来构造目标文档的某些部分。 Microsoft.Samples.BizTalk.ExtendingMapper。 OverridingMapXslt 演示如何使用自定义 XSLT 文件完全替代 BizTalk 映射器文件的已编译 XSLT。 可以通过重写 自定义 XSL Path属性和 BizTalk 映射器网格的 自定义扩展 XML 属性来执行此作。 在运行时,您提供的自定义 XSLT 文件被包含在要使用的项目的已编译 BizTalk Server 程序集中。 在这种情况下,将忽略映射文件 (.btm) 的内容。 此映射文件对 自定义 XSL 路径 和 自定义扩展 XML 属性均使用 OverridingMapXslt.xslt 和 OverridingMapXslt.xml。
可以在解决方案资源管理器中验证映射文件。 然后,可以将它用作模板文件,可以编辑并用于 BizTalk 映射器网格的 自定义 XSL Path 属性。 如果无法使用 BizTalk 映射器生成此 XSLT,则可以使用此选项。
运行此示例
要运行扩展映射器示例,请按照以下步骤操作。
运行此示例
将输入文件 ExtendingMapper.xml 复制到 Samples Path>\XmlTools\ExtendingMapper\In 的<输入文件夹中。
请注意如何转换文件并将其路由到 <Samples Path>\XmlTools\ExtendingMapper\Out 文件夹。 转换是基于你使用的映射而发生的。