この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

delete()

非推奨。組織から 1 つ以上のコンポーネントを非同期に削除します。このコールは API バージョン 31.0 で削除されました。それより前のバージョンでのみ使用できます。代わりに deleteMetadata() を使用します。
このコールは、Metadata を拡張するいずれかのオブジェクトを削除するために使用できます。詳細は、「Metadata コンポーネントおよびメタデータ型」を参照してください。

構文

1AsyncResult[] = metadataConnection.delete(Metadata[] metadata);

使用方法

このコールを使用して、組織から 1 つ以上のコンポーネントを削除します。

バージョン

このコールは、API バージョン 30.0 以前でのみ使用できます。このコールは、API バージョン 31.0 以降では使用できません。代わりに deleteMetadata() を使用します。

権限

クライアントアプリケーションは、「メタデータ API 関数を使用したメタデータの変更」権限または「すべてのデータの編集」権限でログインしている必要があります。

メタデータへのアクセス権がユーザーに必要で、データへのアクセス権は必要でない場合、「メタデータ API 関数を使用したメタデータの変更」権限を有効にします。それ以外の場合は、「すべてのデータの編集」権限を有効にします。

メモ

ルールとガイドライン

コンポーネントを削除する場合は、次のルールやガイドラインを考慮する必要があります。

  • 指定したコンポーネント内の個別のコンポーネントを削除するには、実行するのに十分なアクセス権を使用してクライアントアプリケーションにログインする必要があります。詳細は、『Salesforce オブジェクトリファレンス』「データアクセスに影響する要素」を参照してください。
  • また、このコンポーネントの親コンポーネントにアクセスする権限も必要となる場合があります。
  • 参照整合性を確保するために、このコールはカスケード削除をサポートします。親コンポーネントを削除すると、各子コンポーネントが削除可能な場合は、その子コンポーネントは自動的に削除されます。

メタデータコンポーネント削除の基本手順

メタデータコンポーネントを削除するには次のプロセスを使用します。

  1. 削除する各コンポーネントの fullName を確認します。fullName 項目についての詳細は、「Metadata」を参照してください。1 つのコールで削除できるのは同じ型のコンポーネントのみです。
  2. delete() コールを呼び出し、fullName が指定されているメタデータコンポーネントの配列を渡します。
  3. 削除しようとするコンポーネントごとに 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}

引数

名前 説明
metadata Metadata[]

1 つ以上のメタデータコンポーネントの配列。Metadata オブジェクトの fullName 項目のみを設定します。

上限: 10。

1 つの種類のコンポーネントの配列を送信する必要があります。たとえば、10 個のカスタムオブジェクトの配列または 10 個のプロファイルの配列を送信できますが、両方の種類を混ぜて送信することはできません。

応答

AsyncResult[]