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

PK Chunking を使用した一括クエリサンプルの説明

このコードサンプルは、cURL を使用して、いくつかの取引先レコードで PK Chunking が有効な一括クエリを実行します。

インテグレーションまたはその他のクライアントアプリケーションを作成する前に、次のことを実行してください。

  • 製品ドキュメントに従って、開発プラットフォームをインストールする。
  • テストクライアントアプリケーションの作成を開始する前に、すべての手順に目を通す。用語およびコンセプトについて理解するために、このマニュアルの残りの部分も確認します。

メモ

PK Chunking が有効なジョブの作成

  1. 次のテキストを含む、create-job.xml というファイルを作成します。
  2. コマンドラインウィンドウを使用して、次の cURL コマンドを実行し、PK Chunking が有効なジョブを作成します。

    curl -H "X-SFDC-Session: sessionId" -H "Content-Type: application/xml; charset=UTF-8" -H "Sforce-Enable-PKChunking: true" -d @create-job.xml https://instance.salesforce.com/services/async/60.0/job

    instance は、ログインの応答でメモした <serverUrl> 要素の一部分です。sessionId は同様にメモした <sessionId> 要素です。

    Salesforce は、レコード数が 1,000 万を超えるテーブルを照会する場合や、一括クエリがいつもタイムアウトしてしまう場合に PK Chunking を有効化することをお勧めします。この例では、この推奨件数よりも大幅に少ないレコード数を照会している場合に、そのレコード数よりも小さい数を chunkSize に設定します。たとえば、「Sforce-Enable-PKChunking: chunkSize=1000」などです。こうすることで、PK Chunking の動作、およびクエリが複数のバッチに分割されることを確認できます。

    メモ

    Salesforce により、次のようなデータを含む XML 応答が返されます。

ジョブへのバッチの追加

  1. SOQL クエリステートメントを含む、query.txt というファイルを作成します。
  2. コマンドラインウィンドウを使用して、次の cURL コマンドを実行し、ジョブにバッチを追加します。

    curl -d @query.txt -H "X-SFDC-Session: sessionId" -H "Content-Type: text/csv; charset=UTF-8" https://instance.salesforce.com/services/async/60.0/job/jobId/batch

    jobId は、ジョブ作成の応答で返されたジョブ ID です。

    Salesforce により、次のようなデータを含む XML 応答が返されます。

    一括クエリジョブにバッチを追加するときに、要求のヘッダーの Content-Type には、ジョブの作成時に指定されたコンテンツタイプに応じて、text/csvapplication/xml、または application/json を指定する必要があります。バッチに使用される実際の SOQL ステートメントは、平文テキスト形式で表されます。

    メモ

ジョブとバッチの状況の確認

  1. コマンドラインウィンドウを使用して、次の cURL コマンドを実行し、ジョブの状況を確認します。

    curl -H "X-SFDC-Session: sessionId" https://instance.salesforce.com/services/async/60.0/job/jobId

    Salesforce により、次のようなデータを含む XML 応答が返されます。

    PK Chunking が有効化されているため、クエリ全体を処理するための追加バッチが自動的に作成されます。
  2. コマンドラインウィンドウを使用して、次の cURL コマンドを実行し、元のバッチの状況を確認します。

    curl -H "X-SFDC-Session: sessionId" https://instance.salesforce.com/services/async/60.0/job/jobId/batch/batchId

    batchId は、バッチ作成の応答で返されたバッチ ID です。

    Salesforce により、次のようなデータを含む XML 応答が返されます。

    PK Chunking が有効化されているため、元のバッチの状況は Not Processed になります。クエリは残りのバッチで処理されます。

残りのバッチの ID の取得

コマンドラインウィンドウを使用して、次の cURL コマンドを実行し、残りのバッチを取得します。

curl -H "X-SFDC-Session: sessionId" https://instance.salesforce.com/services/async/60.0/job/jobId/batch

Salesforce により、次のようなデータを含む XML 応答が返されます。

結果の取得

残りの各バッチで次の手順を実行します。
  1. コマンドラインウィンドウを使用して、次の cURL コマンドを実行し、バッチ結果のリストを取得します。

    curl -H "X-SFDC-Session: sessionId" https://instance.salesforce.com/services/async/60.0/job/jobId/batch/batchId/result

    Salesforce により、次のようなデータを含む XML 応答が返されます。

    バッチに再試行が必要であった場合、出力に複数の <result> 要素が記述されます。

    メモ

  2. コマンドラインウィンドウを使用して、次の cURL コマンドを実行し、クエリの結果を取得します。

    curl -H "X-SFDC-Session: sessionId" https://instance.salesforce.com/services/async/60.0/job/jobId/batch/batchId/result/resultId

    resultId は、バッチ結果リストの要求に対する応答で返された結果 ID です。

    Salesforce により、次のようなデータを含む CSV 応答が返されます。

ジョブの終了

  1. 次のテキストを含む、close-job.xml というファイルを作成します。
  2. コマンドラインウィンドウを使用して、次の cURL コマンドを実行し、ジョブを終了します。

    curl -H "X-SFDC-Session: sessionId" -H "Content-Type: text/csv; charset=UTF-8" -d @close-job.xml https://instance.salesforce.com/services/async/60.0/job/jobId

    Salesforce により、次のようなデータを含む XML 応答が返されます。