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