delete()
非推奨。組織から 1 つ以上のコンポーネントを非同期に削除します。このコールは API バージョン 31.0 で削除されました。それより前のバージョンでのみ使用できます。代わりに deleteMetadata() を使用します。
このコールは、Metadata を拡張するいずれかのオブジェクトを削除するために使用できます。詳細は、「Metadata コンポーネントおよびメタデータ型」を参照してください。
構文
1AsyncResult[] = metadataConnection.delete(Metadata[] metadata);使用方法
このコールを使用して、組織から 1 つ以上のコンポーネントを削除します。
バージョン
このコールは、API バージョン 30.0 以前でのみ使用できます。このコールは、API バージョン 31.0 以降では使用できません。代わりに、deleteMetadata() を使用します。
ルールとガイドライン
コンポーネントを削除する場合は、次のルールやガイドラインを考慮する必要があります。
- 指定したコンポーネント内の個別のコンポーネントを削除するには、実行するのに十分なアクセス権を使用してクライアントアプリケーションにログインする必要があります。詳細は、『SOAP API 開発者ガイド』の「データアクセスに影響する要素」を参照してください。
- また、コンポーネントの親コンポーネントにアクセスする権限も必要となる場合があります。
- 参照整合性を確保するために、このコールはカスケード削除をサポートします。親コンポーネントを削除すると、各子コンポーネントが削除可能な場合は、その子コンポーネントは自動的に削除されます。
メタデータコンポーネント削除の基本手順
メタデータコンポーネントを削除するには次のプロセスを使用します。
- 削除する各コンポーネントの fullName を確認します。fullName 項目についての詳細は、「Metadata」を参照してください。1 つのコールで削除できるのは同じ型のコンポーネントのみです。
- delete() コールを呼び出し、fullName が指定されているメタデータコンポーネントの配列を渡します。
- 削除しようとするコンポーネントごとに AsyncResult オブジェクトが返されます。このオブジェクトは、操作がキューから完了またはエラー状態に移行すると、状況情報で更新されます。AsyncResult の状況値がすべての delete 操作が完了したことを示すまで、ループで checkStatus() をコールします。checkStatus() コールの反復間の待機時間を 1 秒間で開始して、以降の各コール実行時にはその待機時間を 2 倍の秒数に指定します。
サンプルコード —Java
1public void deleteCustomObject() {
2 try {
3 CustomObject co = new CustomObject();
4 co.setFullName("MyCustomObject__c");
5 AsyncResult[] ars = metadataConnection.create(new Metadata[]
6 {co});
7 AsyncResult asyncResult = ars[0];
8 long waitTimeMilliSecs = 1000;
9 while (!asyncResult.isDone()) {
10 Thread.sleep(waitTimeMilliSecs);
11 // double the wait time for the next iteration
12 waitTimeMilliSecs *= 2;
13 asyncResult = mdConnection.checkStatus(
14 new String[] {asyncResult.getId()})[0];
15 System.out.println("Status is: " + asyncResult.getState());
16 }
17 } catch (ConnectionException ce) {
18 ce.printStackTrace();
19 } catch (InterruptedException ie) {
20 ie.printStackTrace();
21 }
22}