この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

CustomMetadata

カスタムメタデータ型のレコードを表します。

Metadata メタデータ型を拡張し、その fullName 項目を継承します。

ファイルのサフィックスおよびディレクトリの場所

CustomMetadata コンポーネントのサフィックスは .md で、customMetadata フォルダに保存されます。カスタムメタデータ型とは異なり、カスタムメタデータレコードにはアンダースコア 2 個のサフィックスはありません。カスタムメタデータレコード名の先頭にカスタムメタデータ型名が追加されます。__mdt サフィックスは除外されますが、インストールされた管理パッケージのすべての型の名前空間は含まれます。

バージョン

CustomMetadata コンポーネントは、API バージョン 31.0 以降で使用できます。

特別なアクセスルール

カスタムメタデータレコードを作成するには、「アプリケーションのカスタマイズ」権限が必要です。

項目

項目名 項目の型 説明
description string カスタムメタデータレコードの説明。この項目には、最大で 1,000 文字を含めることができます。
label string Salesforce の [設定] ユーザインターフェース全体でオブジェクトを表す表示ラベル。現在、カスタムメタデータレコードはパッケージ化のユーザインターフェースでのみ表示されます。
protected boolean
ブール型。レコードが保護されているか (true)、否か (false) を示します。カスタムメタデータ型が管理パッケージ内でリリースされた場合、そのアクセスは特定の方法で制限されます。
  • カスタムメタデータレコードと同じ管理パッケージ内にあるコードは、レコードを参照できます。
  • カスタムメタデータ型と同じ管理パッケージ内にあるコードは、その型に属するレコードを参照できます。
  • その型または保護レコードを含まない管理パッケージ内のコードは、保護レコードを参照できません。
  • 登録者が作成したコードおよび未管理パッケージ内にあるコードは、保護レコードを参照できません。
  • 開発者は、パッケージアップグレードまたはメタデータ Apex クラス (Apex コードがレコードまたはそれらのタイプと同じ名前空間にある場合) を使用して保護レコードを変更できます。登録者は、保護レコードの参照および変更を行うことはできません。保護レコードの開発者名をリリース後に変更することはできません。
  • 登録者は保護された型のレコードを作成できません。
これらのアクセスルールにより非表示になるレコードは、REST、SOAP、SOQL、[設定] でも使用できません。
values CustomMetadataValue[] カスタムメタデータレコードのカスタム項目の 1 つ以上の値を表します。

CustomMetadataValue

カスタムメタデータレコードのカスタム項目の値を表します。

項目名 項目の型 説明
field string 必須。カスタムメタデータ型のカスタム項目の非オブジェクト修飾名。この値は、カスタムメタデータレコードのカスタムメタデータ型の項目名に対応します。名前空間 (管理パッケージから取得された型の場合) と __c サフィックスが含まれます。カスタムメタデータ型の名前は必要ありません。たとえば、picklist1234__AlphaSort__c です。
value anyType カスタムメタデータレコードの値。項目が EntityDefinition および FieldDefinition の場合、エンティティとそれが参照する項目の修飾された API 参照名。この値は null にできます。

詳細は、「使用方法」を参照してください。

宣言的なメタデータの定義のサンプル

CustomMetadata コンポーネントの例を次に示します。この例では、サンプルアプリケーション TravelApp で Planets 選択リストをリリースし、その並び替え順を指定して、選択リスト項目を追加します。

Picklists R Us の名前空間は picklist1234 で、TravelApp は Planets 選択リストを定義するために、customMetadata フォルダに picklist1234__ReusablePicklist.Planets.md という名前のファイルとこれらのコンテンツをリリースするとします。xsi:type 属性では、AlphaSort__c チェックボックス項目の値の型を指定します。

Picklists R Us は、オブジェクトフォルダに ReusablePicklist__mdt.object という名前のファイルとこれらのコンテンツをリリースして、Reusable Picklist Option カスタムメタデータ型を作成します。

