Aaron H. Kim Fearless Integration Maniac

동적 논리 포트를 통한 Adapter 사용하기

2008-03-16
Aaron Kim

오늘 동적 논리 포트를 사용할 일이 생긴 김에 나중을 위해 여기에 정리해둘까 합니다. 혹, 동적 논리 포트를 통해 Adapter를 사용할 일이 생긴다면 본문을 참조하시면 되겠습니다. 여기서는 파일 어댑터를 사용하고 있지만, 다른 어댑터 사용시에도 공통적으로 필요한 지식입니다.

일단 관리자로 하여금 프로덕션 환경에서 물리적인 위치를 지정할 수 있도록 유연성을 부여하기 때문에 가장 자주 쓰이는 타입인 “나중에 지정” 논리 포트를 사용하지 않고, “동적” 논리 포트를 사용한 배경은 다음과 같습니다.

Requirement

  1. Flat File 명은 “GIM015″ + 현재날짜(YYYYMMDD) + “(id).txt”로 고정한다.
  2. 현재 날짜 기준 파일명 고정이므로 새로운 트랜잭션이 발생할 경우, 기존 파일에 추가(Append)한다.

위와 같은 사용자 요구사항에서 유일하게 문제가 되는 것은 YYYYMMDD 입니다. 파일명이 고정되어 있지 않고 동적으로 변할 경우입니다.

이런 경우, 비즈톡 서버가 제공하는 매크로로 해결할 수 있다면 굳이 동적 논리 포트를 사용할 이유가 없습니다.

그러나 Macro중에 쓸만한 것이 없어 보입니다.

%datetime% 의 경우 YYYY-MM-DDThhmmss %datetime_bts2000% 의 경우 YYYYMMDDhhmmsss %datetime.tz% 의 경우 YYYY-MM-DDThhmmssTZD

따라서 동적 논리 포트를 사용합니다.

다음, Assignment Shape에서 코드를 통해 Address를 지정해줍니다.

siMsgFilePath = @”file://D:\Projects\EAM_EAI\Filedrop\Provisioning\iMsg\”;
siMsgFileName = GIM015 + System.DateTime.Now.ToString(yyyyMMdd) + (id).txt;
Spt_INT_PRO_004B0_TgtiMsg(Microsoft.XLANGs.BaseTypes.Address) = siMsgFilePath + siMsgFileName;
Msg_TgtiMsg(FILE.CopyMode) = 0; // 0 – Append, 1 – Create New, 2 – Overwrite

이렇게 설정해주시면 원래의 요구 사항을 만족시킬 수 있습니다.

그렇다면 이제 퀴즈!

위에서 우리는 Microsoft.XLANGs.BaseTypes.Address 만을 지정해주었습니다. Microsoft.XLANGs.BaseTypes.TransportType 값을 지정해주지 않았지요. 그렇다면 비즈톡은 어떻게 TranportType을 알아낼까요?

네, 그렇습니다.

Address가 file:// 시작할 경우, 비즈톡은 File Adpater를 사용해야 한다는 것을 인식하고 TransportType을 알아서 설정합니다. 똑똑하군요. 그렇다면 두 번째 퀴즈!!!

Address가 http:// 나 https:// 로 시작할 경우 비즈톡은 어떤 Adapter를 사용할까요? http나 https의 경우, 사용할 수 있는 어댑터는 위의 경우처럼 하나가 아닙니다. WCF-BasicHttp, WCF-WsHttp, WCF-Custom, 그리고 Http Adapter까지 해서 총 4개가 존재하는군요. 따라서 Address가 http:// 나 https:// 로 시작할 때 Http Adpater외의 것을 사용하려면 TransportType 값을 지정해주셔야 합니다. Default는 Http Adapter를 사용합니다.


Similar Posts

Comments