使用可分辨字段和属性字段

可分辨字段是具有特殊作用的消息数据,主要用于决策或处理业务流程中的数据。

消息属性或者是数据(消息本身的内容),或者是元数据(与消息有关的上下文信息,例如时间戳或路由信息)。 您可以使用系统定义的消息上下文属性或传输上下文属性,或者可以通过引用属性架构内的架构字段来定义您自己的属性。 属性用于订阅和相关。

  • 可以在编辑器中使用“ 提升属性 ”对话框,将架构中的字段指定为可分辨字段或属性字段。 有关详细信息,请参阅 提升属性

  • 您可以通过使用 DistinguishedField 属性修饰 .NET 类型中的字段来将这一字段指定为可分辨字段,或者通过 Property 属性将该字段指定为属性字段。

使用可分辨字段

可分辨字段通过指向消息中的字段的路径进行引用,并且使用句点来分隔消息名称、包含该字段的任何记录的名称以及字段本身的名称:

MyMessage.MyRecord.MySubrecord.MyDistinguishedField  

使用属性字段

一旦您将某一字段添加到某一属性架构后,就可以在含代码的业务流程和筛选器表达式中访问其值。 有关属性架构的详细信息,请参阅 属性架构

注意

消息内容或数据属性实质上是基础数据的快捷方式:如果修改属性,将修改数据,反之亦然。

消息属性通过消息名称后随括号中的命名空间(架构)和属性名称引用:

MyMessage(Invoice.PropertySchema.InvoiceID)  

注意

如果使用保留关键字 (keyword) 作为架构中某个字段的名称,并且通过选择“快速升级”来升级该字段,则字段的属性名称将更改为 __<Reserved Keyword>。 (属性名称前面添加双下划线 ) 但是,如果在业务流程表达式中使用此属性名称,则在生成业务流程时将收到编译器错误。 若要更正这一错误,需要在双下划线前手动添加 @。 例如,

MyMessage(Invoice.PropertySchema.@__Name) = "Product Name";

属性集

您还可以将一个消息的所有上下文属性(属性集)都分配给其他消息的上下文属性。 若要分配某一属性集,只需将用括号括起来的星号放置于两个消息名称后,其方式与在括号中放置属性相同:

MyMessage2(*)=MyMessage1(*);  

在上例中将该属性集分配给 MyMessage2 后,MyMessage2 中的所有属性都将包含与 MyMessage1 中的属性相同的值。

另请参阅

升级属性
使用带接收消息形状的筛选器
在业务流程中使用消息
关于 BizTalk 消息上下文属性