在根据消息内容进行路由的时候经常使用的是可分辨字段和属性字段。属性字段可以在各个 BizTalk Server 组件(包括管道和业务流程)中进行访问。属性字段还可用于消息路由。如果需要在上下文(而不是在业务流程)中访问升级的消息数据,必须创建一个或多个属性 架构来描述要升级的数据。

消息上下文中的每个属性均由以下三个部分构成:名称、命名空间和值。例如:

<Property Name="InterchangeID" Namespace=http://schemas.microsoft.com/BizTalk/2003/system-properties Value="{AC07BF30-2F1A-42B0-8390-191EF38BA839}"/>

现在我们来谈一下属性字段的使用,“属性字段”的方法升级属性需要创建属性架构。所有属性升级作都是通过“升级属性”对话框来完成。您可以通过使用消息架构中 Schema 节点的“升级属性”来访问该对话框。

1.创建属性架构

属性架构是一种与消息架构相关联的特殊架构。它用于将实例消息中的特定值升级到消息上下文中。属性升级提供了一种集中机制,通过该机制,您可以从实例消息 中请求所定义的关键信息,并使其可更方便地被负责对通过 BizTalk Server 的消息进行处理的 BizTalk Server 组件访问。

2.升级属性字段

在“升级属性”对话框中,确保已选中对话框右侧的“属性字段”选项卡。然后,确保相应的属性架构已包含在“属性字段”选项卡顶部的“属性架构列表”中。如果需要,请使用文件夹按钮通过“BizTalk 类型选取器”对话框来选择相应的属性架构。

接下来,展开对话框左侧的架构树中的节点选择您要升级为属性字段的“字段元素”节点或“字段属性”节点,然后单击“添加”。最后,使用“属性-字段字典”表的“属性”列中的下拉列表选择属性架构中与升级属性关联的“字段元素”节点。

3.属性字段的使用

设置完属性字段与架构元素或属性之间的关联之后,即可在通过访问消息的上下文属性访问或设置该属性的值。注意消息的架构与升级为属性字段的架构一致。

可以将属性架构中的“记录”节点升级为“字段元素”节点,但只有在“记录”节点的“内容类型”属性设置为 SimpleContent 的情况下才可进行此操作。

在一个架构中,可以对同一属性升级多次,只要所有这些升级都是在不同的根节点下进行即可。这是因为消息是根据单个根节点进行验证的,只有在该根节点下升级的属性才会在运行时进行评估。

升级为属性之后会添加两部分

4.测试属性字段及其在路由中的应用

     输入的XML消息

      <ns0:Root xmlns:ns0="http://MultiPartMsgTest.Sch_One2">
         <Field1>Field1_0</Field1>
         <Field2>Field2_0</Field2>
      </ns0:Root>

在发送端口的筛选器中使用升级属性,用于路由消息。

在发送商口设定不同的输出文件名

验证消息处理

5.可分辨字段与属性字段的区别

下表概括出了属性字段与可分辨字段之间的区别,可如果需要更灵活的基于内容的路由可以采用属性字段,如果只是关键节点值的读取与赋值的话则可分辨字段比较合适。

属性

属性字段

可分辨字段

IsPromoted属性

True

False

大小限制

255 个字符

无限制

用于路由

用于跟踪

在业务流程中使用

需要属性架构

可通过管道和端口进行访问

参考资料《BizTalk Server 2006 Documentation》

