tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Force.com移行ツールの使い方

前回、Force.com移行ツールのインストール方法について確認したので、次は移行ツールの使い方を確認してみました。

ApexコードをSalesforce組織にデプロイ

移行ツールを使用してApexコードをデプロイする方法です。

次のコマンドで実行できます。

ant -Dpackage.xml=package.xml -f build.xml deployCode

-fというのは対象ファイルを指定する際に使用するものです。

このコマンドの意味は『build.xml』というファイルの『deployCode』を実行するという意味になります。

f:id:tyoshikawa1106:20150210215850p:plain


この赤枠の部分です。

f:id:tyoshikawa1106:20150210215914p:plain


targetタグやsf:deployタグでどのような処理を実行するかを指定しているみたいです。この辺のタグの使い方がDevelopers Guideで説明されているのだと思います。

f:id:tyoshikawa1106:20150210220000p:plain


ひとまずこれを実行するとcodepkgフォルダ内にあるclassやtriggerをデプロイすることができます。


デプロイ対象はpackage.xmlで定義されたファイルです。サンプルではclassesとtriggersフォルダのsampleファイルをデプロイするようになっていますが、package.xmlから除外することでデプロイ対象外に変更できます。


試しにサンプルで用意されているSampleFailingTestClass.clsを対象外にして実行してみます。

f:id:tyoshikawa1106:20150210220051p:plain


注意事項としてpackage.xmlから除外した場合はclassesフォルダからも除外する必要があります。ここの条件は一致するようにしておく必要があるみたいです。

f:id:tyoshikawa1106:20150210220235p:plain


対象のSalesforce組織でApexクラスとApexトリガの一覧を確認するとサンプルのクラスとトリガがデプロイされていることを確認できると思います。


ちなみにデプロイ対象にテストクラスが存在する場合、テスト処理が実行されるみたいです。エラーになる場合はデプロイできないみたいなので注意が必要です。


以上がデプロイ機能の基本的な使い方になります。

codepkgフォルダにリソースをダウンロード

続いてSalesforce組織からリソースをダウンロードする方法を確認してみたいと思います。

この処理は次のコマンドで実行できます。

ant -Dpackage.xml=package.xml -f build.xml retrieveCode

build.xmlの赤枠の部分になります。

f:id:tyoshikawa1106:20150210220340p:plain


実行するとcodepkgフォルダ内に対象ファイルをダウンロードできます。確認しやすいようにpackage.xml以外のファイルを削除した状態で実行してみます。

f:id:tyoshikawa1106:20150210220753p:plain


コマンドプロンプトはこんな感じです。

f:id:tyoshikawa1106:20150210220812p:plain


実行後、classesフォルダとtriggersフォルダが追加されていることを確認できると思います。

f:id:tyoshikawa1106:20150210220831p:plain


以上が、codepkgフォルダにリソースをダウンロードしたいときの方法です。

組織からパッケージ以外のリソース取得

retrieveUnpackagedを使うとパッケージ以外のリソースを取得することができます。

ant -Dpackage.xml=package.xml -f build.xml retrieveUnpackaged

f:id:tyoshikawa1106:20150210220902p:plain


コマンドプロンプトはこんな感じです。

f:id:tyoshikawa1106:20150210220928p:plain


実行結果はretrieveUnpackagedフォルダに格納されます。

f:id:tyoshikawa1106:20150210220955p:plain


package.xmlで定義された条件でダウンロードされます。

f:id:tyoshikawa1106:20150210221023p:plain


対象ファイルを『*』で指定することで全件指定できます。

f:id:tyoshikawa1106:20150210221040p:plain


こんな感じで複数のファイルを短時間でダウンロードできます。

f:id:tyoshikawa1106:20150210221059p:plain


以上が組織からパッケージ以外のリソース取得する方法になります。

remocecodepkgフォルダの内容を組織から削除

次のコマンドでremovecodepkgフォルダ内のファイルを組織から削除することができます。おそらく本番環境でも実行できると思いますが、誤ったファイルを削除しないように注意が必要です。

ant -Dpackage.xml=package.xml -f build.xml undeployCode

removecodepkgフォルダ内にあるpackage.xmlファイルを確認してみると次のような内容となっています。

f:id:tyoshikawa1106:20150210221142p:plain


削除対象のファイルはdestructiveChanges.xmlファイルで定義されているものとなります。

f:id:tyoshikawa1106:20150210221207p:plain


次の内容の場合は『SampleAccountTrigger』を削除するという内容になります。

f:id:tyoshikawa1106:20150210221235p:plain


コマンドプロンプトで実行したときの様子です。

f:id:tyoshikawa1106:20150210221254p:plain


正常に実行されるとApexトリガが削除されていることを確認できると思います。

f:id:tyoshikawa1106:20150210221311p:plain


Force.com移行ツールを利用したファイル削除方法はこんな感じです。
便利な機能ですが、誤って関係ないファイルを削除したりしないように注意して使用した方が良さそうです。


以上がForce.com移行ツールの基本的な使い方となります。

関連記事