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ドキュメントを参照してください:
最終更新日: