步骤 1:使用 SQL 适配器修改 vPrev BizTalk 项目

第 1 步(共 3

完成时间: 10 分钟

目的: 在此步骤中,对现有 vPrev BizTalk 项目进行以下更改:

  • 使用基于 WCF 的 SQL 适配器为 Customer 表上的 Insert 操作生成元数据。

  • 将用于使用 vPrev SQL 适配器执行 Insert 操作的请求消息映射到使用基于 WCF 的 SQL 适配器执行 Insert 操作的请求消息。

  • 使用基于 WCF 的 SQL 适配器收到的响应消息映射到使用 vPrev SQL 适配器收到的响应消息。

必备条件

必须具有 vPrev BizTalk 项目才能对 SQL Server 数据库中的 Customer 表执行插入操作。

修改 vPrev BizTalk 项目

  1. 使用基于 WCF 的 SQL 适配器为 Customer 表上的 Insert 操作生成元数据。 可以使用使用适配器服务 BizTalk 项目外接程序来生成元数据。

    有关如何生成元数据的说明,请参阅使用 SQL 适配器在 Visual Studio 中获取SQL Server操作的元数据。 生成架构后,会将名称类似于 TableOperation.dbo.Customer.xsd 的文件添加到 BizTalk 项目中。 此文件包含用于发送消息以使用基于 WCF 的 SQL 适配器对 SQL Server 数据库中的 Customer 表执行插入操作的架构。

  2. 生成插入操作的元数据还会创建端口绑定文件。 在下一步中,此绑定文件将用于创建 WCF-Custom 发送端口,以将消息发送到SQL Server数据库。 操作的 SOAP 操作也设置为为其生成元数据的操作。 例如,如果为 Insert 操作生成元数据,则发送端口上的 SOAP 操作中的操作名称将为“Insert”。 但是,作为业务流程的一部分创建的逻辑发送端口上的操作名称可能不同,例如“Operation_1”。 因此,使用发送端口将消息发送到 SQL Server 数据库时,会出现错误。 若要防止出现这种情况,请确保业务流程中逻辑发送端口上的操作名称与为其生成元数据的操作名称相同。

    因此,在本教程中,由于为插入操作生成元数据,因此请将逻辑发送端口操作的名称更改为“Insert”。

  3. 对于请求消息,使用 vPrev SQL 数据库适配器生成的架构映射到使用基于 WCF 的 SQL 适配器生成的架构。

    1. 将 BizTalk 映射器添加到 BizTalk 项目。 右键单击 BizTalk 项目,指向 “添加”,然后单击“ 新建项”。

      “添加新项 ”对话框中的左窗格中,选择“ 映射文件”。 在右窗格中,选择“ 映射”。 指定映射的名称,例如 RequestMap.btm。 单击“添加”。

    2. 在“源架构”窗格中,单击“ 开放源代码架构”。

    3. “BizTalk 类型选取器 ”对话框中,展开项目名称,展开 “架构”,然后选择 vPrev SQL 适配器的请求消息的架构。 对于本教程,请选择 “New_Migration.InsertCustomerService”,然后单击“ 确定”。

    4. 在“ 源架构的根节点 ”对话框中,选择“ 插入”,然后单击“ 确定”。

    5. 在“目标架构”窗格中,单击“ 打开目标架构”。

    6. “BizTalk 类型选取器 ”对话框中,展开项目名称,展开“ 架构”,然后选择基于 WCF 的 SQL 适配器的请求消息的架构。 对于本教程,请选择 “New_Migration.TableOperation.dbo.Customer”,然后单击“ 确定”。

    7. 在“ 目标架构的根节点 ”对话框中,选择“ 插入”,然后单击“ 确定”。

    8. 映射这两个架构中的相应元素,如下图所示。

      映射请求架构

    9. 保存该映射。

  4. 对于响应消息,请将使用 vPrev SQL 适配器生成的架构映射到使用基于 WCF 的 SQL 适配器生成的架构。

    1. 将 BizTalk 映射器添加到 BizTalk 项目。 右键单击 BizTalk 项目,指向 “添加”,然后单击“ 新建项”。

      “添加新项 ”对话框中的左窗格中,选择“ 映射文件”。 在右窗格中,选择“ 映射”。 指定映射的名称,例如 ResponseMap.btm,然后单击“ 添加”。

    2. 在“源架构”窗格中,单击“ 开放源代码架构”。

    3. “BizTalk 类型选取器 ”对话框中,展开项目名称,展开“ 架构”,然后选择基于 WCF 的 SQL 适配器的响应消息的架构。 对于本教程,请选择 “New_Migration.TableOperation.dbo.Customer”,然后单击“ 确定”。

    4. 在“ 源架构的根节点 ”对话框中,选择“ InsertResponse”,然后单击“ 确定”。

    5. 在“目标架构”窗格中,单击“ 打开目标架构”。

    6. “BizTalk 类型选取器 ”对话框中,展开项目名称,展开“ 架构”,然后选择 vPrev SQL 适配器响应消息的架构。 对于本教程,请选择 “New_Migration.InsertCustomerService”,然后单击“ 确定”。

    7. 在“ 目标架构的根节点 ”对话框中,选择“ InsertResponse”,然后单击“ 确定”。

    8. 你会注意到两个适配器生成的 响应架构之间存在一些差异。 这些差异可按如下所述进行解释:

      • 使用基于 WCF 的 SQL 适配器时,如果将记录插入表中,该表中包含主键 (并且也是标识字段) 则 Insert 操作的响应将返回插入行的标识字段的值。 因此,符合基于 WCF 的 SQL 适配器的响应消息的架构包含额外的 InsertResult 元素。 此元素包含一个数组,该数组又包含插入行的标识字段。

      • 使用 vPrev SQL 适配器,如果将记录插入表中,适配器仅返回空的“Success”元素作为响应消息的一部分。

        因此,架构的映射方式是,包含标识字段值的基于 WCF 的 SQL 适配器的响应作为“Success”元素的一部分“复制”,该元素是来自 vPrev SQL 适配器的响应消息的一部分。 可以使用“批量复制”functoid 将元素从一个架构复制到另一个架构。

        若要使用“批量复制”functoid,请从 “工具箱”中拖动“批量复制”functoid 并将其放在“映射器”网格上。 将源架构中的 InsertResult 元素连接到 functoid。 同样,将目标架构中的 Success 元素连接到 functoid。 下图演示了如何通过 functoid 映射这两个元素。

        映射响应架构

      注意

      有关“批量复制”functoid 的详细信息,请参阅 “批量复制”Functoid

    9. 保存该映射。

  5. 保存并生成 BizTalk 解决方案。 右键单击解决方案,然后单击“ 生成解决方案”。

  6. 部署该解决方案。 右键单击解决方案,然后单击“ 部署解决方案”。

后续步骤

创建 WCF 自定义发送端口,并将其配置为使用此步骤中创建的映射,如步骤 2:使用 SQL 适配器在 BizTalk Server 管理控制台中配置业务流程中所述。

另请参阅

教程 1:将 BizTalk 项目迁移到 SQL 适配器