2014-12-15 11 views
0

비록 루프가 X12에서 논리적 인 개념 (텍스트에서 직접 물리적으로 표현되지 않음)이지만, 모든 트랜잭션 세트는 루프의 식별자와 그 순서를 포함하여 포함 할 수있는 루프 집합을 정의합니다. 내 질문은 일반적으로 루프를 정렬하기위한 규칙은 무엇입니까? 루프의 컬렉션 (1000A, 2300BB 등과 같은 알려진 식별자)을 가져 와서 올바르게 정렬 할 수 있어야하는 코드에서 표현할 수있는 간결한 규칙 집합이 있습니까?X12 파일에서 루프 정렬/정렬 알고리즘이 있습니까?

제 질문의 맥락은 응용 프로그램이 X12 문서/트랜잭션 세트의 모델을 구성하고 모델이 나타내는 텍스트를 쓰는 데 사용하는 범용 라이브러리에서 작업하고 있다는 것입니다. 요소, 세그먼트 및 루프를 나타내는 객체가 있습니다. 특정 루프에서 세그먼트를 주문하는 것은 쉽습니다. 구현 가이드에서 지시합니다. 하지만 (트랜잭션 집합 내에서) 일반적으로 작동하도록 Loop를 주문하려고합니다. 그게 내가 물어 보는거야

루프는 숫자 부분을 기본 정렬 키로 사용하고 알파 부분을 보조 정렬 키로 사용하여 식별자에 따라 순서가 정해진 것으로 보입니다. 물론 다른 항목에 포함 된 계층 적 루프는 해당 정렬 순서 (예 : 1000A, 2000A, 2010A, 2010B, 2100, 2300 - 2010A 및 2010B는 2000A의 하위 항목)에서 부모 다음에 루프 앞에 배치됩니다.

사양 및 구현 안내서에이 모든 정보가 포함되어 있음을 이해합니다. 루프 순서 (아니요 세그먼트 정렬)에 대한 포괄적 인 규칙을 찾고 있습니다. 규칙을 알고리즘 적으로 표현하는 간결한 방법이 있습니까? 심지어 어렵고 빠른 규칙이 있습니까?

+0

x12 837에 대한 이야기입니까? – eppye

+0

@eppye : 필자는 필자가 현재 다루고있는 문서 종류이지만 * 반드시 그런 것은 아닙니다. 모든 X12 트랜잭션 세트에 적용 할 답변을 갖고 싶습니다. –

+0

실제로 당신이 묻는 것을 말하기가 약간 어렵습니다. 설명하려고 노력하십시오. – eppye

답변

0

내 의견에서 언급했듯이 표준에는 루프 값이 있습니다. Liaison Dictionary Viewer의 스크린 샷을 살펴보십시오. CLM 세그먼트의 LOOP 값은 100입니다. 세그먼트는 CLM 세그먼트 (확장 태그)의 하위 세그먼트입니다. 모든 "주문"은 파트너가 임의로 정의하거나 데이터가 자격이있는 경우 모든 (정의되지 않은) 주문이 될 수 있습니다. 하지만 그 루프는 최대 100 번 발생할 수 있으며 루프 값 안에 세그먼트가 반복 될 수 있습니다.

구현 가이드는 파트너가 원하는 올바른 순서를 제공합니다. 독자적인 구문 검증 엔진을 작성하는 것처럼 보입니다.

enter image description here