TravelApp は Mars 選択リスト項目を定義するために、picklist1234__ReusablePicklistOption.Mars.md という名前のファイルとこれらのコンテンツをリリースします。このコンポーネントファイルでは、ReusablePicklistOption__mdt カスタム項目に適用される型を指定します。
TravelApp は Motel6 選択リスト項目を定義するために、picklist1234__ReusablePicklistOption.Motel6.md という名前のファイルとこれらのコンテンツをリリースします。
SortOrder__c 項目は必須ではないため、このファイルでは SortOrder__c の値は必要ありません。または、SortOrder__c の以前の値を確実にクリアするために、ファイルで xsi:nil を使用して明示的に値を指定しておくこともできます。

次の package.xml ファイルからの抜粋は、カスタムメタデータレコード名へのカスタムメタデータ型とそれらの名前空間の追加を示しています。Picklists R Us の名前空間は picklist1234 だとします。

次の package.xml ファイルからの抜粋に示すように、TravelApp, Inc の package.xml ファイルで、ワイルドカードを使用してカスタムメタデータをインストールします。特定のレコードをリリースまたは取得する場合を除き、package.xml ファイルですべてのカスタムメタデータレコードをリストするよりもワイルドカードを使用した方が簡単です。

管理パッケージからカスタムメタデータを取得している場合、package.xml ファイルのドットの後 (ファイル名の 2 つのドットの間) の名前は、管理パッケージの名前空間で修飾されます。たとえば、TravelApp で名前空間 travelApp1234 を使用すると、Galactic Tours には TravelApp の package.xml ファイルの最初のメンバー要素が次のように表示されます。

もう 1 つの例を示します。この場合、カスタムメタデータレコードのインスタンスがあり、その EntityDefinition 項目が SalesAgreement__c という名前のカスタムオブジェクトを参照しています。FieldDefinition 項目は、SalesAgreement__c のカスタム項目 CustomerReference__c を参照しています。新しいカスタムメタデータレコードをリリースし、EntityDefinition および FieldDefinition 項目を含む既存のカスタムメタデータレコードを、カスタムおよび標準エンティティとその項目の修飾された API 参照名を使用して取得できます。

使用方法

CustomMetadataValue サブタイプで value 項目を指定する場合、データ型定義に基づいている適切な型のオブジェクトを指定します。CustomMetadataValue の宣言的なメタデータの定義で、値要素の xsi:type 属性を使用します。たとえば、boolean 値 <value xsi:type="xsd:boolean">true</value> を指定する場合、有効な xsi:type 属性は次のようになります。
カスタムメタデータ値 カスタム項目定義
xsi:type="xsd:boolean" Checkbox
xsi:type="xsd:date" Date
xsi:type="xsd:dateTime" Date/Time
xsi:type="xsd:picklist" Picklist
xsi:type="xsd:string" Text
xsi:type="xsd:string" Phone
xsi:type="xsd:string" TextArea
xsi:type="xsd:string" URL
xsi:type="xsd:string" Email
xsi:type="xsd:int" Number/Percent (スケールは 0)
xsi:type="xsd:double" Number/Percent (スケールは 0 ではない)

xsi:type 属性は省略することもできます。たとえば、<value>true</value> です。

この属性はすべての CustomMetadataValue に指定する必要がありますが、xsi:nil 属性が true に設定された要素を使用して、項目の値を明示的に null に設定できます。たとえば、<value xsi:nil="true"/> です。

null 項目値を使用することと、特定の項目の CustomMetadataValue を省略することはまったく異なります。CustomMetadataValue を省略すると、項目の値は変化しません。新しくリリースされたカスタムメタデータレコードの場合、項目の値は null になります。更新されたカスタムメタデータレコードの場合、以前の値のままになります。

宣言的なメタデータの定義の場合に xsi:type を指定すると、CustomMetadataValue オブジェクトを取得するときに、返されるオブジェクトの value 項目に正しい型の値が格納されます。

マニフェストファイル内のワイルドカードのサポート

このメタデータ型では、package.xml マニフェストファイル内のワイルドカード文字 * (アスタリスク) がサポートされます。マニフェストファイルの使用についての詳細は、「zip ファイルを使用したメタデータのリリースと取得」を参照してください。