맵 편집기 확장(BizTalk Server 샘플)
Extending Mapper 샘플에서는 BizTalk 맵 편집기를 사용 및 확장하는 방법을 보여 줍니다. 샘플에는 BizTalk Mapper의 다양한 기능을 보여주는 여러 BizTalk Server 맵 파일(.btm)이 포함되어 있습니다.
이 샘플의 용도
Extending Mapper 샘플에서는 내용 기준 라우팅(CBR)을 사용하며 오케스트레이션을 사용하지 않습니다. 이 샘플은 샘플 송신 포트에 필터를 지정하여 샘플 수신 포트에 직접 연결됩니다. 맵은 송신 포트에 지정되며 처리된 문서에 적용됩니다.
이 샘플이 있는 위치
<샘플 경로>\XmlTools\ExtendingMapper
다음 표는 이 샘플의 파일을 보여 주고 각각의 용도에 대해 설명합니다.
파일 | Description |
---|---|
MapperClassLibrary\AssemblyInfo.cs, MapperClassLibrary\MapperClassLibrary.csproj, MapperClassLibrary\MapperHelper.cs, MapperClassLibrary\MapperClassLibrary.sln | Microsoft® Visual Studio® 프로젝트 파일 및 Visual C# ® 원본 파일. |
Cleanup.bat | 어셈블리의 배포를 취소하고 GAC(전역 어셈블리 캐시)에서 어셈블리를 제거하는 데 사용됩니다. |
Destination.xsd | 스키마 파일입니다. |
ExtendingMapper.btproj, ExtendingMapper.sln | 이 샘플에 사용할 BizTalk 프로젝트 및 솔루션 파일입니다. |
ExtendingMapper.xml | 소스 XML입니다. |
ExtendingMapperBinding.xml | 바인딩 XML입니다. |
ExternalAssembly.xml | 외부 어셈블리 XML입니다. |
OverridingMapXslt.btm | 맵 파일. |
OverridingMapXslt.xml | 재정의 맵 XML입니다. |
OverridingMapXslt.xslt | 재정의 맵 스타일시트입니다. |
Scriptor_CallExternalAssembly.btm | 샘플 맵 파일입니다. |
Scriptor_GlobalVariableInInlineScript.btm | 샘플 맵 파일입니다. |
Scriptor_InlineScripts.btm | 샘플 맵 파일입니다. |
Scriptor_InlineXslt.btm | 샘플 맵 파일입니다. |
Scriptor_InlineXsltCallingExternalAssembly.btm | 샘플 맵 파일입니다. |
Scriptor_XsltCalltemplate.btm | 샘플 맵 파일입니다. |
Setup.bat | 샘플을 빌드하고 초기화하는 데 사용됩니다. |
Source.xsd | 스키마 파일입니다. |
이 샘플 빌드 및 초기화
다음 절차를 사용하여 Extending Mapper 샘플을 빌드하고 초기화합니다.
이 샘플을 빌드 및 초기화하려면 다음을 수행하십시오.
명령 창에서 디렉터리(cd)를 다음 폴더로 변경합니다.
<샘플 경로>\XmlTools\ExtendingMapper
다음 작업을 수행하는 Setup.bat 파일을 실행합니다.
이 샘플의 입력(\In) 및 출력(\Out) 폴더를 만듭니다.
이 샘플에 대한 Visual Studio 프로젝트를 컴파일 및 배포합니다.
BizTalk Server 수신 위치와 송신 및 수신 포트를 만들고 바인딩합니다.
Scriptor_CallExternalAssembly.btm 또는 Scriptor_InlineXsltCallingExternalAssembly.btm 맵을 사용하려면 Visual Studio에서 ExtendingMapper.sln을 열고 다음과 같이 수정합니다(그렇지 않은 경우 3단계로 이동).
솔루션 탐색기에서 Scriptor_CallExternalAssembly.btm을 엽니다.
맵 편집기 그리드에서 Scripting 펑토이드를 선택합니다.
속성 표에서 스크립트 속성을 선택하고 줄임표(...) 단추를 클릭하여 펑토이드 스크립트를 구성합니다.
Scripting 펑토이드 구성 대화 상자에서 스크립트 펑토이드 구성을 선택하고 다음을 지정합니다.
설정 값 스크립트 유형 외부 어셈블리 스크립트 어셈블리 Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary 스크립트 클래스 Microsoft.Samples.BizTalk.ExtendingMapper.MapperHelper Script 메서드 MyConcat Visual Studio파일 메뉴에서 저장 을 선택하여 지도 파일에 변경 내용을 저장하고 솔루션을 닫습니다.
아무 키나 눌러 Setup.bat를 계속합니다.
중요
Scriptor_InlineXsltCallingExternalAssembly.btm을 사용하려면 ExternalAssembly.xml 파일을 편집해야 합니다. ExternalAssembly.xml은 BizTalk에서 맵 편집기 확장 개체가 등록된 네임스페이스를 .NET 어셈블리에 매핑하는 데 사용됩니다. 종속 어셈블리가 정규화된 이름(자동으로 생성되는 공개 키 토큰 포함)으로 참조되었으므로 이 값을 업데이트해야 합니다. Scriptor_InlineXsltCallingExternalAssembly.btm을 사용할 필요가 없는 경우에는 a부터 e까지의 단계를 완료할 필요가 없습니다.
Windows Explorer Windows folder>\assembly\로 <이동합니다.
Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
공개 키 토큰 값을 복사합니다.
텍스트 편집기에서 샘플 경로>\XML Tools\ExtendingMapper\ExternalAssembly.xml 엽니다<.
AssemblyName="Microsoft.Samples.BizTalk.ExtendingMapper.MapperClassLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=68496d20c737d84b" 특성을 선택하고 PublicKeyToken 값을 c단계에서 복사한 공개 키 토큰 값으로 바꿉니다.
ExternalAssembly.xml을 저장하고 닫습니다.
참고
이 샘플을 실행하기 전에 빌드 및 초기화 프로세스 동안 보고된 오류가 없는지 확인해야 합니다.
송신 포트를 구성, 등록 및 시작하려면
시작을 클릭하고 모든 프로그램을 선택하고 Microsoft BizTalk Server 선택한 다음 BizTalk Server 관리를 선택합니다.
BizTalk Server 관리 콘솔에서 BizTalk Server 관리를 확장하고 BizTalk 그룹 [<servername>:<management 데이터베이스>]을 클릭하여 애플리케이션을 확장합니다.
ExtendingMapperApplication을 클릭하여 확장한 다음 포트 보내기를 클릭합니다.
오른쪽 창에서 포트 보내기를 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.
ExtendingMapperSP – 송신 포트 속성 대화 상자에서 아웃바운드 맵 페이지를 클릭합니다.
지도 열의 드롭다운 목록에서 필요한 맵을 선택한 다음 확인을 클릭합니다. 다음 표는 맵에 대해 설명합니다.
적용할 맵 속성 Description Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_CallExternalAssembly 이 펑토이드에 대한 입력 매개 변수를 기반으로 맵의 Scripting 펑토이드에서 외부 .NET 어셈블리의 함수를 호출하는 방법을 보여 줍니다. 그러면 맵 파일에서 처리 논리를 명확하게 구분하는 데 도움이 됩니다. 이 맵 파일에서는 이 샘플과 함께 제공되는 어셈블리 MapperClassLibrary.dll을 사용합니다. Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineScripts C#, Visual Basic.NET 및 JScript.NET 같은 .NET 언어를 사용하여 맵 파일의 Scripting 펑토이드 내에 간단한 인라인 스크립트를 작성하는 방법을 보여 줍니다. Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_GlobalVariableInInlineScript 스크립팅 펑토이드의 인라인 스크립트에서 전역 변수를 사용하는 방법을 보여 줍니다. 전역 변수는 일반적으로 여러 스크립팅 펑토이드의 지도 파일에서 상태 정보를 유지하는 데 사용됩니다. Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineXslt 맵의 Scripting 펑토이드 내에서 원시 인라인 XSLT를 사용하여 대상 문서에서 구조를 구성하는 방법을 보여 줍니다. 다른 펑토이드를 사용하여 BizTalk Mapper에서 수행할 수 없는 경우 인라인 XSLT가 있는 Scripting 펑토이드를 사용하여 대상 문서의 일부를 구성할 수 있습니다. Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_XsltCalltemplate 맵의 Scripting 펑토이드 내에서 XSLT 호출 템플릿을 사용하여 대상 문서에서 구조를 만드는 방법을 보여 줍니다. 인라인 XSLT에 비해 XSLT 호출 템플릿의 장점은 호출 템플릿이 매개 변수를 수락할 수 있으므로 Scripting 펑토이드에 대한 입력 매개 변수를 기반으로 구조를 만들 수 있다는 것입니다. 다른 펑토이드를 사용하여 BizTalk Mapper에서 수행할 수 없는 경우 인라인 XSLT가 있는 Scripting 펑토이드를 사용하여 대상 문서의 일부를 구성할 수 있습니다. Microsoft.Samples.BizTalk.ExtendingMapper. Scriptor_InlineXsltCallingExternalAssembly 맵에 있는 Scripting 펑토이드의 인라인 XSLT 내부에서 외부 .NET 어셈블리를 호출하는 방법을 보여 줍니다. 호출할 외부 .NET 어셈블리의 세부 정보를 포함하는 사용자 지정 확장 파일 ExternalAssembly_extxml.xml BizTalk Mapper 그리드의 사용자 지정 확장 XML 속성을 재정의하는 방법을 설명합니다. 다른 펑토이드를 사용하여 Mapper UI에서 이 작업을 수행할 수 없을 때마다 인라인 XSLT가 있는 Scripting 펑토이드를 사용하여 대상 문서의 일부를 구성할 수 있습니다. Microsoft.Samples.BizTalk.ExtendingMapper. OverridingMapXslt BizTalk 맵 편집기 파일의 컴파일된 XSLT를 사용자 지정 XSLT 파일을 사용하여 완전히 재정의하는 방법을 보여 줍니다. 사용자 지정 XSL 경로속성과 선택적으로 BizTalk Mapper 그리드의 사용자 지정 확장 XML 속성을 재정의하여 이 작업을 수행할 수 있습니다. 제공하는 사용자 지정 XSLT 파일은 런타임에 사용하려는 프로젝트의 컴파일된 BizTalk Server 어셈블리에 포함되어 있습니다. 이 경우 맵 파일(.btm)의 내용은 무시됩니다. 이 맵 파일은 각각 사용자 지정 XSL 경로 및 사용자 지정 확장 XML 속성에 OverridingMapXslt.xslt 및 OverridingMapXslt.xml 사용합니다.
솔루션 탐색기에서 맵 파일의 유효성을 검사할 수 있습니다. 그런 다음 BizTalk Mapper 그리드의 사용자 지정 XSL 경로 속성을 편집하고 사용할 수 있는 템플릿 파일로 사용할 수 있습니다. BizTalk 맵 편집기를 사용하여 이 XSLT를 만들 수 없는 경우에는 언제든지 이 옵션을 사용할 수 있습니다.
이 샘플 실행
다음 절차를 사용하여 Extending Mapper 샘플을 실행합니다.
이 샘플을 실행하려면
입력 파일 ExtendingMapper.xml 샘플 경로>\XmlTools\ExtendingMapper\In의 입력 폴더<에 복사합니다.
파일이 변환되고 Samples Path>\XmlTools\ExtendingMapper\Out 폴더로 라우팅<되는 방식을 확인합니다. 변형 내용은 적용한 맵을 기반으로 결정됩니다.