共用方式為


使用區別欄位和屬性欄位

辨識欄位是特別重要的訊息資料,您主要用來在流程編排中做出決策或操控數據。

訊息屬性是訊息本身的內容,或「元數據」,這些內容資訊是關於訊息的內容資訊,例如時間戳或路由資訊。 您可以使用系統定義的訊息內容屬性或傳輸內容屬性,也可以藉由從屬性架構內參考架構欄位來定義自己的屬性。 屬性用於訂閱和關聯。

  • 您可以使用編輯器內的 [ 升級屬性 ] 對話框,將架構中的欄位指定為辨別欄位或屬性欄位。 如需詳細資訊,請參閱 促進屬性

  • 您可以將 .NET 類型中的字段指定為辨別字段,方法是使用 DistinguishedField 屬性來裝飾它,或以 Property 屬性來指定為屬性。

使用辨別欄位

辨別欄位是由訊息中欄位的路徑所參考,使用句號來分隔訊息名稱、封入欄位的任何記錄名稱,以及欄位本身的名稱:

MyMessage.MyRecord.MySubrecord.MyDistinguishedField  

使用屬性欄位

將字段新增至屬性架構之後,就可以使用程式代碼和篩選表達式在協調流程中存取其值。 如需屬性架構的詳細資訊,請參閱 屬性架構

備註

訊息內容或數據屬性基本上是基礎數據的快捷方式:如果您修改屬性,則會修改數據,反之亦然。

訊息屬性是依照訊息名稱再加上括號內的命名空間(模式)和屬性名稱來參考的。

MyMessage(Invoice.PropertySchema.InvoiceID)  

備註

當您使用保留關鍵字作為架構中的欄位名稱,而且選取[快速提升]來提升欄位時,欄位的屬性名會變更為 __<Reserved Keyword>。 (在屬性名稱之前新增雙底線。不過,如果您在協調流程表達式中使用這個屬性名稱,在建置協調流程時會收到編譯程序錯誤。 若要解決此錯誤,您必須在雙底線之前手動新增 @ 。 例如,

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

屬性集

您也可以將一個訊息的所有內容屬性(屬性集)指派給另一則訊息的內容屬性。 若要指派屬性集,您只需在兩個訊息名稱後面加上括弧,即可將屬性放在括弧中:

MyMessage2(*)=MyMessage1(*);  

在範例中將屬性集指派給 MyMessage2 之後,MyMessage2 中的所有屬性都會包含與 MyMessage1 中屬性相同的值。

另請參閱

升級屬性
搭配接收訊息圖形使用篩選
在協調流程中使用訊息
關於 BizTalk 訊息內容屬性