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
次の例は、メタデータ WSDL に基づいています。この例では、Apex クラスが記述されており、Metadata 名前空間が指定されています。次に、この例では返される DescribeValueTypeResult から情報 (プロパティ、親項目 (ある場合)、および項目) を取得します。その型の項目を反復処理して、各項目に関する情報を出力します。
1public void describeValueType() {
2 try {
3 DescribeValueTypeResult result = metadataConnection.describeValueType("{http://soap.sforce.com/2006/04/metadata}ApexClass");
4 StringBuffer sb = new StringBuffer();
5
6 if (result.getApiCreatable()) {
7 sb.append("Is API creatable.\n");
8 } else {
9 sb.append("Is not API creatable.\n");
10 }
11
12 ValueTypeField parentField = result.getParentField();
13 if (parentField != null) {
14 sb.append("** Parent type fields **\n");
15 sb.append("Name of parent type: " + parentField.getName() + "\n");
16 sb.append("MinOccurs: " + parentField.getMinOccurs() + "\n");
17 sb.append("SoapType: " + parentField.getSoapType() + "\n\n");
18 }
19
20 sb.append("** Value type fields **\n");
21 for(ValueTypeField field : result.getValueTypeFields()) {
22 sb.append("***************************************************\n");
23 sb.append("Name: " + field.getName() + "\n");
24 sb.append("MinOccurs: " + field.getMinOccurs() + "\n");
25 sb.append("SoapType: " + field.getSoapType() + "\n");
26 sb.append("***************************************************\n");
27 }
28 System.out.println(sb.toString());
29 } catch (ConnectionException ce) {
30 ce.printStackTrace();
31 }
32}Tooling WSDL を使用して前の例を実行するには、次のように describeValueType() コールの名前空間を Tooling 名前空間に置きかえます。
1DescribeValueTypeResult result = toolingConnection.describeValueType("{urn:metadata.tooling.soap.sforce.com}ApexClass");