나는 위치 기반 데이터를 txt 형식으로 수신해야하는 요구 사항이 있습니다.런타임 중에 파이프 라인에서 XSD를 동적으로 선택하는 방법은 무엇입니까?
레코드의 처음 2자를 사용하면 메시지 유형을 식별하는 데 도움이됩니다.
아니요. 40+ 메시지 유형이 없으므로 메시지 유형에 따라 수신 파이프 라인에서 xsd를 가져와야합니다.
런타임 중에 파이프 라인에서 xsd를 동적으로 가져 오는 가장 좋은 방법은 무엇입니까?
나는 위치 기반 데이터를 txt 형식으로 수신해야하는 요구 사항이 있습니다.런타임 중에 파이프 라인에서 XSD를 동적으로 선택하는 방법은 무엇입니까?
레코드의 처음 2자를 사용하면 메시지 유형을 식별하는 데 도움이됩니다.
아니요. 40+ 메시지 유형이 없으므로 메시지 유형에 따라 수신 파이프 라인에서 xsd를 가져와야합니다.
런타임 중에 파이프 라인에서 xsd를 동적으로 가져 오는 가장 좋은 방법은 무엇입니까?
짧은 대답은 당신이 후에 무엇
는 내장 플랫 파일 구성 요소의 인스턴스를 호스팅하는 사용자 정의 flat file disassembler 구성 요소를 작성하지만, 이는 또한 IProbeMessage 인터페이스를 구현한다.
이 인터페이스를 사용하면 BizTalk 런타임에서 수신 파이프 라인의 디스 어셈블 단계에서 여러 구성 요소를 선택할 수 있습니다.
당신이 사용자 지정 파이프 라인, 가능한 플랫 파일 .XSD 스키마 각각에 대해 하나의 여러 버전을 사용하여 멀리 얻을 수
불행하게도,이 솔루션은 신속하게 유지 보수 악몽과 성능 문제가 될 것입니다. 따라서 한 단계 더 나아가 플랫 파일 스키마를 동적으로 선택하는 단일 구성 요소를 구축하는 것이 좋습니다.이렇게하려면 IProbeMessage 구현을 실행하는 플러그인 시스템을 빌드해야합니다. 각 플러그 인 인스턴스는 올바른 플랫 파일 .XSD 스키마를 반환하고 수신 된 메시지의 입력 스트림에서 형식이 일치하는지 (아마도 처음 몇 바이트를 기준으로) 체크 인하도록 구성됩니다. 그런 다음 사용자 지정 파이프 라인 구성 요소는 메시지가 인식되고 플랫 파일 .XSD 스키마가 반환 될 때까지 IProbeMessage 구현을 다양한 플러그 인에 차례로 위임합니다.
내가 여기에 긴 대답을 재현하지만, 내가 my blog에 쓴 기사의 다음 시리즈에서 봐 주시기 바랍니다 수
긴 대답. 이 게시물은 방금 위에서 설명한 정확한 기술을 사용하여 런타임시 사용할 플랫 파일 .XSD 스키마를 동적으로 결정하는 사용자 정의 플랫 파일 디스어셈블러 구성 요소 구현을 안내합니다.
, 여기에서 시작하십시오
태그 식별자라는 속성이 있지만 시나리오에 해당하는 것으로 의심됩니다. 내가 할 일은 파이프 라인 구성 요소의 파이프 라인 구성 요소 (디스어셈블러 스테이지)의 메시지 유형 매핑 테이블 어딘가에 (데이터베이스 또는 BRE) 레코드의 첫 번째 2자를 찔러 넣고 레코드 유형을 식별 한 다음 FF 디스어셈블러를 동적으로 호출하여 메시지.
여러 가지 방법이 있습니다.
플랫 파일 스키마 마법사에서 태그 식별자를 사용하십시오. 두 개의 문자 필드를 정의하고, 유형을 설정하고, 모든 40 가지 유형의 메시지 구조를 정의하십시오. 태그 식별자는 그들을 정렬합니다.
여러 부분으로 된/포함 된 메시지로 처리 할 수 있습니다. 첫 번째 부분은 두 문자 식별자 (메시지 유형)이고 나머지 부분은 메시지의 나머지 부분입니다. 플랫 파일 파이프 라인을 사용하여 입력을 메시지로 변환하십시오. 태그 입력란을 홍보하십시오. 그런 다음 태그와 함께 첫 번째 메시지 부분을 사용하여 각 유형별로 올바른지도를 선택할 수 있습니다. 메시지 유형이 변경 될 것으로 예상되면 훨씬 좋습니다.