Edited at

Force.com Migration Tool (移行ツール) のメタデータまとめ

More than 3 years have passed since last update.


はじめに

Force.com Migration Tool (Force.com 移行ツール) は便利ですが、新しいファイルを作成してデプロイしたい時とかに以下のようなことで迷ってしまうことがあります。


  • ディレクトリ名はなんだっけ?

  • 拡張子はなんだっけ?


  • package.xmlにはどうやって書くんだっけ?

今回、Force.com移行ツールの機能だけで比較的簡単に確認する方法があったので紹介します。


インストール方法など

http://help.salesforce.com/apex/HTViewSolution?id=000176910&language=ja


確認方法

移行ツールをダウンロードした時に入っているサンプルのbuild.xmlから、describeMetadataというコマンドを使用します。


build.xml

<!-- Retrieve the information on all supported metadata type -->

<target name="describeMetadata">
<sf:describeMetadata username="${sf.username}" password="${sf.password}" serverurl="${sf.serverurl}"/>
</target>

すると、次のような結果がターミナルに出力されます。


実行結果

describeMetadata:

[sf:describeMetadata] ************************************************************
[sf:describeMetadata] XMLName: InstalledPackage
[sf:describeMetadata] DirName: installedPackages
[sf:describeMetadata] Suffix: installedPackage
[sf:describeMetadata] HasMetaFile: false
[sf:describeMetadata] InFolder: false
[sf:describeMetadata] ChildObjects: ************************************************************
[sf:describeMetadata] ************************************************************
[sf:describeMetadata] XMLName: CustomLabels
[sf:describeMetadata] DirName: labels
[sf:describeMetadata] Suffix: labels
[sf:describeMetadata] HasMetaFile: false
[sf:describeMetadata] InFolder: false
[sf:describeMetadata] ChildObjects: CustomLabel,************************************************************
[sf:describeMetadata] ************************************************************
[sf:describeMetadata] XMLName: StaticResource
[sf:describeMetadata] DirName: staticresources
[sf:describeMetadata] Suffix: resource
[sf:describeMetadata] HasMetaFile: true
[sf:describeMetadata] InFolder: false
[sf:describeMetadata] ChildObjects: ************************************************************

...

[sf:describeMetadata] ************************************************************
[sf:describeMetadata] XMLName: Translations
[sf:describeMetadata] DirName: translations
[sf:describeMetadata] Suffix: translation
[sf:describeMetadata] HasMetaFile: false
[sf:describeMetadata] InFolder: false
[sf:describeMetadata] ChildObjects: ************************************************************
[sf:describeMetadata] ************************************************************
[sf:describeMetadata] XMLName: ApexClass
[sf:describeMetadata] DirName: classes
[sf:describeMetadata] Suffix: cls
[sf:describeMetadata] HasMetaFile: true
[sf:describeMetadata] InFolder: false
[sf:describeMetadata] ChildObjects: ************************************************************
[sf:describeMetadata] ************************************************************
[sf:describeMetadata] XMLName: ApexTrigger
[sf:describeMetadata] DirName: triggers
[sf:describeMetadata] Suffix: trigger
[sf:describeMetadata] HasMetaFile: true
[sf:describeMetadata] InFolder: false
[sf:describeMetadata] ChildObjects: ************************************************************
[sf:describeMetadata] ************************************************************
...


何やら色々表示されていますが、



  • XMLNamepackage.xml<name>


  • DirNameをディレクトリ名に


  • Suffixを拡張子名に

それぞれ指定すれば良いです。


よく使う項目まとめ

個人的によく使うメタデータを一覧にまとめときます。

項目
ディレクトリ名
拡張子名

package.xml<name>

Apexクラス
classes
.cls
ApexClass

Apexトリガ
triggers
.trigger
ApexTrigger

Visualforceページ
pages
.page
ApexPage

オブジェクト(標準・カスタム)
objects
.object
CustomObject

カスタム表示ラベル
labels
.labels
CustomLabels

カスタムタブ
tabs
.tab
CustomTab

翻訳ファイル
translations
.translation
Translations


補足

サンプルのbuild.xmlにはlistMetadataというコマンドも用意されてます。


build.xml

<!-- Retrieve the information of all items of a particular metadata type -->

<target name="listMetadata">
<sf:listMetadata username="${sf.username}" password="${sf.password}" serverurl="${sf.serverurl}" metadataType="${sf.metadataType}"/>
</target>

特定のメタデータ(ApexClassなど)を指定して実行すると、現在その組織に保存されているデータが表示されます。


ただし、使う時はbuild.properties


build.properties

sf.metadataType = ApexClass


などと書いてから。


参考

http://www.salesforce.com/us/developer/docs/api_meta/index_Left.htm#CSHID=meta_types_list.htm|StartTopic=Content%2Fmeta_types_list.htm|SkinName=webhelp