識別フィールドは、主に決定を下したり、オーケストレーション内のデータを操作したりするために使用する、特別な関心のあるメッセージ データです。
メッセージのプロパティは、メッセージ自体の内容または "メタデータ" というデータであり、タイムスタンプやルーティング情報などのメッセージに関するコンテキスト情報です。 システム定義のメッセージ コンテキスト プロパティまたはトランスポート コンテキスト プロパティを使用することも、プロパティ スキーマ内からスキーマ フィールドを参照して独自のプロパティを定義することもできます。 プロパティは、サブスクリプションと相関関係で使用されます。
スキーマ内のフィールドを識別フィールドまたはプロパティ フィールドとして指定するには、エディター内から [ プロパティの昇格 ] ダイアログ ボックスを使用します。 詳細については、「Promoting Properties」を参照してください。
.NET 型のフィールドを識別フィールドとして指定する場合は、DistinguishedField 属性を使用するか、Property 属性でプロパティとして修飾します。
識別フィールドの使用
識別フィールドは、メッセージ内のフィールドへのパスによって参照され、メッセージ名を区切るピリオド、フィールドを囲むレコードの名前、フィールド自体の名前が使用されます。
MyMessage.MyRecord.MySubrecord.MyDistinguishedField
プロパティ フィールドの使用
プロパティ スキーマにフィールドを追加すると、コードとフィルター式を使用してオーケストレーションでその値にアクセスできます。 プロパティ スキーマの詳細については、「 プロパティ スキーマ」を参照してください。
注
メッセージの内容またはデータのプロパティは、基本的に基になるデータへのショートカットです。プロパティを変更すると、データが変更され、その逆も同様です。
メッセージのプロパティは、メッセージの名前の後に名前空間 (スキーマ) とプロパティ名をかっこで囲んで参照されます。
MyMessage(Invoice.PropertySchema.InvoiceID)
注
予約済みキーワードをスキーマ内のフィールドの名前として使用し、[簡易昇格] を選択してフィールドを昇格すると、フィールドのプロパティ名が __<Reserved Keyword> に変更されます。 (プロパティ名の前に二重アンダースコアが追加されます)。ただし、オーケストレーション式でこのプロパティ名を使用すると、オーケストレーションのビルド時にコンパイラ エラーが発生します。 このエラーを回避するには、二重アンダースコアの前に @ を手動で追加する必要があります。 たとえば、
MyMessage(Invoice.PropertySchema.@__Name) = "Product Name";
プロパティ セット
また、1 つのメッセージのすべてのコンテキスト プロパティ (プロパティ セット) を別のメッセージのコンテキスト プロパティに割り当てることもできます。 プロパティセットを割り当てるには、両方のメッセージ名の後にアスタリスクを括弧で囲むだけで、プロパティを括弧で囲むのと同じ方法です。
MyMessage2(*)=MyMessage1(*);
この例でプロパティ セットが MyMessage2 に割り当てられた後、MyMessage2 のすべてのプロパティに MyMessage1 のプロパティと同じ値が含まれます。
こちらもご覧ください
プロパティの昇格
受信メッセージ図形でのフィルターの使用
オーケストレーションでのメッセージの使用
BizTalk メッセージ コンテキストプロパティについて