2016-09-22 7 views
0

파트너가 일부 사용자 지정 세그먼트가있는 EDIFACT를 보냅니다. 이러한 기존 사용자 정의 세그먼트를 갖기 위해 기존 edifact 스키마 중 하나를 업데이트했습니다. 행복한 날 시나리오가 효과적입니다. 우리는 이제 부정적인 시나리오를 구현하려고합니다. 이 비즈니스는 BizTalk가 교환 내에서 성공적인 메시지를 처리하고 실패한 메시지에 대해 오류를 발생 시키길 원합니다. 파트너 계약을 사용하지 않습니다. EDIFACT 대체 설정에서 인바운드 일괄 처리 처리 옵션을 설정하여 교환을 트랜잭션 세트 - 오류시 트랜잭션 일시 중지로 분리합니다.BizTalk EDIFACT 하위 문서 분할

문제 : 제 파트너는 동일한 트랜잭션 세트, 즉 UNH-UNT 내에서 여러 데이터 (여기서는 여러 개의 S01Loop)를 보냅니다. 위의 논리를 적용하면 전체 교환이 실패합니다.

요구 사항 : 특정 루프 데이터가 실패하고 나머지 양수 데이터가 실패하기를 원합니다.

내가 시도한 것 : HIPAA 기반 edifact 파일의 경우 subdocument_break라는 개념이 있습니다. XSD에서 이러한 주석을 적용했습니다. 불행히도 그것은 작동하지 않았다.

즉시 사용할 수있는 솔루션이 없다면 여러 데이터를 별도의 인스턴스로 분할하는 사용자 지정 플랫 파일 디스어셈블러 구성 요소가 될 EDI 스플리터 파이프 라인 구성 요소를 작성할 계획입니다. 그런 다음 EDI 디스어셈블러를 사용하여 데이터를 구문 분석합니다.

누구나 BizTalk에서 사용할 수있는 즉시 사용 가능한 기능이 있는지 알려주십시오.

답변

0

이 경우 하위 문서 분할은 구문 오류가 발생해도 전체 트랜잭션 세트가 실패하기 때문에 도움이되지 않습니다.

이유가 있습니다. 세그먼트가 고장난 경우 파서는 해당 세그먼트를 안정적으로 판별 할 수 없습니다.

이 문제를 해결하는 올바른 방법은 구문 분석 후에 잘못된 메시지가 감지 될 수 있도록 해당 유효성 검사를 프로세스의 뒷부분으로 이동하는 것입니다. 거래 파트너가 진정으로 무효 한 EDI를 보내고 있다면 거래를 끝내야합니다.