思ったことはないでしょうか。Blogでも紹介されていたカスタムメタデータタイプという機能は、そんな要望をかなえることができる新機能です。Salesforceのシステムを構成するメタデータ(設定データ)としては、オブジェクト定義データ、ページレイアウト定義データ、ワークフロー定義データ、ApexClass定義データ、その他様々な定義データがあり、開発者は標準UI設定や時にはコーディングをし、メタデータを作成することでSalesforce上にアプリケーションを構築していきます。オブジェクトの項目として存在しないVisualforce上で表示する選択リスト値、プログラムから外部連携するために必要なシステム情報、トランスレーションワークベンチで管理できない翻訳値などなど・・こういった場合、今までは「カスタムオブジェクト」「カスタム設定」「カスタム表示ラベル」などで管理することが多かったかと思います。前者2つはリリースに設定値となるレコードを含めることができませんし、カスタム表示ラベルはあくまでラベルやメッセージに特化したものなので独自の型や構造体として管理することはできません。そこで、これらを解決する手段として、カスタムメタデータタイプを使うことができます。カスタムメタデータタイプの特徴を簡単に書くと、以下のようなものです。カスタムオブジェクトのような独自のメタデータ用オブジェクトを作れるカスタムメタデータのオブジェクトにレコードを作ることができるレコードも変更セットやパッケージに含めてリリースすることができるSOQLで取得できるSOQLのクエリ数のガバナ制限に影響しないテストメソッド内でseeAllDataを付けることなく参照できる現時点で設定およびレコードを作成する標準UIはないがロードマップにはあるらしい(せーふはーばー)機能的にはカスタム設定の"リスト"に近いと言えますが、「レコードを含めてリリースできる」「テストメソッドで参照できる」「(現時点で)標準UIがない」といった点が異なります。先にも述べたように、現時点で設定やレコード登録のUIはありませんが、メタデータAPIを使うことでカスタムメタデータタイプの設定およびレコード登録をすることができます。IDE)を使って登録します。シナリオ開発画面で表示する選択リスト用のデータとして、以下のようなカスタムメタデータを登録します。※今回はシンプルな設定にしていますカスタムメタデータタイプの定義レコードを保存するカスタムメタデータ用のオブジェクト定義はobjectのメタデータディレクトリに入りますが、後ろが__cではなく__mdtになります。src/object/CustomPickList__mdt.object続いてカスタム選択リスト(CustomPickList__mdt.object)に入るレコードもメタデータとして定義します。これは1レコード1ファイルとなり、customMetadataのディレクトリに入ります。src/customMetadata/CustomPickList.Value01.mdsrc/customMetadata/CustomPickList.Value02.mdファイル名は「CustomPickList.Value01.md」のような形式となり「[オブジェクト名].[DeveloperName].md」とするようです。ちなみにpackage.xmlは以下の通りです。これらのファイルができたら、eclipse上からserverへ保存します。繰り返しになりますがカスタムメタデータタイプは現時点でUIがありません。今回はSOQLで取得できることと、変更セットに入れられることを確認してみます。結果クエリの取得は問題なくできました。変更セット続いて変更セットに入れられることを確認します。オブジェクト定義は「カスタムメタデータ型」というコンポ―ネント種類に入っているのが分かります。名前がリンクになっていたのでクリックしてみると、オブジェクト定義も見れました。残念ながらここから項目を追加変更することはできないようです。続いてカスタムメタデータのレコードです。コンポーネントの種類はメタデータの名前がそのまま表示されているようです。ここは今後もう少しユーザーフレンドリーに変わってくるかもしれませんね。まとめこのように現在は標準UIがなくても、メタデータAPIを利用することでカスタムメタデータタイプを利用することはできるようです。レコードを含めた独自の定義をリリースに入れたい場合は、ぜひカスタムメタデータタイプを利用してみてください。標準UI(追記)本投稿を一通り書き終わって公開を待っていたのですが、Winter'16のプレリリース環境を見ていたらカスタムメタデータタイプの標準UIが追加されていました。ーふはーばーではあるものの、次のバージョンアップでは画面からカスタムメタデータタイプの追加およびレコード作成ができるようになりそうです。検索クラウドやるならテラスカイ。求む!Salesforce開発エンジニア。