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

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 など、メタデータが必要なメタデータ型の名前。名前空間が含まれます。

権限

クライアントアプリケーションは、「メタデータ API 関数を使用したメタデータの変更」権限または「すべてのデータの編集」権限でログインしている必要があります。

メタデータへのアクセス権がユーザに必要で、データへのアクセス権は必要でない場合、「メタデータ API 関数を使用したメタデータの変更」権限を有効にします。それ以外の場合は、「すべてのデータの編集」権限を有効にします。

メモ

サンプルコード — 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.>