执行采用单个参数的存储过程类似于执行任何其他存储过程,如 使用 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 值。 但是,若要使用适配器执行存储过程,必须将符合过程架构的请求消息以及包含 Address 字段的 XML 值发送到 SQL Server。 因此,必须通过以下方式创建请求消息:
使用发送端口配置中的 “模板 ”选项,可以使用该选项通过消息模板创建请求消息。
将 “地址” 字段的 XML 值放入消息中。
本主题详细介绍了所有这些步骤。 必须执行以下一组任务:
创建一个 FILE 接收端口,用于放置要插入到 Employee 表的 地址 XML 字段中的 XML 文件。 假设此端口称为 MessageIn 端口。
创建一个 WCF-Custom 单向发送端口,从 FILE 接收端口选取 XML 文件,使用消息模板构造消息,并将其发送到 SQL Server 以执行存储过程。
本主题的此部分提供有关使用消息模板配置 WCF-Custom 发送端口的说明。
注释
尽管本主题中的信息演示了如何使用单个 XML 参数执行存储过程,但您可以执行任何只需单个参数(任何数据类型)的操作。 唯一的区别在于为特定作创建消息模板的方式。 您可以通过使用业务流程中的请求消息来创建消息模板,并将参数的值替换为 BizTalk 消息体。
配置 WCF-Custom 发送端口
在创建 WCF-Custom 发送端口之前,请确保已创建 FILE 接收端口 MessageIn。
启动 BizTalk Server 管理控制台。
在控制台树中,展开 BizTalk 组,然后展开 应用程序。
展开要在其中部署 SQL 适配器的应用程序。
右键单击 “发送端口”,指向“ 新建”,然后指向 “静态单向发送端口”。
在“ 发送端口属性 ”对话框中的“ 常规 ”选项卡上,键入发送端口的名称。
配置端口以接收在 FILE 接收端口 MessageIn 上丢弃的所有消息。
在“ 发送端口属性 ”对话框中的左窗格中,单击“ 筛选器”。
在右窗格中的“ 属性 ”列下,单击网格,然后选择 BTS。ReceivePortName 属性。
对于运算符 列,请选择“==”。
对于 “值 ”列,请指定 FILE 接收端口
MessageIn
的名称。
在“ 发送端口属性 ”对话框中的“ 常规 ”选项卡上,从 “类型 ”下拉列表中选择 WCF-Custom,然后单击“ 配置”。
在 “WCF-Custom 传输属性 ”对话框中,执行以下作:
单击“ 常规 ”选项卡,然后在 “地址”(URI) 字段中指定 SQL Server 的连接 URI。 有关连接 URI 的详细信息,请参阅 “创建 SQL Server 连接 URI”。
在 常规 选项卡的 动作 文本框中,键入操作的动作。 请参阅消息和消息架构,以获取每个操作的操作列表。 例如,调用操作ADD_LAST_EMP_XML_INFO的步骤是:
Procedure/dbo/ADD_LAST_EMP_XML_INFO
单击“ 绑定 ”选项卡,然后从 “绑定类型 ”列表中选择 sqlBinding。 可以指定 SQL 适配器公开的不同绑定属性。 有关绑定属性的详细信息,请参阅 阅读关于 BizTalk SQL Server 适配器绑定属性的信息。
单击“ 凭据 ”选项卡,然后执行下列作之一:
选择“ 不使用单一登录 ”选项,并指定用于连接到 SQL Server 的用户名和密码。 请注意,用户名和密码区分大小写。
注释
如果要使用 Windows 身份验证连接到 SQL Server,请指定空白用户名和密码。
选择 “使用单一登录 ”选项,然后指定关联企业单一登录(SSO)应用程序。
有关 BizTalk Server 安全性的详细信息,请参阅 SQL 适配器和 BizTalk Server 的安全性。
单击“ 消息 ”选项卡,然后在 “出站 WCF 消息正文 ”部分中,选择 “模板 ”选项。
在 XML 文本框中,指定将用于构造 WCF 消息的模板。 通过这样做,您可以创建一条符合基于 WCF 的 SQL 适配器的 ADD_LAST_EMP_XML_INFO 操作的消息。
对于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>
重要
消息模板中的编码必须始终为“string”,无论使用发送端口的操作参数的类型如何。 例如,ADD_LAST_EMP_XML_INFO采用 XML 类型的参数,但消息模板中的编码为字符串。
注释
可以通过复制存储过程的请求消息并将xml_info>标记中的<值替换为 BizTalk 消息正文来创建此消息模板。 可以通过使用“消耗适配器服务”加载项为存储过程生成架构,再生成该架构的实例来获取请求 XML,从而获得存储过程的请求消息。
若要返回到 “发送端口属性 ”对话框,请单击“ 确定”。
从 “发送处理程序 ”列表中选择 BizTalkServerApplication。
从 “发送管道 ”列表中选择对应于 PassThruTransmit 的管道。
单击 “确定” 。
启动应用程序
若要启动 BizTalk 应用程序,可以同时启动 FILE 接收位置和 WCF-Custom 单独发送端口。 现在,您必须将 XML 文件复制到映射为 FILE 接收位置的文件夹中。 BizTalk 应用程序使用该文件,XML 值将插入 Employee 表的“地址”列中。 可以使用 SQL Server 客户端并从 Employee 表中选择记录来验证这一点。
使用双向 WCF-Custom 发送端口
本主题中的说明,在“如何 配置 WCF-Custom 发送端口”部分下,演示如何配置单向 WCF-Custom 发送端口以使用单个参数执行存储过程而不使用 BizTalk 业务流程。 但是,在这种情况下,若要验证存储过程是否成功执行,必须在 SQL Server 数据库中验证员工表中的“地址”列是否已更新。
相反,可以创建双向 WCF-Custom 发送端口,如果存储过程成功执行,也可以从 SQL Server 获取响应。 如果创建双向 WCF-Custom 端口,则必须执行其他几个步骤。 请注意,仍需要文件接收位置,如前面的说明中所述。
创建双向 WCF-Custom 发送端口,例如 ExecProcedure。 配置发送端口的步骤类似于单向发送端口的步骤。 唯一的区别在于,对于双向端口,还必须指定接收管道。 请确保为接收管道选择 PassThruReceive 。
创建 FILE 发送端口。 此端口会将响应消息从 SQL Server 数据库删除到文件夹。 使用端口属性对话框的“ 筛选器 ”选项卡,将 FILE 发送端口配置为从 WCF-Custom 发送端口接收所有响应消息。
在“ 发送端口属性 ”对话框中的左窗格中,单击“ 筛选器”。
在右窗格中的“ 属性 ”列下,单击网格,然后选择 BTS。SPName 属性。
对于运算符 列,请选择“==”。
对于 “值 ”列,请指定 WCF-Custom 发送端口
ExecProcedure
的名称。
启动所有三个端口。 将 XML 文件复制到映射到 FILE 接收位置的文件夹。 在映射到 FILE 发送端口的文件夹中查找响应。