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

CRUD ベースのメタデータ開発

組織またはアプリケーションの設定・定義コンポーネントを作成、更新、または削除するには、CRUD ベースのメタデータコールを使用します。これらの設定コンポーネントには、カスタムオブジェクト、カスタム項目、およびその他の設定メタデータが含まれます。メタデータコールは、コンポーネントの作成、更新、または削除について、Salesforce ユーザインターフェースの動作を模倣します。適用されるすべてのルールは、これらのコールにも適用されます。

メタデータコールは、コアの同期 API コールとは次の点で異なります。
  • メタデータ API コールは、別の WSDL で使用できます。WSDL をダウンロードするには、Salesforce にログインし、[設定] から [クイック検索] ボックスに「API」と入力し、[API] を選択して、[メタデータ WSDL のダウンロード] リンクをクリックします。
  • ログイン後、SOAP API 以外の URL を持つメタデータ API エンドポイントにメタデータ API コールを送信する必要があります。SOAP API login() コールによって返される LoginResult から metadataServerUrl を取得します。SOAP API についての詳細は、『SOAP API 開発者ガイド』を参照してください。
  • メタデータコールには、同期と非同期があります。API バージョン 30.0 以降では、CRUD コールは同期で、API コアコールと同様に 1 つのコールで結果が返されます。以前の API バージョンでは、作成、更新、および削除は非同期のみであるため、結果は 1 つのコールですぐに返されません。
  • 対応するコアの SOAP API 同期コールに対応付けられた同期メタデータコールがあります。
    • createMetadata() は、create() SOAP API コールに対応付けられます。
    • updateMetadata() は、update() SOAP API コールに対応付けられます。
    • deleteMetadata() は、delete() SOAP API コールに対応付けられます。

メタデータ API は、メタデータコンポーネントの取得とリリースを行う retrieve() コールと deploy() コールもサポートしています。詳細は、「メタデータのリリースと取得」を参照してください。

メモ

同期コールを使用した CRUD ベース開発用の Java サンプル

このセクションでは、CRUD ベースのコールを使用する Java クライアントアプリケーションのサンプルについて説明します。このサンプルアプリケーションでは、次の主要なタスクを実行します。

  1. MetadataLoginUtil.java クラスを使用し、Metadata 接続を作成します。詳細は、「ステップ 3: Java サンプルコードの説明」を参照してください。
  2. カスタムオブジェクトを作成するには、createMetadata() をコールします。このコールは、1 つのコールで結果を返します。
  3. 返される SaveResult オブジェクトを調べて、操作に成功したかどうかを確認し、成功していなかった場合はコンポーネント名、エラーメッセージ、および状況コードを出力に書き込みます。

非同期コールを使用した CRUD ベース開発用の Java サンプル

このセクションのサンプルでは、非同期 create() CRUD コールを使用します。非同期 CRUD コールは API バージョン 31.0 で使用できなくなりました。それより前の API バージョンでのみ使用できます。

重要

このセクションでは、非同期 CRUD ベースのコールを使用する Java クライアントアプリケーションのサンプルについて説明します。このサンプルアプリケーションでは、次の主要なタスクを実行します。

  1. MetadataLoginUtil.java クラスを使用し、Metadata 接続を作成します。詳細は、「ステップ 3: Java サンプルコードの説明」を参照してください。
  2. 新しいカスタムオブジェクトを作成するには、create() をコールします。

    Salesforce では、作成しようとしたコンポーネントごとに AsyncResult オブジェクトが返されます。AsyncResult オブジェクトは、操作がキューから完了またはエラー状態に移行するたびに、状況情報で更新されます。

  3. AsyncResult の状況値が create 操作が完了したことを示すまで、ループで checkStatus() をコールします。

API コールに続く、エラー処理コードに注意してください。