EDI 송신 처리의 알려진 문제
이 항목에서는 EDI 송신 파이프라인의 처리에서 알려진 문제에 대해 설명합니다.
X12의 암시된 소수점으로 인해 길이 유효성 검사에 실패함
증상
EDI 송신 파이프라인이 나가는 EDI 교환에서 중간 XML의 밑수 10 숫자 값을 Nn 형식의 숫자로 변환하는 경우 XML 교환이 길이 유효성 검사에 실패합니다.
가능한 원인
X12로 인코딩된 EDI 교환을 serialize하는 경우 EDI 송신 파이프라인은 항상 밑수 10 숫자 값을 암시된 소수점이 있는 Nn 형식의 숫자로 변환합니다. 예를 들어 중간 XML 파일에 값 12.34가 있으면 EDI 송신 파이프라인은 숫자 형식 N2로 지정된 경우 EDI 교환에서 해당 값을 1234로 변환합니다. 밑수 10 숫자 값의 길이는 Nn 형식의 숫자 길이보다 하나 더 큽니다. Nn 형식의 숫자 길이가 최대값인 경우 중간 XML의 밑수 10 숫자 값이 XML 길이 유효성 검사에 실패합니다.
이 문제는 X12로 인코딩된 교환에만 해당합니다.
해결 방법
XML 번호의 최대 길이 값에 값 1을 더합니다.
제어 번호를 다시 설정, 보관 또는 제거해야 할 수 있음
제어 번호가 필드의 길이 제한에 도달하면 BizTalk Server에서 오류를 발생시키고 교환을 일시 중단합니다. EDI 속성 또는 EDI 전역 속성 대화 상자에서 입력된 제어 번호를 다시 설정해야 합니다.
제어 번호는 BizTalk MessageBox 데이터베이스의 dbo.EdiSequenceNumbers 테이블에 저장됩니다. 필요한 경우 테이블에서 제어 번호를 제거하거나 제어 번호를 보관하여 이 데이터베이스 테이블을 관리해야 합니다.
EDI 속성 대화 상자에서 바인딩되지 않은 경우 제한을 낮추도록 다시 설정을 선택하여 컨트롤 번호의 자동 재설정을 사용하도록 설정할 수도 있습니다.
컨텍스트 속성 이름의 데이터 요소 이름에 마침표가 아니라 밑줄이 포함됨
EDI 세그먼트 내의 데이터 요소 이름에는 UNB2 보낸 사람 세그먼트의 ID 필드인 UNB2.1과 같이 마침표가 포함됩니다. 그러나 데이터 요소 이름이 EDI 컨텍스트 속성의 일부로 포함된 경우(예: 송신 포트의 필터 식에 포함됨) 마침표가 밑줄로 바뀝니다. 예를 들어 보낸 사람 ID 데이터 요소의 컨텍스트 속성은 EDI.UNB2.1이 아니라 EDI.UNB2_1입니다. 이는 컨텍스트 속성 이름에 마침표가 지원되지 않기 때문입니다.
데이터 요소의 컨텍스트 속성 값에 대한 필터 식에 선행 또는 후행 공백이 포함되지 않아야 함
EDI 교환의 봉투(Envelope)에 있는 데이터 요소에 선행 또는 후행 공백이 포함되어 있고 수신 파이프라인이 컨텍스트 속성을 해당 데이터 요소의 값으로 승격시키는 경우 수신 파이프라인은 컨텍스트 속성에서 선행 또는 후행 공백을 제거합니다. 따라서 해당 컨텍스트 속성을 사용하여 필터 식을 만드는 경우 선행 또는 후행 공백이 포함되지 않은 속성 값을 입력해야 합니다. 필터 식에 선행 또는 후행 공백을 포함하면 컨텍스트 속성에는 선행 또는 후행 공백이 포함되지 않기 때문에 필터 식이 일치하는 컨텍스트 속성을 확인할 수 없습니다.
유지 교환의 교환 수신 속성으로 지정된 기본 파티로 인해 송신 파이프라인이 실패함
BizTalk Server가 유지해야 하는 일괄 처리된 교환을 받을 경우(오류 시 교환이 일시 중단됨), 교환 받는 사람으로 지정된 파티의 속성이 기본값으로 설정되어 있으면 교환을 구독하는 송신 파이프라인이 실패합니다. ISA5, 보낸 사람 한정자 및 ISA6, 보낸 사람 식별자와 같은 이러한 속성을 유효한 값으로 설정해야 합니다. BizTalk Server는 잘못된 파티 구성으로 인해 메시지를 serialize할 수 없음을 나타내는 오류를 게시합니다. 유지 교환의 헤더에 보낸 사람 한정자와 같은 필요한 구성 설정이 포함되어 있으므로 이 처리는 잘못된 것입니다.
송신 쪽 파티 또는 전역 설정에서 다른 소수 표기법을 지정하는 경우 메시지의 소수 표기법이 변경됨
교환에 사용된 소수 표기법이 보내는 메시지에 대해 UNA3 파티 속성으로 지정된 소수 표기법과 다른 경우 BizTalk Server는 전송을 위해 serialize할 때 교환의 봉투(Envelope)에 사용되는 소수 표기법을 변경합니다. UNA3 파티 속성 대신 UNA3 전역 속성을 사용하는 경우에도 마찬가지입니다. 예를 들어 들어오는 메시지에 사용된 소수 표기법이 마침표이고 보내는 메시지의 소수 표기법을 결정하는 UNA3 파티 속성이나 UNA3 전역 속성이 쉼표를 지정하는 경우 BizTalk Server는 보내는 메시지의 소수 표기법을 쉼표로 변경합니다.
오케스트레이션 내에서 EDI 송신 파이프라인을 실행할 수 없음
BizTalk Server 일반적으로 오케스트레이션에서 식 셰이프 내에서 송신 파이프라인을 실행할 수 있습니다. 그러나 이 기능은 EDISend 파이프라인이나 AS2EdiSend 파이프라인에는 적용되지 않습니다. 이러한 파이프라인은 송신 포트 내에서 실행해야 합니다. 오케스트레이션의 Expression 셰이프 내에서 EDISend 파이프라인이나 AS2EdiSend 파이프라인을 실행하려고 하면 파이프라인이 송신 포트에 바인딩되지 않고 메시지가 일시 중단됩니다.
BizTalk EDI 응용 프로그램을 수정하지 않아야 함
BizTalk EDI 응용 프로그램의 아티팩트를 수정하거나 삭제하면 안 됩니다. 이 응용 프로그램을 수정한 경우 EDI 및 AS2 기능의 구성을 취소하고 다시 구성하여 원래 응용 프로그램으로 되돌릴 수 없습니다.
기능 그룹 헤더 그리드의 기본 행을 사용하면 교환 헤더와 그룹 헤더 간에 Message-Type이 일치하지 않을 수 있음
EDIFACT로 인코딩된 나가는 교환의 UNH2.1 값이 UNG 및 UNH 세그먼트 정의 페이지의 그리드에 있는 "메시지 유형 UNH2.1의 경우" 값과 일치하지 않는 경우 메시지에 입력되는 UNG1 값이 UNH2.1 값과 일치하지 않을 수 있습니다.
BizTalk는 메시지에 기본 행의 UNH2.1 요소와 일치하는 항목이 없는 경우에도 그리드의 기본 행에 있는 UNG1 값으로 메시지를 채우기 때문에 이 오류가 발생할 수 있습니다.
X12로 인코딩된 나가는 교환의 ST1 값이 GS 및 ST 세그먼트 정의 페이지의 그리드에 있는 "ST1의 경우" 값과 일치하지 않는 경우 메시지에 입력되는 GS1 값은 ST1 값을 기준으로 동적으로 결정됩니다.
데이터 요소에 잘못된 문자가 포함됨
증상
EDI 송신 파이프라인을 사용하여 EDI 교환을 보내는 경우 '데이터 요소에 잘못된 문자'가 있음을 나타내는 오류가 응용 프로그램 이벤트 로그에 표시될 수 있습니다.
가능한 원인
페이로드 데이터에 포함된 문자가 구분 기호로도 사용되는 경우 이 오류가 발생할 수 있습니다. instance 경우 구성 요소 구분 기호로 ':' 문자를 사용하지만 페이로드 데이터에도 ':' 문자가 포함됩니다.
이 문제는 X12로 인코딩된 교환에만 해당합니다.
해결 방법
페이로드의 구분 기호 바꾸기를 EDI 파티 속성의 ISA 세그먼트 정의 페이지에서 설정으로 사용하여 교환을 보낼 때 페이로드 데이터에 있는 구분 기호 문자를 지정된 대체 문자로 바꾸도록 지정합니다.
예를 들어 페이로드에서 구분 기호 바꾸기 를 선택하고 '|' 문자를 입력하면 EDI 송신 파이프라인을 사용하여 교환을 보낼 때 페이로드 데이터의 구분 기호 문자가 '|' 문자로 대체됩니다.
참고 항목
알려진 EDI 처리 문제
BizTalk Server에서 EDI 메시지를 보내는 방법
연습(X12): EDI 교환 보내기