使用 BizTalk Server 在 SQL Server 中使用单个 XML 参数执行存储过程

执行采用单个参数的存储过程类似于执行任何其他存储过程,如使用 BizTalk Server 在 SQL Server 中执行存储过程中所述。 但是,对于上述链接中所述的方法,需要在设计时为存储过程生成元数据,并创建业务流程以在运行时调用该过程。

假设你只想将一个值传递给存储过程,而不对该值进行任何处理。 在这种情况下,你不希望产生生成元数据、创建业务流程、部署业务流程和执行操作的开销。 相反,你可以配置 WCF-Custom 或 WCF-SQL 发送端口来直接调用存储过程。 本主题演示如何使用 BizTalk Server 管理控制台执行这些任务。

注意

本主题说明如何配置 WCF-Custom 发送端口以执行采用单个参数的存储过程。 可以通过配置 WCF-SQL 端口来执行相同的步骤。 有关配置 WCF-SQL 端口的说明,请参阅 使用 WCF-SQL 适配器配置端口

在没有业务流程的情况下调用存储过程

为了演示如何在没有业务流程的情况下使用单个参数执行存储过程,本主题使用ADD_LAST_EMP_XML_INFO存储过程。 此过程采用 XML 值作为参数,并将其插入 Employee 表的“地址”列。 必须具有将传递给存储过程的 XML 值。 但是,若要使用适配器执行存储过程,必须向SQL Server发送符合过程架构并包含“地址”字段的 XML 值的请求消息。 因此,必须通过以下方式创建该请求消息:

  • 在发送端口配置中使用 模板 选项,可以使用该选项使用消息模板创建请求消息。

  • “地址” 字段的 XML 值放入消息中。

    本主题中详细介绍了所有这些步骤。 必须执行以下任务集:

  1. 创建 FILE 接收端口,在该端口中将插入到 Employee 表的“地址 XML”字段中的 XML 文件。 假设此端口称为 MessageIn 端口。

  2. 创建 WCF-Custom 单向发送端口,从 FILE 接收端口选取 XML 文件,使用消息模板构造消息,并将其发送到 SQL Server 以执行存储过程。

    本主题的这一部分提供有关使用消息模板配置 WCF-Custom 发送端口的说明。

注意

尽管本主题中的信息演示了如何使用单个 XML 参数执行存储过程,但你可以执行任务以执行采用任何数据类型的单个参数的任何操作。 唯一的区别在于为特定操作创建消息模板的方式。 可以通过使用业务流程获取用于执行操作的请求消息,并将 参数的值替换为 BizTalk 消息正文来创建消息模板。

配置 WCF-Custom 发送端口

