readMetadata()
構文
1ReadResult = metadataConnection.readMetadata(string metadataType, string[] fullNames);使用方法
readMetadata() コールは、メタデータを拡張するすべてのコンポーネントの取得に使用します。同一コール内のすべてのコンポーネントは、同じ種類である必要があります。詳細は、「Metadata コンポーネントおよびメタデータ型」を参照してください。
このコールは同期して実行されます。つまり、コールは、操作が完了したときにのみ戻ります。
バージョン
API バージョン 30.0 以降で使用できます。
権限
クライアントアプリケーションは、「すべてのデータの編集」権限でログインしている必要があります。
メタデータコンポーネント読み込みの基本手順
メタデータコンポーネントを読み込むには、次のプロセスを使用します。
- 読み込むコンポーネントのメタデータ型と、読み込む各コンポーネントの fullName を判別します。fullName 項目についての詳細は、「Metadata」を参照してください。1 つのコールで読み込めるのは同じ型のコンポーネントのみです。
- readMetadata() コールを呼び出します。最初の引数で、メタデータ型の名前を渡します。メタデータ型は、describeMetadata() コールで返された値のいずれかと一致する必要があります。2 つ目の引数で、取得するコンポーネントに対応する完全名の配列を渡します。完全名は、listMetadata() コールで返された完全名の 1 つ以上と一致する必要があります。
- Metadata コンポーネントの配列が含まれる ReadResult が返されます。返された各 Metadata オブジェクトを、コールで指定したメタデータ型にキャストしてコンポーネントのプロパティを取得します。
サンプルコード —Java
1swfobject.registerObject("clippy.codeblock-1", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public void readCustomObjectSync() {
18 try {
19 ReadResult readResult = metadataConnection
20 .readMetadata("CustomObject", new String[] {
21 "MyCustomObject1__c", "MyCustomObject2__c" });
22 Metadata[] mdInfo = readResult.getRecords();
23 System.out.println("Number of component info returned: "
24 + mdInfo.length);
25 for (Metadata md : mdInfo) {
26 if (md != null) {
27 CustomObject obj = (CustomObject) md;
28 System.out.println("Custom object full name: "
29 + obj.getFullName());
30 System.out.println("Label: " + obj.getLabel());
31 System.out.println("Number of custom fields: "
32 + obj.getFields().length);
33 System.out.println("Sharing model: "
34 + obj.getSharingModel());
35 } else {
36 System.out.println("Empty metadata.");
37 }
38 }
39 } catch (ConnectionException ce) {
40 ce.printStackTrace();
41 }
42}