ValidationAdapter

该 ValidationAdapter 示例演示了如何对响应方公用流程中的消息运行特殊验证规则。 Microsoft® BizTalk Accelerator for RosettaNet (BTARN) 在发送或接收管道以及业务流程中本机执行验证。 如果要执行其他验证,可以创建验证适配器。 其他验证可以包括无法使用 XSD 实现的跨字段验证规则或业务特定的验证规则。

可以通过将 C# 代码添加到 ValidationAdapter 示例、发布接口并将适配器输入协议属性来创建验证适配器。 然后,BTARN 将在消息处理期间调用验证适配器。

由于 ValidationAdapter 由公用业务流程使用,因此,ValidationAdapter 运行时使用的凭据与该业务流程的宿主 BizTalk 主机服务的凭据相同。

ValidationAdapter 示例位于 <drive>:\Program Files\Microsoft BizTalk <version> Accelerator for RosettaNet\SDK\ValidationAdapter 中。

演示

ValidationAdapter 示例演示如何验证服务内容中的电子邮件地址。 该示例实现 IValidateRNIFMessageParts 接口。 如果电子邮件地址的格式不正确,则返回 RNIFException 。 XML 文档 preambleToValidateserviceHeaderToValidatedeliveryHeaderToValidateserviceContentToValidate 定义验证。

ValidationAdapter 使用 RNIFerror.IsOkToSendException 属性来确定在发生错误时要发送的消息种类。 如果验证不成功,则 ValidationAdapter 将 RNIFerror.ErrorCode 设置为一个非零值。 如果 RNIFerror.IsOkToSendException 属性为 true,则流程将发送一个负的确认值。 对于 RNIF 2.0,它是异常消息。 对于 RNIF 1.1,它是确认回执异常消息。 如果 RNIFerror.IsOkToSendException 属性为 false 并且配置了 0A1,则流程将发送 0A1 消息。 流程发送异常消息、确认回执异常消息或 0A1 消息后,它将终止运行。

如果 RNIFerror.IsOkToSendException 属性为 false 但未配置 0A1,则流程将不发送异常消息,也不发送 0A1。 它将记录错误然后终止运行。

如果验证成功,则 ValidationAdapter 将 RNIFerror.ErrorCode 设置为 0,BTARN 将消息路由至专用流程。 只有验证成功后,BTARN 才将消息路由到专用流程。

实现此示例

若要实现该 ValidationAdapter 示例,必须向协议中添加验证适配器。

向协议中添加验证适配器

  1. 单击“开始”,依次指向“所有程序”、“Microsoft BizTalk Accelerator for RosettaNet”,然后单击“BizTalk Accelerator for RosettaNet管理控制台”。

  2. 在BizTalk Accelerator for RosettaNet管理控制台中,展开“BizTalk Accelerator for RosettaNet”,然后单击“协议”。

  3. 双击要添加验证适配器的协议。

  4. 在“验证适配器”对话框中,单击“程序集名称”右侧的省略号按钮 (...) 按钮,移动到包含验证适配器程序集的位置,选择相应的 .dll 文件,然后单击“打开”。

  5. 单击“ 类名称”的向下箭头,选择验证适配器类,然后单击“ 确定”。

另请参阅

适配器示例