describeValueType()
特定のメタデータ型 (値の型) を記述するメタデータを取得します。
describeValueType() は、名前空間と型名を受け入れ、DescribeValueTypeResult オブジェクトを返します。このコールは、API バージョン 33.0 以降で使用できます。
構文
1DescribeValueTypeResult = connection.describeValueType("{namespace}type_name");例
Metadata 名前空間で Apex クラスのメタデータを記述します。
1DescribeValueTypeResult = metadataConnection.describeValueType("{http://soap.sforce.com/2006/04/metadata}ApexClass");Tooling 名前空間で Apex クラスのメタデータを記述します。
1DescribeValueTypeResult = toolingConnection.describeValueType("{urn:metadata.tooling.soap.sforce.com}ApexClass");引数
| 名前 | 型 | 説明 |
|---|---|---|
| type | string | ApexClass など、メタデータが必要なメタデータ型の名前。名前空間が含まれます。 |
サンプルコード —Java
次の例では、Metadata 名前空間が指定され、いくつかのメタデータ型が記述されています。各メタデータ型は、describeValueType() メタデータ API コールをコールするヘルパーメソッド doDescribe() を使用して記述されます。この例では返される DescribeValueTypeResult から情報 (プロパティ、親項目 (ある場合)、および項目) を取得します。次に、項目を反復処理して、各項目に関する情報を出力します。
1public void describeValueType() throws ConnectionException {
2 doDescribe("{http://soap.sforce.com/2006/04/metadata}CustomObject");
3 doDescribe("{http://soap.sforce.com/2006/04/metadata}CustomField");
4 doDescribe("{http://soap.sforce.com/2006/04/metadata}EmailTemplate");
5}
6
7public void doDescribe(String type) throws ConnectionException {
8 DescribeValueTypeResult result = metadataConnection.describeValueType(type);
9 StringBuffer sb = new StringBuffer();
10
11 sb.append("Describing " + type + " ...\n");
12
13 if (result.getApiCreatable() == true) {
14 sb.append("Is API creatable.\n");
15 } else {
16 sb.append("Is not API creatable.\n");
17 }
18
19 ValueTypeField parentField = result.getParentField();
20 if (parentField != null) {
21 sb.append("** Parent type fields **\n");
22 if (parentField.getIsForeignKey()) {
23 sb.append("This field is a foreign key.\n");
24 for (String fkDomain : parentField.getForeignKeyDomain()) {
25 sb.append("Foreign key domain: " + fkDomain + "\n");
26 }
27 }
28 }
29
30 sb.append("** Value type fields **\n");
31 for(ValueTypeField field : result.getValueTypeFields()) {
32 sb.append("***************************************************\n");
33 sb.append("Name: " + field.getName() + "\n");
34 sb.append("SoapType: " + field.getSoapType() + "\n");
35 if (field.getIsForeignKey()) {
36 sb.append("This field is a foreign key.\n");
37 for (String fkDomain : field.getForeignKeyDomain()) {
38 sb.append("Foreign key domain: " + fkDomain + "\n");
39 }
40 }
41 sb.append("***************************************************\n");
42 }
43 System.out.println(sb.toString());
44}Tooling WSDL を使用して前の例を実行する��は、次のようにヘルパー関数コールの名前空間を Tooling 名前空間に置きかえます。または、メタデータ接続の代わりに Tooling 接続を使用して、describeValueType() コールを行います。
1doDescribe("{urn:metadata.tooling.soap.sforce.com}CustomObject");
2 doDescribe("{urn:metadata.tooling.soap.sforce.com}CustomField");
3 doDescribe("{urn:metadata.tooling.soap.sforce.com}EmailTemplate");サンプルを実行したら、出力は次のようになります。
1Describing {http://soap.sforce.com/2006/04/metadata}CustomObject ...
2Is API creatable.
3** Value type fields **
4***************************************************
5Name: actionOverrides
6SoapType: ActionOverride
7***************************************************
8***************************************************
9Name: allowInChatterGroups
10SoapType: boolean
11***************************************************
12***************************************************
13Name: articleTypeChannelDisplay
14SoapType: ArticleTypeChannelDisplay
15***************************************************
16***************************************************
17Name: businessProcesses
18SoapType: BusinessProcess
19***************************************************
20***************************************************
21Name: compactLayoutAssignment
22SoapType: string
23***************************************************
24***************************************************
25Name: compactLayouts
26SoapType: CompactLayout
27***************************************************
28***************************************************
29Name: customHelp
30SoapType: string
31This field is a foreign key.
32Foreign key domain: ApexPage
33Foreign key domain: Scontrol
34***************************************************
35<The rest of the output for CustomObject has been omitted for brevity.>
36
37Describing {http://soap.sforce.com/2006/04/metadata}CustomField ...
38Is API creatable.
39** Parent type fields **
40This field is a foreign key.
41Foreign key domain: CustomObject
42** Value type fields **
43***************************************************
44Name: caseSensitive
45SoapType: boolean
46***************************************************
47***************************************************
48
49Name: defaultValue
50SoapType: string
51***************************************************
52
53<The rest of the output has been omitted for brevity.>