SOQL
特定のレコードを検索するために、Salesforce Object Query Language (SOQL) を使用してSalesforceデータを検索できます。 SOQLはStructured Query Language(SQL)のSELECTステートメントに似ていますが、Salesforceデータ専用に設計されています。 次のSalesforceコネクター操作はSOQLをサポートしています:
アクション:
トリガー:
次のクエリは、SOQLクエリの基本構文を示しています:
SELECT(フィールドのリスト)FROM(オブジェクト)WHERE(フィルターステートメントと任意の並べ替え)
主要なSalesforceオブジェクトの標準フィールドのリストについては、Salesforce Fields Referenceを参照してください。
SOQL WHERE条件(構文)
SOQLのWHERE句はフィールド式の構文に従います。 fieldExpressionは<fieldName> <comparisonOperator> <value>として定義されます。 次のセクションでは、有効なSOQLWHEREクエリの例を示します。
比較演算子
次のリストには、すべてのSOQL比較演算子が含まれています:
=!=<<=>>=LIKEINNOT ININCLUDESEXCLUDES
次の例では、有効なSOQL比較演算子とともにfieldExpression構文を使用しています:
比較演算子とともにfieldExpression構文を使用する例
各比較演算子の使用方法の詳細については、Comparison Operatorsを参照してください。
論理演算子
複数のフィールド式は、論理演算子を使用して結合できます。 これには、AND、OR、NOTが含まれます。 次のリストには、各演算子の基本構文が含まれています:
fieldExpressionX AND fieldExpressionYfieldExpressionX OR fieldExpressionYNOT fieldExpressionX
次の例では、論理演算子で結合された2つのfieldExpressionsを使用しています:
論理演算子を使用して2つのfieldExpressionsを結合する例
論理演算子の詳細については、Logical Operatorsを参照してください。
その他のSOQL句
LIMIT: 検索で返される結果の数を制限します。OFFSET: 結果を返す前に、指定した数の行をスキップします。
両方の句の最大値は2,000です。 2,000を超えるオフセットをリクエストすると、NUMBER_OUTSIDE_VALID_RANGEエラーが発生します。
日付形式と日付リテラル
dateまたはdateTimeフィールドをクエリするには、Formulaモードを使用する必要があります。 Formulaモードは、タイムスタンプをSOQLで想定されるISO8601形式に変換します。
クエリでdateフィールドをフィルターするには、Date only形式を使用する必要があります。 この構文はYYYY-MM-DDです。
クエリでdateTimeフィールドをフィルターするには、日付、時刻、タイムゾーンオフセットを含む形式を使用する必要があります。 dateTime形式には3つの形式があります:
YYYY-MM-DDThh:mm:ss+hh:mmYYYY-MM-DDThh:mm:ss-hh:mmYYYY-MM-DDThh:mm:ssZ
DATE値とDATETIME値の形式
date値またはdateTime値を単一引用符で囲む必要はありません。 dateフィールドの場合、date Formulaの末尾に.to_dateを追加して、日付またはタイムスタンプを正しい形式に変換します。
次の2つの例では、SOQLクエリで.to_dateを使用する方法を示しています。
クエリで.to_dateを使用する例
クエリで.to_dateを使用する例
dateTimeフィールドの場合、クエリで使用する推奨形式はYYYY-MM-DDThh:mm:ssZ形式です。 nowや2.weeks.ago.beginning_of_dayなどのFormulaを使用して目的のタイムスタンプを取得した後、クエリの末尾に.strftime("%Y-%m-%dT%H:%M:%S%z")を追加します。
クエリで.strftimeを使用する例
日付形式と日付リテラルの詳細については、Date Formats and Date Literalsを参照してください。
SOQLを使用するトリガーとアクション
WHERE句を使用したクエリ
次のトリガーまたはアクションのいずれかを使用して、Workato UIで指定したフィールドを使用してSOQL入力が自動的に設定されるSOQLクエリをセットアップします。 Workato UIで使用可能なフィールドを使用して入力が設定されるSOQLクエリをすばやくセットアップするには、以下のトリガーまたはアクションのいずれかを使用します:
トリガー
- SOQLクエリの
WHERE句を使用したスケジュール済みレコード検索
アクション
- SOQLクエリを使用したレコードの一括検索(API 1.0)
- SOQLクエリの
WHERE句を使用したレコード検索
WHERE句を必要とするトリガーまたはアクションを使用する場合、レシピはクエリのSELECT FROM部分を自動的に処理します。 レシピは、Fields to retrieveピックリストで選択したオブジェクトを使用して、そのオブジェクトFROMのすべてのフィールドをSELECTします。
使用可能な場合は、LIMITフィールドとOFFSETフィールドの値も指定できます。 LIMITフィールドとOFFSETフィールドは、一括アクションではサポートされていません。
特殊文字のエスケープ
SOQL WHERE句にエスケープされていない"または'文字が含まれている場合、Salesforceはクエリを不正な形式としてマークします。 特殊文字の前にバックスラッシュ(\)を追加してエスケープできます。 例: O\'glenn Johnson。
Rubyのgsub関数を使用して、特定の文字を置換することもできます。 例:
gsub(/'/, "\\:'").gsub(/:/, "")完全なSOQLクエリを使用したクエリ
Workatoで完全なSOQLクエリを使用するには、以下のトリガーまたはアクションのいずれかを使用します:
トリガー
- SOQLクエリを使用したスケジュール済みレコード検索
アクション
- SOQLクエリを使用したレコードの一括検索(API 2.0)
- SOQLクエリを使用したレコード検索
完全なSOQLクエリの使用
次の例は、Search records in bulk using SOQL query (API 2.0) または Search for records using SOQL query アクションのSOQLクエリを示しています。
アクション用SOQLクエリの例
出力スキーマを生成するには、Use SOQLを選択します。 SOQL Queryフィールドに入力したものと同じSOQLを、Provide SOQL Queryフィールドで使用します。 Output schemaセクションのReview dataステージで、クエリが実行され、サンプル行が返されます。 出力スキーマを生成するには、Generate schemaを選択します。
スキーマ生成の例
後続のレシピステップでは、SOQLクエリの出力にデータツリーからアクセスできます。
SOQLクエリの最大長
SOQLクエリの最大長は16,000文字です。
この長さを超えるSOQLクエリは、Connection reset by peerエラーをトリガーします。 クエリを短くしてエラーを防ぐことができます。
追加ドキュメント
その他のSOQLリソースについては、次のSalesforceドキュメントを参照してください:
Last updated: