0

부울 속성 IsForFramework이 포함 된 속성 스키마가 포함 된 오케스트레이션 프로젝트를 만들었습니다. 내 목표는 오 케스트 레이션이 true 값으로 승격 된 aformentioned 속성을 가진 System.Xml.XmlDocument 유형의 모든 메시지를 받도록하는 것입니다.XmlDocument를 수신하는 직접 바인딩 오케스트레이션의 설명 할 수없는 라우팅 오류

이것은 속성 스키마의 일부입니다

<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> 

수신 모양의 필터 식 :는 BizTalk 콘솔에서 쿼리

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

실제 가입 :

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

라우팅 실패 보고서 컨텍스트 :

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

나는 내 생애 동안 여기에서 잘못 될 수있는 것이 무엇인지 파악할 수 없습니다. 필터 식에 대한

+0

메시지 유형이 오케스트레이션이 예상하는 메시지 유형과 일치합니까? 오케스트레이션 구독을 보면 올바른 메시지 유형을 찾고 있음을 알 수 있습니다. – Dijkgraaf

+0

@Dijkgraaf는 제목과 질문 본문에서 언급했듯이 포트와 수신 모양이 구성되는 메시지 유형은'System.Xml.XmlDocument'입니다. MSDN에 따르면 이것은 유형 불가지론 수신 구성이므로 필터식이 일치하는 한 모든 메시지가 오케스트레이션으로 라우팅됩니다. – MarioDS

+0

아니, 그건 네가 생각한 것 일 뿐이야. 실제로 메시지 컨텍스트 속성과 구독을 확인하십시오. 나는 그들이 일치하지 않는다는 것을 알게 될 것이라고 생각합니다. – Dijkgraaf

답변

1

MDeSchaepmeester와 논의한 후 근본적인 문제는 해당 컨텍스트 속성을 홍보하는 파이프 라인 구성 요소와 문자열로 판촉하는 다른 모든 컨텍스트 속성이지만이 컨텍스트 속성은 속성 스키마에서 부울로 정의된다는 것이 확인되었습니다. . IBaseMessageContext.Promote Method 에서 "는 승격 된 특성의 종류는 가입에 지정된 값과 일치하지 않는 경우, 비교는 실패하고 메시지 가입이 발생하지 않습니다."이 경우

두 가지 옵션

1)가 개체를 승격시킬 때 부울로 캐스팅되었는지 확인하십시오.

2) 필드 형식을 String으로 변경하고 Johns-305에서 제안한대로 Bakker.Framework.Orchestrations.IsForFramework == "True"로 필터 식을 변경하십시오 (일치하지 않으면 오류가 표시되지 않음)

2

시도 :

Bakker.Framework.Orchestrations.IsForFramework

작은 따옴표도 작동 할 수 있습니다 == "진정한"는 오케스트레이션 디자이너에서 표현 편집기는 BT의 것과 다른 관리자.

+0

제안 해 주셔서 감사합니다. 그러나 작동하지 않습니다. 오류는''System.String "을 'System.Boolean'으로 암시 적으로 변환 할 수 없습니다. 큰 따옴표를 사용하면 'System.Boolean'을, ''System.Char ''를 사용하면 오류가 발생합니다. 또한 값을 'True'로 설정할 때 첫 번째 오류가 발생합니다 (따옴표없이 대문자에 유의하십시오). 또한, 나는 3 가지 경우 모두에서 '불법'을 '술어'로 활성화합니다. – MarioDS

+0

정답의 절반이 밝혀졌습니다. 그래서 +1 – Dijkgraaf

관련 문제