0

ブール型のプロパティを含むプロパティ スキーマを使用して、オーケストレーション プロジェクトを作成しましたIsForFramework。私の目的は、オーケストレーションSystem.Xml.XmlDocumentが、前述のプロパティが の値で昇格したタイプのすべてのメッセージを受信するようにすることですtrue

これはプロパティ スキーマの一部です。

<xs:schema xmlns="http://Bakker.Framework.Orchestrations.Framework" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" targetNamespace="http://Bakker.Framework.Orchestrations.Framework" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:annotation>
    <xs:appinfo>
      <b:schemaInfo schema_type="property" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" /> 
    </xs:appinfo>
  </xs:annotation>
  <xs:element name="IsForFramework" type="xs:boolean">
    <xs:annotation>
      <xs:appinfo>
        <b:fieldInfo propertyGuid="9358dd05-92f7-4c84-8dc1-8427bea580a6" propSchFieldBase="MessageContextPropertyBase" /> 
      </xs:appinfo>
    </xs:annotation>
  </xs:element>
</xs:schema>

受信シェイプのフィルター式:

(Bakker.Framework.Orchestrations.IsForFramework == true)

BizTalk コンソールから照会された実際のサブスクリプション:

http://Bakker.Framework.Orchestrations.Framework.IsForFramework == True

ルーティング失敗レポートのコンテキスト:

IsForFramework  True    Promoted    http://Bakker.Framework.Orchestrations.Framework

私の人生では、ここで何が問題になる可能性があるのか​​ わかりません。

4

2 に答える 2

2

フィルター式を試してください:

Bakker.Framework.Orchestrations.IsForFramework == "True"

一重引用符も機能する場合があります。Orchestration Designer の式エディターは BT Admin のものとは異なります。

于 2014-11-10T16:46:40.067 に答える
1

MDeSchaepmeester との話し合いの結果、根底にある問題は、そのコンテキスト プロパティを昇格させていたパイプライン コンポーネントと、それが文字列として昇格させていた他のすべてのコンポーネントであることが判明しましたが、このコンテキスト プロパティはプロパティ スキーマでブール値として定義されていました。IBaseMessageContext.Promote メソッドから "昇格されたプロパティの型がサブスクリプションで指定された値と一致しない場合、比較は失敗し、メッセージのサブスクリプションは発生しません。"

この場合、2 つのオプションがあります

1) オブジェクトをプロモートするときに、オブジェクトがブール値にキャストされていることを確認してください。

2) Johns-305 で提案されているように、フィールド タイプを String に変更し、フィルター式を Bakker.Framework.Orchestrations.IsForFramework == "True" に変更します (タイプが一致する場合、エラーは発生しません)。

于 2014-11-11T20:21:04.897 に答える