BizTalk开发系列(五) 属性字段
在根据消息内容进行路由的时候经常使用的是可分辨字段和属性字段。属性字段可以在各个 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开发系列(五) 属性字段的更多相关文章
- BizTalk 开发系列(四十一) BizTalk 2010 BAM 安装手记
使用64位系统可以支持更大的内存,现在服务器基本上都使用64位系统.微软从Windows Server 2008 R2开始服务器版的操作系统也只支持64位了,不过对于像BizTalk这种“繁杂的东西” ...
- BizTalk开发系列(二十八) MSMQ 适配器
MSMQ(MicroSoft Message Queue,微软消息队列)是在多个不同的应用之间实现相互通信的一种异步传输模式,相互通信的应用可以分布于同一台机器上,也可以分布于相连的网络空间 中的任一 ...
- BizTalk开发系列(二十二) 开发自定义Map Functoid
尽管 BizTalk Server 提供许多Functoid以支持一系列不同的操作,但仍可能会遇到需要其他方法的情况.<BizTalk开发系列 Map扩展开发>介绍了通过使用自定义 XSL ...
- BizTalk开发系列(十八) 使用信封拆分数据库消息
之前写了一篇的<BizTalk开发系列(十七) 信封架构(Envelop)> 是关于信封架构及其拆装原理的,都是理论性的内容.信封在BizTalk开发过程中最常用的应该是在读取SQL Se ...
- BizTalk开发系列(三十三)BizTalk之Excel终极解决方案
Excel作为优秀的客户端数据处理程序得到了广泛的应用. 由于其简单又强大的功能在很多公司或个人的数据处理中占用非常重要的位置. 而BizTalk作为微软的SOA主打产品虽然免费提供了很多Adapte ...
- BizTalk开发系列(二十五) SQL Adapter
SQL Server 是.NET开发的首选数据库.当然开发BizTalk应用程序很多也离不了SQL Server.针对SQL Server的数据操作BizTalk 提供了SQL Adapter作为与数 ...
- BizTalk开发系列(十三) Schema设计之值约束
XML Schema 的作用是定义 XML 文档的合法构建模块.在开发过程中有时需要对XML文档做精确的约束.以保证XMl数据的准确性. 今天我们以一个班级Sample来讲探讨一下如何在开发BizTa ...
- BizTalk开发系列(十一) 在Orchestration中执行Pipeline
由于开发需要有时要在流程中执行Pipeline.比如从DB的某个字段中取消息的字符串并在流程中构造消息.该需要通过pipeline进行升级 属性字段,验证消息等处理.BizTalk架构已经开放了此接口 ...
- BizTalk开发系列(七) Hello World2
之前根据BizTalk的订阅原理,使用BizTalk管理控制台创建了第一个应用程序 Hello World.但是由于控制台的开发功能有限,绝大多数的BizTalk程序都是在集成开发环境Visual S ...
随机推荐
- eclipse->project->clean…作用
其实主要作用就是把编译好的class等文件删除,激活eclipse的自动编译.解决的问题就是,有时候你把代码改了,但因为一些未知的原因,eclipse的自动编译没有成功,导致运行结果不正常.当你的工程 ...
- 基于PHP以及Mysql,使用WordPress搭建站点
1.前提环境是PHP以及Mysql以及安装配置完成,Nginx服务启动: 2.配置Mysql的初始密码:mysql安装后,默认root密码是空的,所以要设置密码: mysql -u root mys ...
- Python入门之树莓派
Linux命令行$+命令 pwd显示当前目录 ls列表 cd改变当前目录,/ sudo超级用户输入,特权来操作系统相关设置或删除文件 sudo apt-get install 安装程序 sudo ...
- Swift3.0语言教程使用字符串创建和初始化字符串
Swift3.0语言教程使用字符串创建和初始化字符串 Swift3.0语言教程使用字符串创建和初始化字符串,在编程语言中,字面值是很常见的数据描述形式.人们可以通过字面所表达的意思,获知其含义,尤其是 ...
- 非传统题【A002】
[A002]非传统题[难度A]————————————————————————————————————————————————————————————————————————————————————— ...
- maven工程下 读取resource下配置文件
http://blog.csdn.net/xu511739113/article/details/52440982
- Trie UVA 11732 "strcmp()" Anyone?
题目传送门 题意:询问所有字符串的比较次数和(注意for循环内的比较也算) 分析:将所有字符串插入到字典树上,然后结点信息记录有几个字符串,那么每走到一个结点就能知道比较到此时需要的次数.学习到链表存 ...
- 一个简单的C语言语法检查器的实现
我自己的实现方法的核心过程:首先用一个非终结符代表所有要检查的程序代码,然后根据文法将这个整体的符号不断展开,以拼凑成按检查的程序的顺序排列的终结符序列,能成功说明语法正确,否则有错误. 关键词:分词 ...
- 使用spring rest插入数据库时发生了 前言中不允许有内容 错误
该错误一般是编码带来的问题,比如在请求post的时候,使用了application/x-www-form-urlencoded的content type 那么请求传过来的string则需要用urlDe ...
- Extjs 属性控件[转载]
Ext.form.TimeField: 配置项: maxValue:列表中允许的最大时间 maxText:当时间大于最大值时的错误提示信息 ...