在创建 WCF-Custom 发送端口之前,请确保已创建 FILE 接收端口 MessageIn

  1. 启动BizTalk Server管理控制台。

  2. 在控制台树中,展开 BizTalk 组,然后展开 应用程序

  3. 展开要在其中部署 SQL 适配器的应用程序。

  4. 右键单击“ 发送端口”,指向“ 新建”,然后指向“ 静态单向发送端口”。

  5. 在“ 发送端口属性 ”对话框中的“ 常规 ”选项卡上,键入发送端口的名称。

  6. 将端口配置为接收在 FILE 接收端口 MessageIn 上丢弃的所有消息。

    1. 在“ 发送端口属性 ”对话框的左窗格中,单击“ 筛选器”。

    2. 在右窗格中的 “属性” 列下,单击网格,然后选择“ BTS”。ReceivePortName 属性。

    3. 对于“ 运算符 ”列,选择“==”。

    4. 对于“ ”列,指定 FILE 接收端口 MessageIn的名称 。

  7. 在“ 发送端口属性 ”对话框中的“ 常规 ”选项卡上,从“ 类型 ”下拉列表中选择“ WCF-Custom”,然后单击“ 配置”。

  8. “WCF 自定义传输属性 ”对话框中,执行以下操作:

    1. 单击“常规”选项卡,然后在“地址 (URI) ”字段中,指定SQL Server的连接 URI。 有关连接 URI 的详细信息,请参阅创建SQL Server连接 URI

    2. 在“ 常规 ”选项卡上的“ 操作 ”文本框中,键入操作的操作。 有关每个操作的操作列表,请参阅 消息和消息架构 。 例如,调用ADD_LAST_EMP_XML_INFO的操作为:

      Procedure/dbo/ADD_LAST_EMP_XML_INFO  
      
    3. 单击“ 绑定 ”选项卡,然后从“ 绑定类型 ”列表中选择“ sqlBinding”。 可以指定 SQL 适配器公开的不同绑定属性。 有关绑定属性的详细信息,请参阅阅读有关 BizTalk 适配器的 SQL Server 适配器绑定属性

    4. 单击“凭据”选项卡,然后执行以下操作之一:

      • 选择“不使用单一登录”选项,然后指定用于连接到SQL Server的用户名和密码。 请注意,用户名和密码区分大小写。

        注意

        如果要使用 Windows 身份验证 连接到SQL Server,请指定空白用户名和密码。

      • 选择“ 使用单一登录 ”选项,然后指定关联企业单一登录 (SSO) 应用程序。

        有关BizTalk Server安全性的详细信息,请参阅 SQL 适配器的安全性和BizTalk Server

    5. 单击“ 消息 ”选项卡,然后在“ 出站 WCF 消息正文 ”部分中,选择 “模板” 选项。

    6. XML 文本框中,指定将用于构造 WCF 消息的模板。 通过执行此操作,可以创建一个符合基于 WCF 的 SQL 适配器ADD_LAST_EMP_XML_INFO操作的消息。

      指定出站 WCF 消息模板

      对于ADD_LAST_EMP_XML_INFO存储过程,必须指定以下模板:

      <ADD_LAST_EMP_XML_INFO xmlns="http://schemas.microsoft.com/Sql/2008/05/Procedures/dbo">  
      <xml_info>  
      <bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="string"/>  
      </xml_info>  
      </ADD_LAST_EMP_XML_INFO>  
      

      重要

      消息模板中的编码必须始终为“字符串”,而不考虑将使用发送端口调用的操作的参数类型。 例如,ADD_LAST_EMP_XML_INFO采用 XML 类型的参数,但消息模板中的编码为字符串。

      注意

      可以通过复制存储过程的请求消息并将 xml_info> 标记中的<值替换为 BizTalk 消息正文来创建此消息模板。 可以通过使用“使用适配器服务加载项”生成过程的架构,然后生成架构的实例来获取请求 XML,从而获取存储过程的请求消息。

    7. 若要返回到“ 发送端口属性 ”对话框,请单击“ 确定”。

  9. “发送处理程序 ”列表中,选择“ BizTalkServerApplication”。

  10. “发送管道 ”列表中,选择与 PassThruTransmit 对应的管道。

  11. 单击 “确定”

启动应用程序

若要启动 BizTalk 应用程序,可以分别启动 FILE 接收位置和 WCF-Custom 发送端口。 现在必须将 XML 文件复制到映射到 FILE 接收位置的文件夹。 BizTalk 应用程序使用 文件,并且 XML 值插入到 Employee 表的“地址”列中。 可以通过使用 SQL Server 客户端并从 Employee 表中选择记录来验证这一点。

使用双向 WCF-Custom 发送端口

本主题中的说明在 如何配置 WCF-Custom 发送端口部分下,演示如何配置单向 WCF-Custom 发送端口以使用单个参数执行存储过程,而无需使用 BizTalk 业务流程。 但是,在这种情况下,若要验证存储过程是否成功执行,必须在 SQL Server 数据库中验证 Employee 表中的“地址”列是否已更新。

相反,可以创建一个双向 WCF-Custom 发送端口,如果存储过程成功执行,该端口也从SQL Server获取响应。 如果创建双向 WCF-Custom 端口,则必须执行几个附加步骤。 请注意,仍需要文件接收位置,如前面的说明中所述。

  1. 创建双向 WCF-Custom 发送端口,例如 ExecProcedure。 配置发送端口的步骤类似于单向发送端口的步骤。 唯一的区别是,对于双向端口,还必须指定接收管道。 请确保为接收管道选择 “PassThruReceive ”。

  2. 创建文件发送端口。 此端口会将响应消息从 SQL Server 数据库删除到文件夹。 使用“端口属性”对话框的“ 筛选器 ”选项卡,将“文件”发送端口配置为从 WCF-Custom 发送端口接收所有响应消息。

    1. 在“ 发送端口属性 ”对话框的左窗格中,单击“ 筛选器”。

    2. 在右窗格中的 “属性” 列下,单击网格,然后选择“ BTS”。SPName 属性。

    3. 对于“ 运算符 ”列,选择“==”。

    4. 对于“ ”列,指定 WCF-Custom 发送端口 ExecProcedure的名称。

    启动所有三个端口。 将 XML 文件复制到映射到 FILE 接收位置的文件夹。 在映射到 FILE 发送端口的文件夹中查找响应。

另请参阅

使用 SQL 适配器开发 BizTalk 应用程序