2011-02-16 4 views
1

나는 거기에 몇 가지 반복 섹션 플랫 파일을 가지고 있고, 나는 BT 플랫 파일 매핑 마법사를 통해 스키마를 만드는 방법에 대해 혼란 스러워요. 파일은 다음과 같습니다.중첩 반복 항목에 BizTalk 플랫 파일 매핑 마법사를 사용하는 방법?

001,bunch of data 
002,bunch of data 
006,bunch of data 
006A,bunch of data 
006B,bunch of data 
006B,bunch of data 
006,bunch of data 
006A,bunch of data 
006B,bunch of data 

위에서 볼 수 있듯이 006 * 레코드는 반복 될 수 있습니다. I는 다음과 같습니다 XML과 바람을하려는거야 :

<001Stuff>...</001Stuff> 
<002Stuff>...</002Stuff> 
<006Loop> 
    <006Stuff>...</006Stuff> 
    <006AStuff>...</006AStuff> 
    <006BStuff>...</006BStuff> 
    <006BStuff>...</006BStuff> 
</006Loop> 
<006Loop> 
    <006Stuff>...</006Stuff> 
    <006AStuff>...</006AStuff> 
    <006BStuff>...</006BStuff> 
</006Loop> 

은 분명히 난 그냥 "레코드를 반복"을 006 * 레코드의 첫 번째 그룹을 설정하고 두 번째 세트를 무시 할 수없는

. 진행 방법에 대한 어떤 제안 - I는 다음과 같이 중첩 된 것을 (오른쪽 첫 번째 이후 즉, 또 다른 006 행) 마법사를 통해 하나의 행을 반복 처리가 아닌 사용 해요? 감사!

답변

2

플랫 파일 스키마 마법사로 작업하는 것은 매우 어려우며 많은 도움이됩니다. 나는 항상 출력을 약간 조정해야하는 것처럼 보입니다. 상황이 조금 쉽게하기 위해

, 난 당신이 전체 <006> 구조의 단일 발생에 샘플 문서를 제한해야 좋습니다.

001,bunch of data 
002,bunch of data 
006,bunch of data 
006A,bunch of data 
006B,bunch of data 
006B,bunch of data 

다음, 각각의 반복 구조가 당신의 XML 스키마의 정의에 해당하는 반복 기록 내부에 랩한다 : 당신은 플랫 파일 스키마 마법사를 사용하여 Ignored 많은 라인을 설정할 필요가 없습니다.

중첩 된 구조에 대해 플랫 파일 스키마 마법사를 항상 반복적으로 실행하여보다 세부적인 제어가 가능함에 유의하십시오. 그래서 내가 지금처럼 모든 것을 포괄하는 반복 <006> 구조와 마법사를 실행하려면 먼저 제안 : 다음

enter image description here

을, 당신은 바로 구조에 클릭하고 중첩에 대한 자세한 정의를 제공 할 수 있습니다 자식 구조 만과 같이, 샘플 내용의 일부를 강조 :

enter image description here

다음

, 가장 중요한 부분을 : 당신은 Child Order 홍보 조정할 필요 문서 파일 끝에 빈 행이 하나만 있기 때문에 마법사가이 상황을 해결할 수 없으므로 에 대한 반복 구조가 모두 반복 구조입니다.

참고로, 당신의 결과 구조는과 같이 보일 것입니다 :

enter image description here

을 다음과 같은 설정으로 :

  • BunchOfStuff (Root)을 : 0x0D 0x0A, 접미사를 구분.
  • _001Stuff : 구분, ,, 접두사, 태그 식별자 001.
  • _002Stuff : 구분, ,, 접두사, 태그 식별자 002.
  • _006Loop : 구분, 0x0D 0x0A, 조건부 기본값.
  • _006Stuff : 구분, ,, 접두사, 태그 식별자 006.
  • _006AStuff : 구분, ,, 접두사, 태그 식별자 006A.
  • _006BLoop : 구분, 0x0D 0x0A, 조건부 기본값.
  • _006BStuff : 구분, ,, 접두사, 태그 식별자 006B.

희망이 도움이됩니다.

0

은 하나 개의 레코드로 두 번째 006의 시작, 기록에 최초의 006의 첫 시작부터 모든 기록을 처리합니다. 006 레코드를 정의 할 때 반복 레코드로 설정하십시오. 이것은 각각의 660, 그룹 및 각 노드의 노드를 그 아래에 만들어야합니다. 내가 시도 할 것 인 것이다

.

여기에 작업의 2 분 후 내 출력됩니다. 노드/요소 이름을 제외하고 나는 그것이 당신이 원하는 것이라고 생각한다. 여전히 데이터의 각 필드에 대해 별도의 요소를 만들어야합니다.

< _x0030_01의 xmlns = ""> 001, 데이터 < _x0030_02의 xmlns = 무리 ""> 002, 데이터 < _x0030_06의 xmlns = ""> < _x0030_06_Child1> 데이터 무리 < _x0030_06_Child2> 무리 < _x0030_06_Child2_Child1> A, 데이터의 무리 < _x0030_06_Child2> < _x0030_06_Child2_Child1> B 데이터 무리 < _x0030_06_Child2> 0 123,_x0030_06_Child2_Child1> B 데이터 < _x0030_06의 xmlns = ""> < _x0030_06_Child1> 데이터 < 무리 _x0030_06_Child2> < _x0030_06_Child2_Child1> A, 데이터의 무리 < _x0030_06_Child2> < _x0030_06_Child2_Child1> B, 무리 무리 데이터 중

관련 문제