createMetadata()
構文
1SaveResult[] = metadatabinding.createMetadata(Metadata[] metadata);使用方法
createMetadata() コールは、メタデータを拡張するすべてのコンポーネントの作成に使用します。同一コール内のすべてのコンポーネントは、同じ種類である必要があります。詳細は、「Metadata コンポーネントおよびメタデータ型」を参照してください。
このコールは同期して実行されます。つまり、コールは、操作が完了したときにのみ戻ります。
API バージョン 34.0 以降、このコールで AllOrNoneHeader ヘッダーがサポートされます。デフォルトでは、AllOrNoneHeader が API バージョン 34.0 以降で使用されていない場合、このコールでエラーのない一部のレコードを保存できます (AllOrNoneHeader=false に相当)。API バージョン 33.0 以前の場合、デフォルトでは、コール内のどのレコードにもエラーがない場合にのみ、すべてのレコードが保存されます (AllOrNoneHeader=true に相当)。
バージョン
API バージョン 30.0 以降で利用できます。
必須項目
必須項目は、作成されるメタデータコンポーネントによって決まります。特定のコンポーネントの種類についての詳細は、「Metadata コンポーネントおよびメタデータ型」を参照してください。
有効なデータ値
項目のデータ型に対して有効な値を入力する必要があります。たとえば、整数項目については整数を入力します (英字は不可)。クライアントアプリケーションでは、使用しているプログラム言語および開発ツールに指定されたデータ形式ルールに従ってください (開発ツールは、SOAP メッセージのデータ型の適切な対応付けを処理します)。
文字列値
文字列項目に値を格納する場合、前後にある空白は API が切り捨てます。たとえば、label 項目の値に "MyObject " と入力されると、その値はデータベースに "MyObject" として保存されます。
メタデータコンポーネント作成の基本手順
メタデータコンポーネントを作成するには、次のプロセスを使用します。
- 配列を設計し、作成するコンポーネントを挿入します。すべてのコンポーネントは同じ種類である必要があります。
- 引数にコンポーネント配列を渡し、createMetadata() をコールします。
- 作成しようとしたコンポーネントごとに SaveResult オブジェクトが返されます。このオブジェクトには、操作が成功したかどうか、作成されたコンポーネントの名前、操作が成功しなかった場合は返されたエラーに関する情報が含まれます。
サンプルコード —Java
1swfobject.registerObject("clippy.codeblock-1", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public void createCustomObjectSync() {
18 try {
19 CustomObject co = new CustomObject();
20 String name = "MyCustomObject1";
21 co.setFullName(name + "__c");
22 co.setDeploymentStatus(DeploymentStatus.Deployed);
23 co.setDescription("Created by the Metadata API");
24 co.setEnableActivities(true);
25 co.setLabel(name + " Object");
26 co.setPluralLabel(co.getLabel() + "s");
27 co.setSharingModel(SharingModel.ReadWrite);
28
29 CustomField nf = new CustomField();
30 nf.setType(FieldType.Text);
31 nf.setLabel(co.getFullName() + " Name");
32 co.setNameField(nf);
33
34 SaveResult[] results = metadataConnection
35 .createMetadata(new Metadata[] { co });
36
37 for (SaveResult r : results) {
38 if (r.isSuccess()) {
39 System.out.println("Created component: " + r.getFullName());
40 } else {
41 System.out
42 .println("Errors were encountered while creating "
43 + r.getFullName());
44 for (Error e : r.getErrors()) {
45 System.out.println("Error message: " + e.getMessage());
46 System.out.println("Status code: " + e.getStatusCode());
47 }
48 }
49 }
50 } catch (ConnectionException ce) {
51 ce.printStackTrace();
52 }
53}引数
| 名前 | 型 | 説明 |
|---|---|---|
| metadata | Metadata[] | 1 つ以上のメタデータコンポーネントの配列。 上限: 10。(CustomMetadata の場合のみ、上限は 200)。 1 つの種類のコンポーネントの配列を送信する必要があります。たとえば、10 個のカスタムオブジェクトの配列または 10 個のプロファイルの配列を送信できますが、両方の種類を混ぜて送信することはできません。 |