前回、Force.com移行ツールのインストール方法について確認したので、次は移行ツールの使い方を確認してみました。
ApexコードをSalesforce組織にデプロイ
移行ツールを使用してApexコードをデプロイする方法です。
次のコマンドで実行できます。
ant -Dpackage.xml=package.xml -f build.xml deployCode
-f
というのは対象ファイルを指定する際に使用するものです。
このコマンドの意味は『build.xml』というファイルの『deployCode』を実行するという意味になります。
この赤枠の部分です。
targetタグやsf:deployタグでどのような処理を実行するかを指定しているみたいです。この辺のタグの使い方がDevelopers Guideで説明されているのだと思います。
ひとまずこれを実行するとcodepkgフォルダ内にあるclassやtriggerをデプロイすることができます。
デプロイ対象はpackage.xmlで定義されたファイルです。サンプルではclassesとtriggersフォルダのsampleファイルをデプロイするようになっていますが、package.xmlから除外することでデプロイ対象外に変更できます。
試しにサンプルで用意されているSampleFailingTestClass.clsを対象外にして実行してみます。
注意事項としてpackage.xmlから除外した場合はclassesフォルダからも除外する必要があります。ここの条件は一致するようにしておく必要があるみたいです。
対象のSalesforce組織でApexクラスとApexトリガの一覧を確認するとサンプルのクラスとトリガがデプロイされていることを確認できると思います。
ちなみにデプロイ対象にテストクラスが存在する場合、テスト処理が実行されるみたいです。エラーになる場合はデプロイできないみたいなので注意が必要です。
以上がデプロイ機能の基本的な使い方になります。
codepkgフォルダにリソースをダウンロード
続いてSalesforce組織からリソースをダウンロードする方法を確認してみたいと思います。
この処理は次のコマンドで実行できます。
ant -Dpackage.xml=package.xml -f build.xml retrieveCode
build.xmlの赤枠の部分になります。
実行するとcodepkgフォルダ内に対象ファイルをダウンロードできます。確認しやすいようにpackage.xml以外のファイルを削除した状態で実行してみます。
コマンドプロンプトはこんな感じです。
実行後、classesフォルダとtriggersフォルダが追加されていることを確認できると思います。
以上が、codepkgフォルダにリソースをダウンロードしたいときの方法です。
組織からパッケージ以外のリソース取得
retrieveUnpackagedを使うとパッケージ以外のリソースを取得することができます。
ant -Dpackage.xml=package.xml -f build.xml retrieveUnpackaged
コマンドプロンプトはこんな感じです。
実行結果はretrieveUnpackagedフォルダに格納されます。
package.xmlで定義された条件でダウンロードされます。
対象ファイルを『*』で指定することで全件指定できます。
こんな感じで複数のファイルを短時間でダウンロードできます。
以上が組織からパッケージ以外のリソース取得する方法になります。
remocecodepkgフォルダの内容を組織から削除
次のコマンドでremovecodepkgフォルダ内のファイルを組織から削除することができます。おそらく本番環境でも実行できると思いますが、誤ったファイルを削除しないように注意が必要です。
ant -Dpackage.xml=package.xml -f build.xml undeployCode
removecodepkgフォルダ内にあるpackage.xmlファイルを確認してみると次のような内容となっています。
削除対象のファイルはdestructiveChanges.xmlファイルで定義されているものとなります。
次の内容の場合は『SampleAccountTrigger』を削除するという内容になります。
コマンドプロンプトで実行したときの様子です。
正常に実行されるとApexトリガが削除されていることを確認できると思います。
Force.com移行ツールを利用したファイル削除方法はこんな感じです。
便利な機能ですが、誤って関係ないファイルを削除したりしないように注意して使用した方が良さそうです。
以上がForce.com移行ツールの基本的な使い方となります。