この文章は 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 任意の型 カスタムメタデータレコードの値。項目が EntityDefinition および FieldDefinition の場合、エンティティとそれが参照する項目の修飾された API 参照名。この値は null にできます。

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

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

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

Picklists R Us の名前空間は picklist1234 で、TravelApp は Planets 選択リストを定義するために、customMetadata フォルダーに picklist1234__ReusablePicklist.Planets.md という名前のファイルとこれらのコンテンツをリリースするとします。xsi:type 属性では、AlphaSort__c チェックボックス項目の値の型を指定します。
1<?xml version="1.0" encoding="UTF-8"?>
2<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata" 
3                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
4                   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
5    <description>All the planets in the solar system. Does not 
6                 include asteroids.</description>
7    <label>Planets</label>
8    <values>
9        <field>picklist1234__AlphaSort__c</field>
10        <value xsi:type="xsd:boolean">false</value>
11    </values>
12</CustomMetadata>

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

1<?xml version="1.0" encoding="UTF-8"?>
2<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">
3    <fields>
4        <fullName>Picklist__c</fullName>
5        <externalId>false</externalId>
6        <label>Picklist</label>
7        <length>40</length>
8        <required>true</required>
9        <type>Text</type>
10        <unique>false</unique>
11    </fields>
12    <fields>
13        <fullName>SortOrder__c</fullName>
14        <externalId>false</externalId>
15        <label>Non-Alphabetical Sort Order</label>
16        <precision>3</precision>
17        <scale>0</scale>
18        <required>false</required>
19        <type>Number</type>
20        <unique>false</unique>
21    </fields>
22    <label>Reusable Picklist Option</label>
23    <pluralLabel>Reusable Picklist Options</pluralLabel>
24</CustomObject>
TravelApp は Mars 選択リスト項目を定義するために、picklist1234__ReusablePicklistOption.Mars.md という名前のファイルとこれらのコンテンツをリリースします。このコンポーネントファイルでは、ReusablePicklistOption__mdt カスタム項目に適用される型を指定します。
1<?xml version="1.0" encoding="UTF-8"?>
2<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata" 
3  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
4  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
5    <label>Mars</label>
6    <values>
7        <field>picklist1234__Picklist__c</field>
8        <value xsi:type="xsd:string">Planets</value>
9    </values>
10    <values>
11        <field>picklist1234__SortOrder__c</field>
12        <value xsi:type="xsd:int">4</value>
13    </values>
14</CustomMetadata>
TravelApp は Motel6 選択リスト項目を定義するために、picklist1234__ReusablePicklistOption.Motel6.md という名前のファイルとこれらのコンテンツをリリースします。
1<?xml version="1.0" encoding="UTF-8"?>
2<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata" 
3  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
4  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
5    <label>Motel 6</label>
6    <values>
7        <field>picklist1234__Picklist__c</field>
8        <value xsi:type="xsd:string">Hotels</value>
9    </values>
10</CustomMetadata>
SortOrder__c 項目は必須ではないため、このファイルでは SortOrder__c の値は必要ありません。または、SortOrder__c の以前の値を確実にクリアするために、ファイルで xsi:nil を使用して明示的に値を指定しておくこともできます。
1<?xml version="1.0" encoding="UTF-8"?>
2<CustomMetadata xmlns="http://soap.sforce.com/2006/04/metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3    <label>Motel 6</label>
4    <values>
5        <field>picklist1234__Picklist__c</field>
6        <value xsi:type="xsd:string">Hotels</value>
7    </values>
8    <values>
9        <field>picklist1234__SortOrder__c</field>
10        <value xsi:nil="true" />
11    </values>
12</CustomMetadata>

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

1<?xml version="1.0" encoding="UTF-8"?>
2<package xmlns="http://soap.sforce.com/2006/04/metadata">
3
4   <types>
5      <members>picklist1234__ReusablePicklist.Hotels</members>
6      <members>picklist1234__ReusablePicklist.Planets</members>
7      <members>picklist1234__ReusablePicklistOption.Bellagio</members>
8      <members>picklist1234__ReusablePicklistOption.Motel6</members>
9      <members>picklist1234__ReusablePicklistOption.Mercury</members>
10      <members>picklist1234__ReusablePicklistOption.Venus</members>
11      <members>picklist1234__ReusablePicklistOption.Earth</members>
12      <members>picklist1234__PicklistUsage.BookedHotel</members>
13      <members>
14         picklist1234__PicklistUsage.DestinationPlanetPL
15      </members>
16      <members>picklist1234__PicklistUsage.PlanetVisitedPl</members>
17      <name>CustomMetadata</name>
18   </types>
19
20</package>
次の package.xml ファイルからの抜粋に示すように、TravelApp, Inc の package.xml ファイルで、ワイルドカードを使用してカスタムメタデータをインストールします。特定のレコードをリリースまたは取得する場合を除き、package.xml ファイルですべてのカスタムメタデータレコードをリストするよりもワイルドカードを使用した方が簡単です。
1<types>
2   <members>*</​members>
3   <name>Custom​Metadata</name>
4</types>

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

1<members>picklist1234__ReusablePicklist.travelApp1234__Hotels</members>

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

1<?xml version="1.0" encoding="UTF-8"?><values>
2<field>EntityDefintionField__c</field>
3<value xsi:type="xsd:string">v1__SalesAgreement__c</value>
4</values>
5<values>
6<field>FieldDefinitionField__c</field>
7<value xsi:type="xsd:string">v1__CustomerReference__c</value>
8</values>

使用方法

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 項目に正しい型の値が格納されます。

カスタム数値項目は double 値として保存されます。スケール 0 の数値データ型の項目から値を取得した場合は、10 進数が表示されます。たとえば、UI の値が 1234567 の場合、API を使用してクエリを実行すると、1234567.0 が返されます。

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

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