この記事の目次
Salesforce SOQL APIの概要
Salesforce のカスタム UI では、SOQL(Salesforce Object Query Language)、SOSL (Salesforce Object Search Language)のAPIを使用して、Salesforceのデータを検索できます。 機能としては、SQLの SELECT コマンドと同等です。SOQL では、以下の項目を指定できます。 ・取得元オブジェクト ・取得する項目のリスト ・取得元オブジェクトから行を選択するための条件Salesforce SOQL APIを選択するポイント
SOQLはSELECT SQL ステートメントに相当するAPIであり、取得したいデータが、どのオブジェクトに存在するかがわかっている場合に適しています。 SOSL はプログラム的にテキストベースで検索インデックスを実行し、項目内の複数の用語をトークン化して検索インデックスを構築できます。 そのため、より多くの関連結果を、速く返せます。どのオブジェクトに存在するかはわからない、特定の用語を含むデータを取得する場合には、SOSLが適しています。SOQL APIを使用する操作
SOQL APIは、Salesforceのどのオブジェクトに取得したいデータが存在するかがわかっていて、検索するオブジェクトを特定できる場合に適しています。 ・1 つもしくは相互に関連する複数のオブジェクトを特定してデータを取得する。 ・条件を満たすレコードの数をカウントする。 ・クエリに含まれる結果を並び替える。 ・取得するデータは、数値、日付、チェックボックス項目である。SOQL APIを使用する環境
次の環境で、SOQL APIを使用すると、効果的なクエリのコードをシンプルに作成できます。 ・query() コールの queryString パラメータ ・Apex ステートメント ・Visualforce コントローラ、getter メソッド ・Salesforce CLI、Visual Studio Code のSalesforce 拡張機能SalesforceのSOQL APIの使用方法
Query リソースを使用して、SOQL クエリを実行すると以下の結果を得られます。SOQLクエリを実行する場合と、SOQL クエリの残りの結果を取得する場合について説明します。 ・すべての結果を 1 つの応答で返す ・必要に応じて、結果の一部と、残りの結果を取得するために使用する識別子を返すSOQLクエリを実行する
SOQLクエリを実行するサンプルコードです。このケースではクエリを実行する場合のリクエストボディは不要です。 対象:すべてAccount レコード 要求する値: name 項目の値SOQLクエリを実行するサンプル
下記がサンプルになります。curl https://yourInstance.salesforce.com/services/data/v20.0/query/?q=SELECT+name+from+Account -H "Authorization: Bearer token"
SOQLクエリを実行する場合のレスポンスボディのサンプル
下記がサンプルになります。{
"done" : true,
"totalSize" : 14,
"records" :
[
{
"attributes" :
{
"type" : "Account",
"url" : "/services/data/v20.0/sobjects/Account/001D000000IRFmaIAH"
},
"Name" : "Test 1"
},
{
"attributes" :
{
"type" : "Account",
"url" : "/services/data/v20.0/sobjects/Account/001D000000IomazIAB"
},
"Name" : "Test 2"
},
...
]
}
SOQL クエリの残りの結果を取得する
クエリの残りの結果を取得する際は、パラメータではなく、nextRecordsUrl を使用します。 実行したクエリで結果の一部のみを返されるとき、応答の最後に nextRecordsUrl という項目が含まれます。次のバッチを要求し、すべてのレコードが取得されるまでこの操作が繰り返されます。 この場合もリクエストボディは不要です。クエリの残りの結果を取得する場合のサンプル
下記がサンプルになります。curl https://yourInstance.salesforce.com/services/data/v20.0/query/01gD0000002HU6KIAW-2000 -H "Authorization: Bearer token"
クエリの残りの結果を取得する場合のレスポンスボディのサンプル
{
"done" : true,
"totalSize" : 3214,
"records" : [...]
}
SOQLクエリの送信
SOQLクエリの送信には、RESTと SOAP プロトコルを使用します。レコード、記事、クエリの自動候補などの検索タスクを実行するリソースも利用できます。 Apex で、SOQLを使用する際はステートメントを[ ](角括弧)で囲みます。SOSLも同じ方法で使用できます。また、Search クラスにより動的な SOSL クエリを実行し、Search 名前空間を使用すれば、検索結果と提案結果を取得できます。 <RESTと SOAP プロトコル> ・Query (REST) と query() (SOAP) 対象:指定されたオブジェクト 動作:SOQL クエリを実行し、指定された条件に一致するデータを返す。 ・Search (REST) とearch() (SOAP) 対象:組織のデータ 動作:SOSL テキスト文字列検索する。 は不要です。Salesforce のSOQL APIの使い分けを理解しよう
Salesforce 上のデータの検索、クエリを実行するSOQL APIについて説明しました。 機能としてはSQLの SELECTに相当し、頻度の高いAPIと言えます。検索実行のパフォーマンスに影響しますので、SOSL との使い分けのポイントや使用方法を理解しておきましょう。]]>この記事の監修者・著者
-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
最新の投稿
- 2024年3月26日キャリア・転職保安職(自衛官・警察・消防官など)に向いている人の性格・特徴ランキング【現役保安職(自衛官・警察・消防官など)36人が回答】
- 2024年3月26日キャリア・転職保安職(自衛官・警察・消防官など)に必要なスキルランキング&スキルアップの方法とは?【現役保安職(自衛官・警察・消防官など)36人が回答】
- 2024年3月26日キャリア・転職クリエイター職(ライター・デザイナー・編集)に向いている人の性格・特徴ランキング【現役クリエイター職(ライター・デザイナー・編集)64人が回答】
- 2024年3月26日キャリア・転職クリエイター職(ライター・デザイナー・編集)に必要なスキルランキング&スキルアップの方法とは?【現役クリエイター職(ライター・デザイナー・編集)64人が回答】