プログラマ38の日記

主にプログラムメモです。

Salesforce: Force.com移行ツール(Force.com Migration Tool)で指定するコンポーネント名をselect可能なSオブジェクト

件名がやたら長くなってしまいました。

オブジェクトのメタデータは、オブジェクトの情報をまとめて取得する方法と、カスタム項目、リストビュー、レコードタイプ、入力規則、カスタムボタンまたはカスタムリンクを個別で取得する方法があります。
個別で取得する際にコンポーネント名を指定しますが、コンポーネント名は対応するSオブジェクトから取得できるものがあります。

 

まず Force.com移行ツール(Force.com Migration Tool)での指定の方法は以下の通りです。

オブジェクトの情報を全て取得する

Force.com移行ツール(Force.com Migration Tool)で、オブジェクトのメタデータを取得する際にはpackage.xmlに次のように指定します。

    <types>
        <members>Sample__c</members>
        <name>CustomObject</name>
    </types>

 上記で指定すると、オブジェクトの情報が全て取得できます。

 

カスタム項目、リストビュー、レコードタイプ、入力規則、カスタムボタンまたはカスタムリンクを個別に取得する

個別に取得する際にはpackage.xmlにそれぞれ次のように指定します。

 

カスタム項目

    <types>
        <members>Sample__c.SampleField__c</members>
        <name>CustomField</name>
    </types>

リストビュー

    <types>
        <members>Sample__c.sampleview1</members>
        <name>ListView</name>
    </types>

レコードタイプ

    <types>
        <members>Sample__c.rectype1</members>
        <name>RecordType</name>
    </types>

入力規則

    <types>
        <members>Sample__c.rule1</members>
        <name>ValidationRule</name>
    </types>

カスタムボタンまたはカスタムリンク

    <types>
        <members>Sample__c.button1</members>
        <name>WebLink</name>
    </types>

上記のように個別に指定することにより必要なものだけ取得することができます。

 

個別に指定する際のコンポーネント名をSオブジェクトから取得する

Force.com移行ツール(Force.com Migration Tool)のpackage.xmlに記載するコンポーネント名は次のSオブジェクトから取得できます。一部取得できないコンポーネント名もあります。

ラベル 対応するSObject コメント
カスタム項目 項目定義(FieldDefinition) △次のselectで取得できますが、項目レベルセキュリティが外れていると結果に含まれません。

Select EntityDefinition.QualifiedApiName
 ,QualifiedApiName
From
  FieldDefinition
where EntityDefinition.QualifiedApiName = 'オブジェクトAPI'
リストビュー リストビュー(ListView) ○次のselectで取得できます。(ビューで「自分にのみ表示」にすると結果に含まれませんが、そもそも「自分にのみ表示」のビューはメタデータが取得できないので関係ありません)
Select 
 SobjectType
 ,DeveloperName
From
  ListView
レコードタイプ レコードタイプ(RecordType) ○書くまでもないと思います。
Select 
  SobjectType
 ,DeveloperName
From
  RecordType
入力規則 ×調べたのですがありませんでした。画面からコピーするしかないのかなと思います。
ボタンまたはリンク カスタムボタンまたはカスタムリンク(WebLink) ○次のselectで取得できます。(今回は関係ありませんが、WebLinkのURL項目にはJavaScriptも書いてあるので、ロジックを調査する時は便利です)
Select
  PageOrSobjectType
 ,Name
From
  WebLink

※SオブジェクトはAPIバージョン40で確認しました。古いデータローダでは取得できない可能性があります。 

最後に

環境間の移送は変更セットが便利なのですが、標準項目が選択できないので、標準項目とレコードタイプの組み合わせや、標準項目とプロファイルの組み合わせなどを移送したい時はForce.com移行ツール(Force.com Migration Tool)を使うと便利です。

package.xmlを書くのが多少しんどいですが。