最近の仕事ではsalesforce.com上での開発をずっとやっている。色々と痛い目を見てノウハウもたまってきたのもあるし、ネット上であまりに情報がないってのもあり、そろそろココにも残しておこうかなと。
salesforce.com(以下、SFDC)は、言わずと知れたSaaSの代名詞のような会社です。これから更にSaaSのようなクラウド化が進み標準となってしまうのか?そして、それでいいのか?は、まだよくわからんです。
で、一発目は。ちょっと頼まれてまとめたので、ついでということで。開発したモジュールをSFDCに展開する方法についてです。
尚、本番環境(SandboxやDeveloper環境ではない)に展開する場合は、テストコードの用意をお忘れなく。
Force.com 移行ツールの使い方
SFDCの運用環境にApexコード等のモジュールを展開するためのツールの1つである「Force.com 移行ツール」とよばれるものの使い方についてまとめます。
必要なツール
- Java SDK 6.1以降
- Apache Ant
・Antの設定については下記サイトを参考にしてみてください。
Antインストール – Apache Antの使い方 - Force.com 移行ツール
1. [設定] – [開発] – [Tools] の順にクリックし、[Force.com 移行ツール] をクリックでダウンロード。
2. ダウンロードした「salesforce_ant.zip」を解凍し、「ant-salesforce.jar」をantのlibフォルダにコピーします。
フォルダ構成
ここではCドライブの直下にSFDCにSIするためのモジュールを配置すると仮定し説明します。下記のようにCドライブの直下に「SFDC_SI」という名前のフォルダを作成し、「[]」の名称のフォルダおよび「package.xml」、「build.xml」、「build.properties」というファイルを配置します。
C:SFDC_SI ├[mod] │ ├[classes] │ ├[pages] │ ├[scontrols] │ ├[staticresources] │ ├[triggers] │ └ package.xml ├ build.properties └ build.xml
また、そろぞれのファイルの設定を以下にまとめます。
基本的に「build.properties」の下記の値をそれぞれの環境にあわせて変更してください。
- sf.username:SFDCに接続するユーザを設定してください。
- sf.password:SFDCに接続するユーザのパスワードを設定してください。必要に応じて、セキュリティトークンも設定してください。
- sf.serverurl:本番および開発環境は「https://www.salesforce.com」、Sandboxは「https://test.salesforce.com」です。
- proxy.host:インターネットに接続する際にProxyサーバ経由で接続している場合は、Proxyサーバのアドレス(ホスト名)を設定してください。
- proxy.port:通常は「8080」で問題ないでしょう。
- proxy.user:Proxyサーバで認証が必要の場合は、認証ユーザを設定してください。
- proxy.pass:Proxyサーバで認証が必要の場合は、認証パスワードを設定してください。
[build.properties]の設定
# build.properties
#
# Specify the login credentials for the desired Salesforce organization
sf.username = <SFDCユーザID>
sf.password = <パスワード><セキュリティトークン>
# Use ‘https://www.salesforce.com’ for production or developer edition (the default if not specified).
# Use ‘https://test.salesforce.com’ for sandbox.
sf.serverurl = https://www.salesforce.com
# If your network requires an HTTP proxy, see http://ant.apache.org/manual/proxy.html for configuration.
proxy.host = <PROXYのIPアドレス>
proxy.port = 8080
proxy.user = <ユーザID>
proxy.pass = <パスワード>
#
[build.xml]の設定
削除する場合は、削除するモジュールを全て設定するようにしてください。
<project name="Sample usage of Salesforce Ant tasks" default="deploy" basedir="." xmlns:sf="antlib:com.salesforce">
<property file="build.properties"/>
<property environment="env"/>
<!-- proxy:プロキシの接続定義 -->
<target name="proxy">
<property name="proxy.port" value=""/>
<property name="proxy.user" value=""/>
<property name="proxy.pass" value=""/>
<setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"
proxyuser="${proxy.user}" proxypassword="${proxy.pass}"/>
</target>
<!-- deployAndAllTest:サーバへの保存&Allテスト実行 -->
<target name="deployAndAllTest" depends="proxy">
<sf:deploy
username="${sf.username}"
password="${sf.password}"
serverurl="${sf.serverurl}"
runAllTests="true"
deployroot="mod"
maxPoll ="2000">
</sf:deploy>
</target>
<!-- deploy:サーバへの保存のみ -->
<target name="deploy" depends="proxy">
<sf:deploy
username="${sf.username}"
password="${sf.password}"
serverurl="${sf.serverurl}"
deployroot="mod"
maxPoll ="2000">
</sf:deploy>
</target>
<!-- deployCodeCheckOnly:ソースチェックのみ。サーバへは保存しない -->
<target name="deployCodeCheckOnly" depends="proxy">
<sf:deploy
username="${sf.username}"
password="${sf.password}"
serverurl="${sf.serverurl}"
deployroot="mod"
checkOnly="true"
maxPoll ="2000">
</sf:deploy>
</target>
<!-- delete:サーバモジュールの削除。削除するモジュール名を指定してください -->
<target name="delete" depends="proxy">
<sf:compileAndTest
username="${sf.username}"
password="${sf.password}"
server="${sf.serverurl}">
<deleteClass>XXXXXXX</deleteClass>
</sf:compileAndTest>
</target>
</project>
[package.xml]の設定
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
<types>
<members>*</members>
<name>ApexClass</name>
</types>
<types>
<members>*</members>
<name>ApexComponent</name>
</types>
<types>
<members>*</members>
<name>ApexPage</name>
</types>
<types>
<members>*</members>
<name>ApexTrigger</name>
</types>
<types>
<members>*</members>
<name>Scontrol</name>
</types>
<types>
<members>*</members>
<name>StaticResource</name>
</types>
<version>13.0</version>
</Package>
実行方法
コマンドプロンプトを起動し、「SFDC_SI」ディレクトリに移動します。
そして、SFDCに単純にSIする場合は「ant」もしくは「ant deploy」と入力し、[Enter]でOKです。
例えば削除したい場合は、「build.xml」で設定している「delete」を実行すればよいので、「ant delete」と入力し、[Enter]でOKです。
コメント