다음을 통해 공유


FlatFileReceive(BizTalk Server 샘플)

FlatFileReceive 샘플에서는 BizTalk Server 사용하여 플랫 파일을 해당하는 .xml 파일로 처리하는 방법을 보여 줍니다.

이 샘플의 용도

이 샘플에서는 FFInput 폴더를 수신 위치로 구성합니다. 샘플 파일 FlatFileReceive_in.txt 같은 파일을 이 폴더에 배치하면 BizTalk Server 다음 단계 시퀀스를 사용하여 이 파일의 메시지를 처리합니다.

  1. 수신 위치 폴더 FFInput에서 입력 파일의 메시지를 읽습니다.

  2. 수신 파이프라인에서 플랫 파일 디스어셈블러 구성 요소가 플랫 파일 형식의 메시지를 동등한 XML 메시지로 변환합니다.

  3. MessageBox 데이터베이스에서 메시지가 FILE 송신 포트로 라우팅되면 송신 어댑터 폴더 FFOutput의 파일에 XML 메시지가 기록됩니다.

이 샘플이 디자인된 방식 및 이유

샘플 메시지는 이 샘플의 기본 디자인에서 큰 부분을 차지합니다. 플랫 파일 메시지는 플랫 파일 디스어셈블러와 사용자 지정 수신 파이프라인에 있는 플랫 파일 스키마를 사용하여 디스어셈블해야 합니다. 이러한 디자인 요소 및 다른 디자인 요소는 다음 표에 요약되어 있습니다.

디자인 요소 선택 이유
사용자 지정 수신 파이프라인 - 사용자 지정 파이프라인은 플랫 파일 디스어셈블러 및 플랫 파일 스키마를 사용하여 인바운드 구매 주문 메시지를 변환합니다. 플랫 파일 디스어셈블러는 자체 파이프라인이 아니며 BizTalk Server 관리 콘솔에서 수신 파이프라인을 구성할 때 사용할 수 없습니다.
플랫 파일 스키마 - 동일한 레코드 및 필드 특성(구조 포함)을 모두 XML 스키마로 정의하고 플랫 파일 instance 메시지를 동등한 XML instance 메시지로 변환하는 데 필요한 모든 플랫 파일 특성을 정의하는 메커니즘을 제공합니다(또는 그 반대의 경우도 마찬가지).
구독 필터 - 구독 필터는 속성 필드를 기반으로 하나 이상의 조건을 충족하는 메시지를 캡처하여 실제 라우팅을 수행합니다.
XMLTransmit - 필요한 경우 나가는 XML 메시지의 기본 어셈블리를 수행합니다. PassThruTransmit 파이프라인은 추가 지원을 제공하지 않습니다.

이러한 요소가 결합되어, 수신 위치로부터 플랫 파일 형식의 구매 주문 메시지를 받은 후 송신 위치에 결과 XML 표시를 작성하여 보내는 솔루션이 생성됩니다.

이 샘플의 디자인에는 다음과 같은 고려 사항이 적용됩니다.

  • 플랫 파일 스키마(PO.xsd)에 구매 주문 플랫 파일의 구조를 설명하는 확장 구조가 포함됩니다. 수동으로 이러한 파일을 만들 수도 있지만 대부분 플랫 파일 마법사를 사용하여 생성할 수 있습니다.

  • 플랫 파일 스키마는 elementFormDefault 값으로 Unqualified를 사용합니다. 그러면 올바른 결과가 생성되지만 예상하지 못한 추가 XML 네임스페이스(xmlns) 정규화 문제가 발생합니다. 이 문제를 방지하려면 elementFormDefault로 Qualified를 사용합니다.

  • XmlTransmit은 송신 파이프라인으로 사용됩니다. 송신 포트에 속성 강등 또는 기타 메시징 처리가 필요 없는 경우 PassThruTransmit 파이프라인을 사용합니다.

이 샘플이 있는 위치

<샘플 경로>\Pipelines\AssemblerDisassembler\FlatFileReceive\

다음 표는 이 샘플의 파일을 보여 주고 각각의 용도에 대해 설명합니다.

