양 당사자 간 작업 PIPAutomation 오케스트레이션
DoubleAction.odx 샘플에서는 오케스트레이션을 구현하여 PIP(이중 작업 파트너 인터페이스 프로세스) 0C2, 0C4, 3A2 및 3A4에 대한 응답을 자동으로 생성하는 방법을 보여 줍니다. 이 샘플 프로젝트를 확장하면 추가 이중 동작 PIP를 지원할 수 있습니다.
참고
샘플 폴더에 제공된 맵은 샘플입니다. 이를 사용하려면 특정 요구 사항에 따라 변경해야 합니다.
참고
단일 작업 PIP가 아닌 이중 작업 PIP만 지원하도록 이 샘플 프로젝트를 확장해야 합니다. 이 오케스트레이션은 단일 작업 PIP를 처리하도록 확장하면 오류를 반환합니다. 이 오케스트레이션이 단일 작업 PIP를 처리하지 않도록 하려면 아래의 메시지 필터링 Single-Action 섹션을 참조하세요.
기본적으로 Microsoft® BizTalk Accelerator for RosettaNet(BTARN) 설치 프로그램은 이 샘플을 <drive>:\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\PIPAutomation\DoubleAction에 설치합니다.
이 샘플 프로젝트에는 다음이 포함됩니다.
저장 프로시저(
PipAutomationGetAction)
PIP 0C2, 0C4, 3A2 및 3A4에 대한 새 작업 메시지를 검색합니다.SQL 저장 프로시저에 바인딩된 수신 위치(MessagesToLOB_Receive_Location)입니다.
각 PIP를 처리하고, 각 PIP에 대한 맵을 기반으로 적절한 응답을 생성하고, BTARNDATA 데이터베이스의 MessagesFromLOB 테이블에 응답을 저장하는 오케스트레이션(DoubleAction.odx)입니다. 오케스트레이션은 Microsoft.Solutions.BTARN.Shared.dll 메서드를 사용하여
RNIFSubmit
메시지를 제출합니다.파일 Setup.bat DoubleAction 오케스트레이션에 사용할 MessagesToLOB_Receive_Port 만드는 데 사용하는 바인딩 파일(DoubleActionBinding.xml)입니다.
샘플을 빌드하고 초기화하는 설치 파일입니다. BizTalk Server 32비트 컴퓨터에서 <실행 중인 경우 drive>:\Program Files\Microsoft BizTalk Accelerator for RosettaNet \SDK\PIPAutomation\DoubleAction 폴더에서 파일 setup.bat 실행합니다. BizTalk Server 64비트 컴퓨터에서 실행 중인 경우 동일한 폴더에서 setupx64.bat 실행합니다.
오케스트레이션은 BTARNData 데이터베이스의 PipAutomationGetAction 저장 프로시저를 사용하여 메시지를 받습니다(원본 파일은 DoubleAction 디렉터리의 DoubleAction.sql임). 이 저장 프로시저는 MessagesToLOB 테이블에서 메시지를 검색합니다.
추가 이중 작업 PIP를 지원하도록 이 샘플 프로젝트를 확장하려면 이중 작업 PIP에 대한 오케스트레이션에 경로를 추가합니다. 이 경로에는 요청 메시지에 응답 메시지를 생성하는 맵이 포함됩니다. 예제 맵은 3A2 응답 맵 샘플에 대한 3A2 요청 샘플 및 3A4 응답 맵 샘플 [RN3]에 대한 3A4 요청을 참조하세요.
이 샘플을 빌드 및 초기화하려면 다음을 수행하십시오.
명령 프롬프트에서 drive>:\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\PIPAutomation\DoubleAction 폴더를 찾<습니다.
참고
설치 프로그램을 실행하기 전에 메모장에서 DoubleAction.sql 파일(위의 폴더)을 엽니다. 파일 메뉴에서 다른 이름으로 저장을 클릭합니다. 인코딩 목록에서 ANSI를 선택한 다음 저장을 클릭합니다. 예 를 클릭하여 기존 파일을 덮어씁니다.
BizTalk Server 32비트 컴퓨터에서 <실행 중인 경우 drive>:\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\PIPAutomation\DoubleAction 폴더에서 파일 setup.bat 실행합니다. BizTalk Server 설치가 64비트 컴퓨터에서 실행 중인 경우 동일한 폴더에서 setupx64.bat 실행합니다. 배치 파일이 다음 작업을 수행합니다.
BTARNDATA 데이터베이스에 MessagesToLOB 테이블에서 동작 메시지를 검색하는 SQL 저장 프로시저(
PipAutomationGetAction
)를 만듭니다. 이렇게 하면 검색된 레코드를 다시 읽지 않을 수도 있습니다.HeaderHelper .NET 프로젝트를 컴파일하고 어셈블리를 전역 어셈블리 캐시에 등록합니다.
BizTalk Server SQL 수신 포트(MessagesToLOB_Receive_Port)를 만들고 바인딩합니다.
수신 위치(MessagesToLOB_Receive_Location)를 사용하도록 설정합니다.
Double-Action PIPAutomation Orchestration(DoubleAction.odx)을 컴파일하고 배포합니다.
BizTalk Server 오케스트레이션을 바인딩하고 시작합니다.
참고
컴파일하는 동안 샘플에서 몇 가지 경고를 표시합니다. 이러한 경고는 무시하면 됩니다.
참고
이 샘플에서는 프로젝트를 배포할 때 기본 호스트 이름 BizTalkServerApplication 을 사용합니다. 다른 호스트에서 샘플을 실행하려면 SDK>\PIPAutomation\DoubleAction 폴더 아래<의 DoubleActionBinding.xml 있는 기본 호스트 이름을 편집해야 합니다.
Double-Action PIPAutomation 샘플을 실행하려면
홈 역할이 초기자인 3A4 계약을 만듭니다. 홈 organization 대한 GBI를 123456789 설정하고 파트너가 987654321 GBI를 설정합니다. 이렇게 하면 SDK의 LOBApplication 폴더 아래에 있는 SampleInstances 폴더에 제공된 샘플을 사용할 수 있습니다.
루프백 규약 미러링 유틸리티를 사용하여 1단계에서 만든 3A4 PIP에 대한 미러 만듭니다.
LOBApplication.exe SDK 유틸리티를 사용하여 3A4 PIP 요청 메시지를 제출합니다. BTARN SDK에는 설치 디렉터리\SDK\LOBApplication\SampleInstances\3A4_Request.xml 폴더 < 에 입력 샘플이 > 포함되어 있습니다.
BTARNDATA 데이터베이스에서 다음 쿼리를 실행합니다.
Select * from MessagesToLOB
몇 초 후에 이 테이블에 4개의 새 메시지가 표시됩니다. 그 중 두 가지는 승인 신호입니다. 한 가지 신호는 비동기 3A4 요청 메시지입니다. 한 가지 신호는 비동기 3A4 응답 메시지입니다.
참고
Setup.bat가 변경한 내용을 실행 취소하려면 Cleanup.bat를 실행합니다. Setup.bat 다시 실행하기 전에 Cleanup.bat 실행해야 합니다.
설명
공용 오케스트레이션은 승인(ACK 및 NACK 신호 메시지)을 자동으로 생성합니다. LOB(기간 업무) 애플리케이션은 이를 생성할 필요가 없습니다.
MessagesFromLOB 테이블로 라우팅되는 메시지의 형식을 LOBMessage라고 합니다. 스키마는 C:\Program Files\Microsoft BizTalk Accelerator for RosettaNet\SDK\RNIFSchemas\GlobalSchemas\LOBMessage.xsd에서 사용할 수 있습니다. 메서드를 RNIFSubmit
사용하는 경우 메시지 형식으로 작업할 필요가 없습니다. 추가 정보를 사용하여 ServiceContent만 제출하면 됩니다. RNIFSubmit
는 MessagesFromLOB 테이블의 레코드를 채웁니다.
Single-Action 메시지 필터링
이 오케스트레이션은 이중 작업 메시지만 수신해야 합니다. 단일 작업 PIP를 지원하도록 이 샘플 프로젝트를 확장하면 안 됩니다. 이 오케스트레이션을 사용하여 단일 작업 메시지를 처리하는 경우 BTARN에서 오류를 게시합니다. 오케스트레이션이 단일 작업 메시지를 받지 못하도록 하려면 PIPAutomationGetAction 저장 프로시저에서 다음 줄을 변경합니다.
SELECT PIPInstanceID,DestinationPartyName,SourcePartyName,PIPCode,PIPVersion,ServiceContent FROM MessagesToLOB
위의 줄에 단일 작업 메시지를 필터링하는 WHERE 절을 추가합니다. 처리할 모든 단일 작업 메시지를 WHERE 절에 포함합니다. 줄은 다음과 같습니다.
SELECT PIPInstanceID,DestinationPartyName,SourcePartyName,PIPCode,PIPVersion,ServiceContent FROM MessagesToLOB WHERE PIPCode NOT IN ( '0A1', '3B2', '3C3', '0C1', '0C3' )