2017-05-03 3 views
0

파일이 무작위로 수신되는 여러 개의 플랫 파일 (CSV) (여러 레코드 포함)이 있습니다. 고유 한 ID 필드로 레코드 (레코드)를 결합해야합니다.BizTalk에서 여러 파일을 결합하는 방법?

모든 파일에 대해 고유 한 고유 한 필드가없는 경우 어떻게 결합 할 수 있습니까? 어떤 파일을 먼저 받을지 모르겠습니다.

여기에 일부 파일의 예입니다 : 실시간으로 enter image description here

16 개 파일이 있습니다. 이 예제에서는 필드와 레코드가 훨씬 더 많습니다.

+0

내가 적어도 하나 개의 파일이 상관 관계를 포함한다고 가정에서 수정 건가요? 특정 기간 내에 파일이 제공 될 예정입니까? –

+0

상관 관계를 포함하는 파일이 하나도 없습니다. 우리는 파일 체인과 상관 관계 체인을 가지고 있습니다. 파일은 1-15 분 내에 도착합니다 (우리는 그것을 얻기 위해 평행 호송을 사용합니다). 우리는 "지도"를 사용하여 파일에 합류하려고하지만 논리에 따라 그렇게 할 수있는 방법을 찾을 수 없습니다 (고유 한 필드로 서로 연결하고 하나의 파일을 출력). –

답변

4

나는이 순수 XSLT/BizTalk 오케스트레이션에서/C# 코드를하려고 노력 피할 것이다. 이들은 매우 단순한 플랫 파일입니다. SQL에로드하고 데이터를 결합하는보기를 작성하십시오.

당신은 여전히 ​​파일을로드/픽업 BizTalk를 사용할 수 있습니다. BizTalk을 사용하여 데이터를 조인하고 최종 메시지를 보내는보기 또는 프로 시저를 실행할 수도 있습니다.

  1. 당신이 함께 데이터를 가입하려는 않는 경우 :

    이 여기에 어떻게 작동하는지 안내하는 데 도움이 될 몇 가지 질문이 있습니다? 어떤 것을 유발할 것입니까? (하루 중 특정 시간에 특정 수의 메시지가 수신 된 경우, 특정 유형의 메시지 일 경우, 특정 레코드 등)? BizTalk는 충분한 정보가 들어 왔을 때/알맞은 데이터를 어떻게 알 수 있습니까?

  2. 무엇이 데이터의 정식 버전이 생겼는데? 이 모든 파일의 모든 데이터가 실제로 하나의 개체 (예 : '거래'또는 '전송'등)와 상관 관계가 있습니까?

나는 아마도 정식 법인을 정의하는 것으로 시작한 다음 이러한 종류의 사례에 대해 SQL을 사용하여 정식 법인의 "완전한"그림을 얻는 경로를 살펴볼 것입니다.

+1

이것은 제가 제안하려고했던 대답입니다. +1 –

+0

답변 해 주셔서 감사합니다. 1. 데이터는 마지막 16 번째 파일을받은 직후에 합류해야합니다. 각 파일에는 자체 스키마가 있으며 이제는 병렬 대기 행렬을 사용하여 모두 대기합니다. 2. 네 모든 데이터가 하나의 엔티티에 상관 관계 (하지만 우리는 체인 형 상관이) 우리가 가고 싶어 시간이 정확한 순간 이 작업의 종류 또는 우리 자신의 솔루션을 작성하는 것를 해결하기는 BizTalk 적절한 도구입니다 의 것이 더 좋아하는 것은 우리가 분명히 단순히 XSLT 또는 C# .NET을 사용하여이 작업을 수행 할 수있는 문제 –

+0

를 해결할 수 SQL 프로 시저 또는 뷰의를 사용하지 않으려는하지만 사용자 정의 XSLT를 필요로합니다 왜 (는 BizTalk 매퍼는 매우 지원을 제공하지 않습니다 데이터 그룹화/조인) 또는 사용자 지정 C# 코드. SQL은 유지 보수하고 이해하기가 훨씬 쉬울 것입니다. –

관련 문제