Mark Hammer's blog

SalesforceやTrailheadに関する情報を投稿しているブログです。

Trailhead モジュール:Apex メタデータ API

※この内容は2018/4時点のものです。

Apex メタデータ API の使用開始

https://trailhead.salesforce.com/ja/modules/apex_metadata_api/units/apex_metadata_api_intro

  • 説明:日本語
  • Challenge:日本語選択問題

複数組織リリース用の自動メタデータ更新の作成

https://trailhead.salesforce.com/ja/modules/apex_metadata_api/units/apex_metadata_api_updates

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • public Apexクラス「UpdateContactPageLayout」を作成してください。
  • publicメソッド「addLayoutItem」をApexクラス「UpdateContactPageLayout」に追加してください。 「addLayoutItem」は Metadata.Layout型 を返り値の型とし、引数はなしとしてください。
  • メソッド「addLayoutItem」にて、Metadata.Operations.retrieveメソッドを使用して、取引先責任者ページレイアウトのメタデータを取得してください。 取得したメタデータを、Metadata.Metadata オブジェクトのリストである 「layoutsList」 という名前の変数に割り当ててください。
  • リスト「layoutsList」にあるレイアウトのうち最初のレイアウトを取得し、それをMetadata.Layout型 の 「layoutMetadata」 という名前の変数に割り当ててください。
  • Metadata.LayoutSection型の 「contactLayoutSection」 という名前の変数を作成し、nullに設定してください。
  • 変数「layoutMetadata」 の layoutSections プロパティを使用して、レイアウトセクションの反復処理により「Additional Information」セクションを探してください。
    「Additional Information」セクションが見つかった場合、そのセクションを変数「contactLayoutSection」に割り当ててください。
  • Metadata.LayoutColumnオブジェクトのリストである 「contactColumns」 という名前の変数を作成してください。
  • 変数「contactLayoutSection」 の layoutColumns プロパティを使用して得られた値を変数「contactColumns」に割り当ててください。
  • Metadata.LayoutItemオブジェクトのリストである 「contactLayoutItems」 という名前の変数を作成してください。
  • 変数「contactColumns」のリストの最初の要素の layoutItems プロパティを使用して得られた値を、変数「contactLayoutItems」に割り当ててください。
  • Metadata.LayoutItem型のオブジェクト「newField」を作成してください。
  • オブジェクト変数「newField」に以下の値を割り当ててください。
    • behavior:Metadata.UiBehavior.Edit
    • field: AMAPI__Apex_MD_API_Twitter_name__c
  • オブジェクト変数「newField」を「contactLayoutItems」メタデータ変数に追加してください。
  • 変数「layoutMetadata」を「addLayoutItem」メソッドの返り値としてください。

自動設定変更のためのシステム管理者ツールの作成

https://trailhead.salesforce.com/ja/modules/apex_metadata_api/units/apex_metadata_api_tools

  • 説明:日本語
  • Challenge:英語ハンズオン

Challenge要約

  • public Apexクラス「MetadataExample」を作成してください。
  • Apexクラス「MetadataExample」にpublicメソッド「updateMetadata」を作成してください。「updateMetadata」メソッドの引数はなし、返り値の型はvoidとしてください。
  • Metadata.CustomMetadata型の「customMetadata」というオブジェクト変数を作成してください。
  • 変数「customMetadata」の fullname を 「MyNamespace__MyMetadataTypeName.MyMetadataRecordName」に設定してください。
  • Metadata.CustomMetadataValue型の「customField」というオブジェクト変数を作成してください。
  • 変数「customField」のfieldに「customField__c」を、valueに「New value」を設定してください。
  • 変数「customMetadata」のvaluesのリストに変数「customField」を追加してください。
  • Metadata.DeployContainer型の「deployContainer」というオブジェクト変数を作成してください。
  • 変数「deployContainer」に変数「customMetadata」を追加してください。
  • Metadata.Operations.enqueueDeploymentメソッドを使用して、メタデータをデプロイしてください。メソッドの戻り値は、Id型の変数「asyncResultId」に代入してください。
    enqueueDeploymentメソッドのコールバックパラメータにはnullを使用してください。

メタデータのリリースのテスト

https://trailhead.salesforce.com/ja/modules/apex_metadata_api/units/apex_metadata_api_testing

  • 説明:日本語
  • Challenge:日本語選択問題

Apex メタデータ API とセキュリティについて

https://trailhead.salesforce.com/ja/modules/apex_metadata_api/units/apex_metadata_api_security

  • 説明:日本語
  • Challenge:日本語選択問題