파일 Description
Cleanup.bat 어셈블리 배포를 취소하고 전역 어셈블리 캐시에서 어셈블리를 제거하는 데 사용됩니다. 송신 및 수신 포트를 제거합니다. 필요한 경우 Microsoft IIS(인터넷 정보 서비스) 가상 디렉터리를 제거합니다.
FFReceivePipeline.btp BizTalk Server 플랫 파일 디스어셈블러 구성 요소를 사용하여 파이프라인 파일을 수신합니다.
FlatFileReceive.btproj, FlatFileReceive.sln 이 샘플에 대한 프로젝트 및 솔루션 파일입니다.
FlatFileReceive_in.txt 샘플 입력 파일입니다.
FlatFileReceiveBinding.xml 포트 바인딩과 같은 자동화된 설치에 사용됩니다.
PO.xsd 인바운드 플랫 파일용 스키마입니다.
Setup.bat 이 샘플을 빌드 및 초기화하는 데 사용됩니다.

이 샘플의 사용 방법

고유한 플랫 파일 처리 솔루션의 기초로 이 샘플을 사용합니다. 이 샘플에 사용된 디자인 요소는 대부분 고유한 요구 사항에 맞게 확장할 수 있습니다.

이 샘플 빌드 및 초기화

  1. 명령 창에서 다음 폴더로 이동합니다.

    <샘플 경로>\Pipelines\AssemblerDisassembler\FlatFileReceive

  2. 다음 작업을 수행하는 Setup.bat 파일을 실행합니다.

    • 다음 폴더에 이 샘플의 입력(FFInput) 및 출력(FFOutput) 폴더를 만듭니다.

      <샘플 경로>\Pipelines\AssemblerDisassembler\FlatFileReceive

    • 이 샘플에 대한 Visual Studio 프로젝트를 컴파일 및 배포합니다.

    • BizTalk Server 수신 위치와 송신 및 수신 포트를 만들고 바인딩합니다.

      참고

      이 샘플에서는 포트 Warning: Receive handler not specified for receive location "FlatFileReceive_RL"; updating with first receive handler with matching transport type. 를 만들고 바인딩할 때 다음과 같은 경고를 표시합니다. 이러한 경고를 무시해도 됩니다. (사용자 설치에서 이름 지정에 차이가 있을 수 있는 경우 이를 수용하기 위해 호스트 이름과 수신 핸들러가 바인딩 파일에서 생략되었습니다.)

    • 수신 위치를 사용하도록 설정하고 송신 포트를 시작합니다.

참고

이 샘플을 실행하기 전에 BizTalk Server가 빌드 및 초기화 프로세스 동안 오류를 보고하지 않았는지 확인해야 합니다.

참고

Setup.bat를 실행하지 않고 이 샘플에서 프로젝트를 열고 빌드하려는 경우 먼저 .NET Framework Strong Name Utility(sn.exe)를 사용하여 강력한 이름 키 쌍을 만들어야 합니다. 이 키 쌍을 사용하여 결과 어셈블리에 서명을 합니다.

참고

Setup.bat가 변경한 내용을 실행 취소하려면 Cleanup.bat를 실행합니다. Setup.bat를 두 번째로 실행하기 전에 Cleanup.bat를 실행해야 합니다.

이 샘플 실행

  1. FlatFileReceive_in.txt 파일의 복사본을 FFInput 폴더에 넣습니다.

  2. FFOutput 폴더에 생성된 .xml 파일을 확인합니다. 출력 파일의 이름은 메시지 ID GUID를 기반으로 합니다. 이 파일에는 수신 폴더에 넣은 플랫 파일과 동등한 XML 파일이 포함됩니다.

이 샘플에서 사용된 클래스 또는 메서드

구성 스크립트 Setup.bat와 Cleanup.bat는 다음과 같은 관리 WMI(Windows Management Instrumentation) 스크립트를 사용합니다.

  • Start Send Port\StartSendPort.vbs

  • Enable Receive Location\EnableRecLoc

  • Remove Send Port\RemoveSendPort

    설정 및 정리 배치 파일은 다음과 같이 BTSTask를 사용합니다.

  • 바인딩 파일을 적용하고 애플리케이션, 포트 및 바인딩을 만드는 BTSTask ImportBindings

  • FLATFileReceiveApplication을 제거하는 BTSTask RemoveApp

참고 항목