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