次の方法で共有


プロパティの昇格を使用したインスタンス メッセージ処理

Property Field メソッドを使用してプロパティを昇格するには、プロパティ スキーマを作成する必要があります。 プロパティ スキーマの作成の詳細については、「プロパティ スキーマ を作成する方法」を参照してください。 すべてのプロパティの昇格と同様に、メッセージ スキーマの [スキーマ] ノードの [プロパティの昇格] プロパティを使用してアクセスできる [プロパティの昇格] ダイアログ ボックスを使用します。

昇格プロパティにアクセスして使用するには、プロパティを昇格するパイプラインを選択する必要があります。 たとえば、PassthruReceive パイプラインを使用する場合、プロパティは昇格されません。その結果、コンテンツ ベースのルーティングやその他の機能は期待どおりに機能しません。

[ プロパティの昇格 ] ダイアログ ボックスで、ダイアログ ボックスの右側にある [プロパティ フィールド ] タブが選択されていることを確認します。 次に、[プロパティ フィールド] タブの上部にある [プロパティ スキーマ] リストに適切なプロパティ スキーマが含まれていることを確認します。必要に応じて、フォルダー ボタンを使用して、 BizTalk の [種類の選択] ダイアログ ボックスを使用して適切なプロパティ スキーマを選択します。 次に、ダイアログ ボックスの左側にあるスキーマ ツリーのノードを展開して、プロパティ フィールドとして昇格させる フィールド要素 ノードまたは フィールド属性 ノードを検索して選択し、[ 追加] をクリックします。 最後に、Property-Fields ディクショナリ テーブルの [プロパティ] 列のドロップダウン リストを使用して、昇格されたプロパティを関連付けるプロパティ スキーマの Field Element ノードを選択します。 プロパティをプロパティ フィールドに昇格する手順については、昇格プロパティダイアログ ボックスを使用する方法をご覧ください。「プロパティ フィールドとしてメッセージ コンテキストにデータをコピーする方法」をご参照ください。

レコード ノードをプロパティ スキーマの Field 要素ノードに昇格することもできますが、レコード ノードのコンテンツ タイプ プロパティが SimpleContent に設定されている場合に限ります。

これらの昇格がすべて異なるルート ノードで実行されている限り、スキーマ内で同じプロパティを複数回昇格できます。 これは、メッセージが 1 つのルート ノードに対して検証され、そのルート ノードの下で昇格されたプロパティのみが実行時に評価されるためです。

プロパティ フィールドとして昇格するプロパティのセットから Field 要素 ノードまたは フィールド属性 ノードを削除するには、[プロパティ フィールド] タブの Property-Fields ディクショナリ テーブルで昇格された プロパティ を選択し、[ 削除] をクリックします。

Property-Fields ディクショナリ テーブルの [ノード パス] 列には、昇格されたプロパティに対応するスキーマ ノードへの XPath が表示されます。 この値は、[ インスタンス XPath の編集 ] ダイアログ ボックスを使用して直接編集できます。 このダイアログ ボックスを開くには、そのセルを選択したときに対応するセルの右端に表示される省略記号 (...) ボタンをクリックします。 BizTalk エディターで解決できない XPath は適切な検証操作を妨げるので、XPath 値を直接編集するときは注意が必要です。

BizTalk エディターには、 プロパティ フィールド メカニズムを使用してプロパティを昇格するための合理化されたコマンドも用意されています。 このコマンドはクイックプロモーションと呼ばれ、BizTalkのメニューやショートカットメニューで昇格 | クイック プロモーション コマンドを使用して利用できます。 このコマンドは、選択した フィールド ノード (または レコード ノード) を、含まれるスキーマの [プロパティ ページ] ダイアログ ボックスの [既定のプロパティ スキーマ名 ] プロパティで指定されたプロパティ スキーマで自動的に作成される プロパティ フィールドに昇格させます。 クイック昇格コマンドを使用してプロパティをプロパティ フィールドに昇格させる手順については、「プロパティ フィールド としてメッセージ コンテキストにデータをコピーする方法」を参照してください。

プロパティ フィールド メカニズムを使用してプロパティを昇格すると、メッセージ スキーマの XSD 表現に 2 つの XML スキーマ定義 (XSD) 言語フラグメントが追加されます。 最初の XSD フラグメントは、次の例のように、対応するプロパティ スキーマ を識別するスキーマ要素に関連付けられた注釈フラグメントです。

<xs:annotation>  
    <xs:appinfo>  
        <b:imports>  
            <b:namespace prefix="ns0"  
                uri="http://BizTalk_Server_Project1.PropertySchema1"  
                ___location=".\propertyschema1.xsd" />  
        </b:imports>  
    </xs:appinfo>  
</xs:annotation>  

2 つ目の XSD フラグメントは、次の例のように、プロパティ フィールド メカニズムを使用して昇格された Field Element ノードまたは Field Attribute ノード値を識別するルート要素に関連付けられた注釈フラグメントです (名前が変更されているかどうかに関係なく)。

<xs:annotation>  
    <xs:appinfo>  
        <b:properties>  
            <b:property name="ns0:PromProp1"  
                xpath="/*[local-name()='Root' and namespace-  
                 uri()='http://BizTalk_Server_Project1.Schema2']/  
                 *[local-name()='MyRec1']/@*[local-  
                 name()='Field_x0020_1']" />  
            <b:property name="ns0:PromProp2"  
                xpath="/*[local-name()='Root' and namespace-  
                 uri()='http://BizTalk_Server_Project1.Schema2']/  
                 *[local-name()='MyRec1']/*[local-  
                 name()='ProgramManager']/*[local-name()='Name']" />  
        </b:properties>  
    </xs:appinfo>  
</xs:annotation>  

こちらもご覧ください

メッセージ コンテンツを使用してメッセージ処理を制御する方法
プロパティ フィールドとしてメッセージ コンテキストにデータをコピーする方法