전처리 또는 후처리 스크립트 만들기
응용 프로그램이 배포될 때 작업을 수행하는 스크립트를 만든 다음 배포 프로세스 중 이 스크립트가 실행될 시기를 정의할 수 있습니다. 코드를 구분하는 환경 변수를 사용하여 동일한 스크립트에 설치 코드와 정리 코드를 모두 포함할 수 있습니다. 또한 명령줄 인수를 스크립트에 전달할 수 있습니다.
주의
프로덕션 시스템용 스크립트는 항상 자동 모드로 작성해야 합니다. 이는 사용자 입력을 기다리는 스크립트가 입력을 받을 때까지 BizTalk 데이터베이스를 잠그고 액세스할 수 없게 만들기 때문입니다.
배포 중 스크립트 실행 시기 지정
응용 프로그램에 스크립트를 System.BizTalk:PreProcessingScript(전처리 스크립트) 또는 System.BizTalk:PostProcessingScript(후처리 스크립트)로 추가할 때 스크립트가 실행될 시기를 지정합니다.
전처리 및 후처리 스크립트는 다음과 같이 실행됩니다.
전처리 스크립트는 가져오기 또는 설치 프로세스 시작 시 실행됩니다.
후처리 스크립트는 가져오기 또는 설치 프로세스 종료 시 실행됩니다.
제거 중 모든 스크립트는 설치 시 실행되는 순서와 반대로 실행됩니다. 따라서 후처리 스크립트는 제거 시작 시 실행되고 전처리 스크립트는 제거 종료 시 실행됩니다.
설치가 실패하면 스크립트는 해당 롤백 작업을 사용하여 역순으로 호출됩니다.
호출되면 환경 변수가 배포 상태를 나타내는 방법에 설명된 대로 환경 변수 BTAD_ChangeRequestAction, BTAD_InstallMode 및 BTAD_HostClass 확인하여 실행 중인 배포 상태(설치, 가져오기, 삭제, 제거, 가져오기 롤백 또는 설치 롤백)를 결정합니다. 변수에 대한 참조 정보는 사전 및 사후 처리 스크립트 환경 변수를 참조하세요.
애플리케이션에 스크립트를 추가하는 방법에 대한 지침은 애플리케이션에 사전 또는 사후 처리 스크립트를 추가하는 방법을 참조하세요.
참고
이 항목의 뒷부분에서 설명한 대로, 스크립트에 명령줄 인수를 포함하려면 AddResource 명령을 사용하여 스크립트를 추가해야 합니다.
지원되는 스크립트 파일 확장명
지원되는 스크립트 파일 확장명은 .com, .exe, .bat, .cmd, .vbs, .vbe, .js, .jse, .wsf 및 .wsh입니다. 이 확장명 집합은 PATHEXT 환경 변수에서 정의됩니다.
오류 기록
가장 좋은 방법은 오류를 파일에 기록하도록 각 스크립트를 구성하는 것입니다. 왜냐하면 Windows Installer가 스크립트에 생성된 오류를 기록하지 않기 때문입니다. 해결해야 하는 오류가 있으면 스크립트를 실행한 후 이러한 로그를 확인해야 합니다.
오류가 발생한 시기를 확인할 수 있도록 로그 파일에 날짜 및 시간을 포함할 수 있습니다.
다음 코드를 사용하여 로그 파일을 지정한 다음 해당 로그 파일에 오류를 기록합니다.
Set LogFile=<full path of log file>
…
echo %DATE% %TIME% <text> >> %LogFile%
다음 예제에서 공용 키 토큰이 정의되어 있지 않으면 지정된 로그 파일에 항목이 작성됩니다. 로그 파일에서 "Public key should be set in script" 텍스트가 있는 줄에 날짜 및 시간이 기록됩니다.
set LogFile=C:\ScriptLog.txt
set PublicKeyToken=e5fd0ea4ecd37420
if not defined PublicKeyToken (
echo %DATE% %TIME% Public key should be set in script >> %LogFile%
스크립트에 줄을 exit /b 1
추가하여 Windows Installer에 대한 오류 코드를 생성하여 롤백할 수도 있습니다.
다음 예제에서 공용 키 토큰이 정의되어 있지 않으면 스크립트는 Windows Installer에 오류를 반환하고 Windows Installer는 롤백됩니다.
set LogFile=C:\ScriptLog.txt
set PublicKeyToken=e5fd0ea4ecd37420
if not defined PublicKeyToken (
echo %DATE% %TIME% Public key should be set in script >> %LogFile%
exit /b 1
동일한 스크립트에 설치 및 정리 코드 포함
스크립트는 설치 및 제거 시 반대 순서로 실행되기 때문에 동일한 스크립트에서 조건문 내에 설치 및 정리 코드를 포함시킬 수 있습니다. 예를 들어 다음과 같이 설치 모드를 확인하는 설치 코드를 조건문 내에 넣을 수 있습니다.
%BTAD_ChangeRequestAction%=Update AND %BTAD_InstallMode%=Install
다음과 같이 설치 모드를 확인하는 정리 코드를 조건문 내에 한정할 수 있습니다.
%BTAD_ChangeRequestAction%=Delete AND %BTAD_InstallMode%=Uninstall
명령줄 인수 전달
BTSTask AddResource 명령을 사용하여 응용 프로그램에 스크립트를 추가할 때 다음 매개 변수를 지정하여 스크립트에 명령줄 인수를 전달할 수 있습니다. 이렇게 하면 스크립트가 호출될 때 스크립트로 인수가 전달됩니다.
/Property:Args="argument list"
참고
한 응용 프로그램에 전처리 또는 후처리 스크립트가 여러 개 있는 경우 이들 스크립트는 특정 순서 없이 실행됩니다.
중요
스크립트는 가져오기와 동일한 트랜잭션에 등록되어 있지 않으므로 특히 가져오기 중 실행되는 스크립트에서는 BTSTask 명령을 사용하지 마십시오.
AddResource 명령을 사용하여 애플리케이션에 스크립트를 추가하는 방법에 대한 지침 은 AddResource 명령: 전처리 스크립트를 참조하세요. AddResource 명령: 사후 처리 스크립트도 참조하세요.