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

query()

指定のオブジェクトに対してクエリを実行して、指定の条件に一致したデータを返します。

構文

使用方法

query() コールを使用すると、オブジェクトからデータを取得できます。クライアントアプリケーションがquery() コールを呼び出すとき、照会するオブジェクトを指定するクエリ式、取得する項目、および特定のオブジェクトが該当するかどうかを判断する条件を渡します。クエリに関して使用される構文と規則に関するさまざまなトピックについては、『Salesforce SOQL および SOSL リファレンスガイド』を参照してください。

呼び出し時に、API は特定のオブジェクトに対するクエリを実行し、API 上のクエリの結果をキャッシュし、クエリレスポンスオブジェクトをクライアントアプリケーションに返します。それから、クライアントアプリケーションは、クエリレスポンスの行を通して反復し、情報を取得するために、クエリレスポンスオブジェクト上のメソッドを使用できます。

オブジェクト内で個々のオブジェクトを照会したり、項目リスト内で項目を照会したりするには、適切なアクセス権でクライアントアプリケーションにログインする必要があります。詳細は、「データアクセスに影響する要素」を参照してください。

いくつかのオブジェクトは、API 経由でクエリを実行できません。query() コールを介してオブジェクトを照会するには、オブジェクトがクエリ可能に設定されている必要があります。クエリ可能かどうかを判断するために、クライアントアプリケーションは、オブジェクト上の describeSObjects() コールを呼び出すことができ、queryable プロパティを確認できます。

Enterprise WSDL を使用している場合、選択リストへのデータ入力に describe を使用しないでください。たとえば実行後に、システム管理者が、その SObject に項目を追加する場合、describe コールは項目をプルダウンしますが、ツールキットではシリアライズを処理できないため、このインテグレーションは失敗します。

ヒント

アーカイブされているかどうかにかかわらず、すべての ToDo行動 のレコード上では、queryAll() でクエリを実行できます。アーカイブ済みのオブジェクトのみを検索するには、isArchived 項目を絞り込みに利用できます。query() は、isArchivedtrue に設定されている場合、すべてのレコードを自動的に除外するため、query() は使用できません。アーカイブ済みのレコードの挿入、更新、または削除も可能です。

クエリ結果のオブジェクトには、デフォルトで、最大 500 行のデータが含まれます。クエリ結果が 500 行を超える場合、クライアントアプリケーションは queryMore() コールとサーバ側のカーソルを使用して、追加の行を 500 行のチャンクで取得します。QueryOptions ヘッダーのデフォルトサイズを最大 2,000 行に増やすことができます。詳細は、『SOQL および SOSL リファレンス』「クエリのバッチサイズの変更」を参照してください。

処理が 2 分以上経過したクエリは、タイムアウトします。タイムアウトしたクエリに関しては、API は、InvalidQueryLocatorFault の API 失敗エラー要素を返します。タイムアウトが発生した場合は、より少量のデータをスキャンするか、クエリを再構成します。

型が Base64 の項目について (「base64」参照) 照会する場合には、クエリレスポンスオブジェクトは、一度に 1 つのレコードしか返しません。query() コールのバッチサイズを変更しても、これを変更することはできません。

マルチ通貨組織に関しては、異なる通貨の値を含んでいる通貨項目を照会するには、特別な処理が必要です。たとえば、クライアントアプリケーションで、UnitPrice 項目の値に基づいてPricebookEntry オブジェクトを照会する場合や、UnitPrice の金額が異なる通貨で表示される場合には、クエリのロジックで、この状況を正しく処理する必要があります。次に、10 USD 以上の単価の全商品の商品コードを取得する場合のクエリ式の例を示します。

メモ

サンプルコード —Java

このサンプルでは、すべての取引先責任者の名および姓を取得するクエリを実行します。クエリ文字列を渡して、query() をコールし、レコードの最初のバッチを取得します。次に、ループで queryMore() をコールして、レコードが返されなくなるまで、後続のバッチを取得します。照会した取引先責任者の名と姓をコンソールに書き込みます。

サンプルコード —C#

このサンプルでは、すべての取引先責任者の名および姓を取得するクエリを実行します。クエリ文字列を渡して、query() をコールし、レコードの最初のバッチを取得します。次に、ループで queryMore() をコールして、レコードが返されなくなるまで、後続のバッチを取得します。照会した取引先責任者の名と姓をコンソールに書き込みます。

引数

名前 説明
queryString string クエリの対象となるオブジェクト、受け取る項目、およびクエリに特定のオブジェクトを含む任意の条件を指定するクエリ文字列。詳細は、『Salesforce SOQL および SOSL リファレンスガイド』を参照してください。

応答

QueryResult