CustomMetadata
Metadata メタデータ型を拡張し、その fullName 項目を継承します。
ファイルのサフィックスおよびディレクトリの場所
CustomMetadata コンポーネントのサフィックスは .md で、customMetadata フォルダーに保存されます。カスタムメタデータ型とは異なり、カスタムメタデータレコードにはアンダースコア 2 個のサフィックスはありません。カスタムメタデータレコード名の先頭にカスタムメタデータ型名が追加されます。__mdt サフィックスは除外されますが、インストールされた管理パッケージのすべての型の名前空間は含まれます。
バージョン
CustomMetadata コンポーネントは、API バージョン 31.0 以降で使用できます。
特別なアクセスルール
カスタムメタデータレコードを作成するには、「アプリケーションのカスタマイズ」権限が必要です。
項目
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| description | string | カスタムメタデータレコードの説明。この項目には、最大で 1,000 文字を含めることができます。 |
| label | string | Salesforce の [設定] ユーザーインターフェース全���でオブジェクトを表す表示ラベル。現在、カスタムメタデータレコードはパッケージ化のユーザーインターフェースでのみ表示されます。 |
| protected | boolean |
ブール型。レコードが保護されているか (true)、否か (false) を示します。カスタムメタデータ型が管理パッケージ内でリリースされた場合、そのアクセスは特定の方法で制限されます。
|
| values | CustomMetadataValue[] | カスタムメタデータレコードのカスタム項目の 1 つ以上の値を表します。 |
CustomMetadataValue
カスタムメタデータレコードのカスタム項目の値を表します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| field | string | 必須。カスタムメタデータ型のカスタム項目の非オブジェクト修飾名。この値は、カスタムメタデータレコードのカスタムメタデータ型の項目名に対応します。名前空間 (管理パッケージから取得された型の場合) と __c サフィックスが含まれます。カスタムメタデータ型の名前は必要ありません。たとえば、picklist1234__AlphaSort__c です。 |
| value | 任意の型 | カスタムメタデータレコードの値。項目が EntityDefinition および FieldDefinition の場合、エンティティとそれが参照する項目の修飾された API 参照名。この値は null にできます。 詳細は、「使用方法」を参照してください。 |
宣言的なメタデータの定義のサンプル
CustomMetadata コンポーネントの例を次に示します。この例では、サンプルアプリケーション TravelApp で Planets 選択リストをリリースし、その並べ替え順を指定して、選択リスト項目を追加します。
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>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>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>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>1<types>
2 <members>*</members>
3 <name>CustomMetadata</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>使用方法
| カスタムメタデータ値 | カスタム項目定義 |
|---|---|
| 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" | |
| 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 ファイルを使用したメタデータのリリースと取得」を参照してください。