Salesforce Migration Tool

오픈소스 비즈니스 컨설팅
둘러보기로 가기 검색하러 가기

Apache Ant를 사용하여 Apex Code를 deploy, undeploy하는 Windows 콘솔 기반의 Force.com 마이그레이션 도구인 Force.com Migration Tool을 정리 합니다.

Force.com Migration Tool 설치

사전 준비 사항

Migration Tool 설치

  • "설정 -> App 설정 -> 개발 -> 도구" 메뉴에서 "Force.com 마이그레이션 도구" 링크를 선택 하여 설치 프로그램(salesforce_ant_23.0.zip)을 다운로드 합니다.
  • 다운로드 받은 파일의 압축을 풀어서 저장 합니다.
  • ant-salesforce.jar 파일을 $ANT_HOME/lib/ 폴더로 복사 합니다.

Salesforce Ant Task 구조

  • 디렉토리 구조 및 파일 구조
  • build.properties
  • sf.username에 세일즈포스닷컴 로그인 아이디를 설정한다.
  • sf.password에 세일즈포스닷컴 로그인 암호를 설정한다. Windows에서 작업을 하므로 암호뒤에 보안 토큰을 붙여서 사용하여야 한다.
보안 토큰은 세일즈포스닷컴에 로그인하여 "설정 -> 개인 설정 -> 내 개인 정보 -> 내 보안 토큰 재설정" 메뉴에서 새로 발급할 수 있다.
  • build.xml
<target name="deployCode">
    <sf:deploy username="${sf.username}" password="${sf.password}" serverurl="${sf.serverurl}" deployroot="codepkg">
        <runTest>SampleDeployClass</runTest> : 여기에 deploy시 Trigger를 테스트할 Class를 지정한다.
    </sf:deploy>
</target>
deployroot는 설치할 패키지명(폴더명)을 지정한다.
예를 들어 계정(account)과 관련된 Apex Code의 경우 account로 설정을 하고 $ApexCode_HOME/account 폴더를 만들어 작업을 한다.
runTest에 Trigger를 테스트할 Class를 지정한다.
<target name="undeployCode">
    <sf:deploy username="${sf.username}" password="${sf.password}" serverurl="${sf.serverurl}" deployroot="removecodepkg"/>
</target>
deployroot는 삭제할 패키지명(폴더명)을 지정한다.
예를 들어 계정(account)과 관련된 Apex Code의 경우 accountRemove로 설정을 하고 accountRemove 폴더를 만들어 작업을 한다.
  • codepkg 디렉토리
  • 도스창에서 ant deploy 명령을 사용하여 Apex Code를 deploy한다.
  • package.xml 파일
fullName에 deploy시에 사용할 팩키지명(폴더명)을 지정한다.
<types>
    <members>SampleDeployClass</members>      : 여기에 deploy할 Class를 지정한다.
    <members>SampleFailingTestClass</members> : 여기에 deploy할 Class를 지정한다.
    <name>ApexClass</name>
</types>
<types>
    <members>SampleAccountTrigger</members> : 여기에 deploy할 Trigger를 지정한다.
    <name>ApexTrigger</name>
</types>
  • classes 폴더 : Apex Code 중 Class 파일을 저장
  • SampleDeployClass.cls : deploy할 Class 파일을 작성한다.
  • SampleDeployClass.cls-meta.xml : 수정하지 않고 그대로 사용한다.
  • triggers 폴더 : Apex Code 중 Trigger 파일을 저장
  • SampleAccountTrigger.trigger : deploy할 Trigger 파일을 작성한다.
  • SampleAccountTrigger.trigger-meta.xml : 수정하지 않고 그대로 사용한다.
  • removecodepkg 디렉토리
  • 도스창($ApexCode_HOME)에서 ant undeploy 명령을 사용하여 Apex Code를 undeploy한다.
  • package.xml 파일
fullName을 deploy시에 사용한 fullName으로 수정한다.
  • destructiveChanges.xml 파일
deploy시에 사용한 package.xml 파일의 내용을 여기에 복사한다. 만일 전체를 삭제하지 않을 경우에는 members 중에서 삭제할 members만 남겨둔다.

실행 환경 구성

Force.com Migration Tool의 실행 환경을 구성 합니다.

  • build.properties
sf.serverurl = https://login.salesforce.com
sf.username = 로그인 아이디
sf.password = 비밀번호
  • build.xml
<project name="SFDC Library" default="deployD1" 
        basedir="." xmlns:sf="antlib:com.salesforce">
   <property file="build.properties" />
   <property environment="env" />

   <target name="retrieveSalesTarget">
       <echo message="SalesTarget : from Develop 1" />
       <mkdir dir="SalesTarget" />
       <sf:retrieve username="${sf.userD1}" password="${sf.passwordD1}" 
           serverurl="${sf.serverurl}" 
           packageNames="SalesTarget" retrieveTarget="SalesTarget" />
   </target>

   <target name="deployTest" depends="retrieveSalesTarget">
       <echo message="RollupSummary : from Develop 1 to Develop 2" />
       <sf:deploy retrieve username="${sf.userD1}" password="${sf.passwordD1}" 
           serverurl="${sf.serverurl}" deployRoot="SalesTarget" />
   </target>
</project>
  • Force.com Migration Tool 실행
ant deployTest

참고 문헌

지원 업체

SuiteCRM을 사용한 영업관리, 고객관리는 아래 담당자에게 연락하여 주시면, 빠르고 친절하게 전문적인 답변을 드리겠습니다.

영업 문의 sales@obcon.biz 010-4667-1106 영업 대표
기술 문의 tech@obcon.biz 구축/컨설팅 담당
고객 지원 support@obcon.biz 고객 지원 담당

OBCon 홈페이지 바로가기