リリース可能なカスタムメタデータ型の開発 (パイロット)

カスタムメタデータ型を作成してから、それらの型の特性を使用するカスタムメタデータを作成できるようになりました。ISV およびエンタープライズ IT 部門には、リストカスタム設定および場合によってはカスタムオブジェクトを使用して過去にエミュレートされたカスタムメタデータ型がありますが、これらの項目の行はメタデータではなくデータであり、データは別の組織にはリリースできません。より少ない開発ツールを作成することで開発期間が 20% 以上短縮され、以前は何万行ものコードが必要であったものが数個のカスタムメタデータ型だけで達成され、インストールされたアプリケーションのアップグレードが 50% 高速化されます。カスタムメタデータ型を使用して、設定を定義し、パッケージ化およびリリースできる再利用可能なアプリケーションコンポーネントと機能を作成します。
使用可能なエディション: Enterprise Edition、Performance Edition、Unlimited Edition、Developer Edition、および Database.com Edition

メモ

メモ

カスタムメタデータ型は現在、パイロットプログラムを通じて一部のお客様が使用できます。このパイロットプログラムに参加する方法については、salesforce.com にお問い合わせください。パイロットプログラムへの参加には、追加の契約条件が適用される場合があります。パイロットプログラムは変更される可能性があるため、このパイロットプログラムへの参加や、特定の期間にこの機能を有効化することは保証できません。このドキュメント、プレスリリース、または公式声明で参照されている未リリースのサービスまたは機能は、現在利用できず、提供が遅れたり中止されたりする可能性があります。サービスのご購入をご検討中のお客様は、現在利用可能な機能に基づいて購入をご決定ください。

Salesforce1 Platform によって、Salesforce は CRM の市場リーダーとなりました。カスタムメタデータ型とカスタムメタデータでは、Salesforce がこれまでしてきたように、アプリケーションのエコシステムを構築できます。カスタム設定およびカスタムオブジェクトを使用して独自のプラットフォームのような機能を構築したことがある場合、カスタム設定およびカスタムオブジェクトデータでは、管理可能な方法でのパッケージ化、リリース、アップグレード、カスタマイズはできないことは理解していると思います。顧客とパートナーに監査機能を提供する場合、メタデータでデバッグ用の監査履歴を得ることができます (項目履歴管理はパッケージ化できません)。アプリケーションのセキュリティを構築する場合、カスタムメタデータ型を使用することによって簡素化されたプロファイル管理が可能になります (カスタム設定はプロファイルに関連付けられるため、権限セットに簡単に関連付けることはできません)。

Spring '15 以降、カスタムメタデータ型によって次が可能になります。
  • Developer Edition、Enterprise Edition、Performance Edition、Unlimited Edition、または Database.com Edition 組織でカスタムメタデータ型およびレコードを作成する。
  • 未管理パッケージ、管理パッケージ、または管理パッケージ拡張でカスタムメタデータ型およびレコードをパッケージ化する。
  • カスタムメタデータ型パイロットの一部である Developer Edition、Enterprise Edition、Performance Edition、Unlimited Edition、または Database.com Edition 組織にカスタムメタデータ型およびレコードを含むパッケージをリリースする。
  • 変更セットを使用して、Sandbox からカスタムメタデータ型およびレコードをリリースする。
  • カスタム設定で使用できる、通貨項目以外のすべての項目種別をカスタムメタデータ型で使用する。
  • データベースへのクエリを繰り返し行う手間をかけずに、効率的なアクセスを実現するため、カスタムメタデータをアプリケーションキャッシュで公開する。
  • Apex でカスタムメタデータ型およびレコードを参照する。getByName()getByNames()、および getAllNames() メソッドを使用して、カスタムメタデータ型でのカスタムメタデータレコードの API 名を取得する。次のような操作が可能です。
    • getByName() を使用して OurCustomMetadata_mdt 型から OurCustomMdInstance1_md というレコードを取得する。
      public class GetByNameWithExistingCmd {
         public static void testGetByName() {
            CustomMetadata.OurCustomMetadata__mdt cmd = CustomMetadata.OurCustomMetadata__mdt.getByName('OurCustomMdInstance1__md');
         }
      }
    • getByName() を使用して OurCustomMetadata_mdt 型から OurCustomMdInstance1_md というレコードを取得し、そのレコードの datetime__c カスタム項目の値を fromCmd という Datetime 変数に割り当てる。
      public class CustomFieldTests {
         public static void testCustomFields() {
            CustomMetadata.OurCustomMetadata__mdt cmd = CustomMetadata.OurCustomMetadata__mdt.getByName('OurCustomMdInstance1__md');
            Datetime fromCmd = cmd.datetime__c;
         }
      }
    • getAllNames() を使用して OurCustomMetadata_mdt 型からすべてのレコードを取得し、それらのレコードを allNames という Set<String> 変数に割り当て、allNamesList という String 変数を使用して一覧表示する。
      public class GetByNamesUsingGetAllNames {
         public static void testGetAllNames() {
            Set<String> allNames = CustomMetadata.OurCustomMetadata__mdt.getAllNames();
            String allNamesList = '';
            for (String name : allNames) {
               allNamesList += name + ' ';
            }
         }
      }
    • getByNames() を使用して OurCustomMetadata_mdt 型から 2 件のレコードを取得し、それらのレコードを cmdMap という Map<String, CustomMetadata.OurCustomMetadata__mdt> 変数に割り当て、それらのレコードの値を cmd および cmd2 という変数に割り当てる。
      public class GetByNamesUsingGetAllNames {
         public static void testGetAllNames() {
            Set<String> allNames = CustomMetadata.OurCustomMetadata__mdt.getAllNames();
            Map<String, CustomMetadata.OurCustomMetadata__mdt> cmdMap = CustomMetadata.OurCustomMetadata__mdt.getByNames(allNames);
            CustomMetadata.OurCustomMetadata__mdt cmd = cmdMap.get('OurCustomMdInstance1__md');
            CustomMetadata.OurCustomMetadata__mdt cmd2 = cmdMap.get('OurCustomMdInstance2__md');
         }
      }

カスタムメタデータ型を使用すると、内部チーム、パートナー、および顧客向けの独自の宣言型開発者フレームワークを作成できます。データからアプリケーションを構築する代わりに、独自のメタデータ型で定義および駆動するアプリケーションを構築できます。カスタムメタデータ型パイロットへの参加についての詳細を Salesforce に問い合わせるか、success.salesforce.comカスタムプラットフォームコミュニティグループに参加してこの画期的な新機能について議論してください。