BizTalk开发系列(五) 属性字段的更多相关文章

  1. BizTalk 开发系列(四十一) BizTalk 2010 BAM 安装手记

    使用64位系统可以支持更大的内存,现在服务器基本上都使用64位系统.微软从Windows Server 2008 R2开始服务器版的操作系统也只支持64位了,不过对于像BizTalk这种“繁杂的东西” ...

  2. BizTalk开发系列(二十八) MSMQ 适配器

    MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间 中的任一 ...

  3. BizTalk开发系列(二十二) 开发自定义Map Functoid

    尽管 BizTalk Server 提供许多Functoid以支持一系列不同的操作,但仍可能会遇到需要其他方法的情况.<BizTalk开发系列 Map扩展开发>介绍了通过使用自定义 XSL ...

  4. BizTalk开发系列(十八) 使用信封拆分数据库消息

    之前写了一篇的<BizTalk开发系列(十七) 信封架构(Envelop)> 是关于信封架构及其拆装原理的,都是理论性的内容.信封在BizTalk开发过程中最常用的应该是在读取SQL Se ...

  5. BizTalk开发系列(三十三)BizTalk之Excel终极解决方案

    Excel作为优秀的客户端数据处理程序得到了广泛的应用. 由于其简单又强大的功能在很多公司或个人的数据处理中占用非常重要的位置. 而BizTalk作为微软的SOA主打产品虽然免费提供了很多Adapte ...

  6. BizTalk开发系列(二十五) SQL Adapter

    SQL Server 是.NET开发的首选数据库.当然开发BizTalk应用程序很多也离不了SQL Server.针对SQL Server的数据操作BizTalk 提供了SQL Adapter作为与数 ...

  7. BizTalk开发系列(十三) Schema设计之值约束

    XML Schema 的作用是定义 XML 文档的合法构建模块.在开发过程中有时需要对XML文档做精确的约束.以保证XMl数据的准确性. 今天我们以一个班级Sample来讲探讨一下如何在开发BizTa ...

  8. BizTalk开发系列(十一) 在Orchestration中执行Pipeline

    由于开发需要有时要在流程中执行Pipeline.比如从DB的某个字段中取消息的字符串并在流程中构造消息.该需要通过pipeline进行升级 属性字段,验证消息等处理.BizTalk架构已经开放了此接口 ...

  9. BizTalk开发系列(七) Hello World2

    之前根据BizTalk的订阅原理,使用BizTalk管理控制台创建了第一个应用程序 Hello World.但是由于控制台的开发功能有限,绝大多数的BizTalk程序都是在集成开发环境Visual S ...

随机推荐

  1. js 事件监听

    addEventListener() 方法 element.addEventListener(event, function, useCapture); 第一个参数是事件的类型 (如 "cl ...

  2. JavaScript 笔记 ( Prototype )

    这阵子实在好忙 ( 这样说好像也不是一两个月了... ),然后因为工作伙伴都是 JavaScript 神之等级的工程师,从中也学到不少知识,毕竟就是要和强者工作才会成长呀!为了想好好瞭解他们写的程式码 ...

  3. 学习angularjs时遇到 XX is not a function

        第一次练习就直接没效果:   "后不能直接以 function XXXcontroller (){ code......}这样的方式直接注册监听器了. 以后必须angular.mod ...

  4. java基础-基本数据类型

    浏览以下内容前,请点击并阅读 声明 java有八种基本数据类型,其中包括: byte,字节型,是8位带符号的整数,即其范围在-128和127之间(包括) short,短整型,是16位带符号的整数,范围 ...

  5. 编程思想┊从实例谈面向对象编程(OOP)、工厂模式和重构

    有了翅膀才能飞,欠缺灵活的代码就象冻坏了翅膀的鸟儿.不能飞翔,就少了几许灵动的气韵.我们需要给代码带去温暖的阳光,让僵冷的翅膀重新飞起来.结合实例,通过应用OOP.设计模式和重构,你会看到代码是怎样一 ...

  6. JavaScript 开发者经常忽略或误用的七个基础知识点

    JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...

  7. 关于scrollbar-face-color只支持ie的解决办法!

    关于scrollbar-face-color只支持ie的解决方法!!今天突然有人问我滚动条css自定义的方法,我发现用scrollbar-base-color这种方法只有ie支持,查了半天资料总结如下 ...

  8. 3分钟4个步骤超级简单入门配置lamp

    按照我下面的推荐博客进行3步安装,最后进行一步测试就完成了.环境:我的环境是在windows10中安装的VMware中安装的Ubuntu虚拟机,Windows8,7应该是一样的测试:分别用localh ...

  9. Codeforces #Round 376 部分题解

    A: 题目传送门:http://codeforces.com/problemset/problem/731/A 直接根据题意模拟即可 #include "bits/stdc++.h" ...

  10. 【ZOJ】3329 One Person Game

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3754 题意:有三个色子,分别有k1.k2.k3个面,权值分别是1-k1, 1~ ...