次の方法で共有


識別フィールドとプロパティ フィールドの使用

識別フィールドは、主に決定を下したり、オーケストレーション内のデータを操作したりするために使用する、特別な関心のあるメッセージ データです。

メッセージのプロパティは、メッセージ自体の内容または "メタデータ" というデータであり、タイムスタンプやルーティング情報などのメッセージに関するコンテキスト情報です。 システム定義のメッセージ コンテキスト プロパティまたはトランスポート コンテキスト プロパティを使用することも、プロパティ スキーマ内からスキーマ フィールドを参照して独自のプロパティを定義することもできます。 プロパティは、サブスクリプションと相関関係で使用されます。

  • スキーマ内のフィールドを識別フィールドまたはプロパティ フィールドとして指定するには、エディター内から [ プロパティの昇格 ] ダイアログ ボックスを使用します。 詳細については、「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 メッセージ コンテキストプロパティについて