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比較演算子が含まれています:

  • =
  • !=
  • <
  • <=
  • >
  • >=
  • LIKE
  • IN
  • NOT IN
  • INCLUDES
  • EXCLUDES

次の例では、有効なSOQL比較演算子とともにfieldExpression構文を使用しています:

Salesforce SOQLの例1 比較演算子とともにfieldExpression構文を使用する例

各比較演算子の使用方法の詳細については、Comparison Operatorsを参照してください。

論理演算子 ​

複数のフィールド式は、論理演算子を使用して結合できます。これには、AND、OR、NOTが含まれます。次のリストには、各演算子の基本構文が含まれています:

  • fieldExpressionX AND fieldExpressionY
  • fieldExpressionX OR fieldExpressionY
  • NOT fieldExpressionX

次の例では、論理演算子で結合された2つのfieldExpressionsを使用しています:

Salesforce SOQLの例2 論理演算子を使用して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:mm
  • YYYY-MM-DDThh:mm:ss-hh:mm
  • YYYY-MM-DDThh:mm:ssZ

DATE値とDATETIME値の形式

date値またはdateTime値を単一引用符で囲む必要はありません。 dateフィールドの場合、date Formulaの末尾に.to_dateを追加して、日付またはタイムスタンプを正しい形式に変換します。

次の2つの例では、SOQLクエリで.to_dateを使用する方法を示しています。

Salesforce SOQLの例3 クエリで.to_dateを使用する例Salesforce SOQLの例4クエリで.to_dateを使用する例

dateTimeフィールドの場合、クエリで使用する推奨形式はYYYY-MM-DDThh:mm:ssZ形式です。 nowや2.weeks.ago.beginning_of_dayなどのFormulaを使用して目的のタイムスタンプを取得した後、クエリの末尾に.strftime("%Y-%m-%dT%H:%M:%S%z")を追加します。

Salesforce SOQLの例5クエリで.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関数を使用して、特定の文字を置換することもできます。例:

ruby
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クエリを示しています。

Salesforce SOQLの例6アクション用SOQLクエリの例

出力スキーマを生成するには、Use SOQLを選択します。 SOQL Queryフィールドに入力したものと同じSOQLを、Provide SOQL Queryフィールドで使用します。 Output schemaセクションのReview dataステージで、クエリが実行され、サンプル行が返されます。出力スキーマを生成するには、Generate schemaを選択します。

スキーマ生成のSalesforce SOQLの例スキーマ生成の例

後続のレシピステップでは、SOQLクエリの出力にデータツリーからアクセスできます。

SOQLクエリの最大長

SOQLクエリの最大長は16,000文字です。

この長さを超えるSOQLクエリは、Connection reset by peerエラーをトリガーします。クエリを短くしてエラーを防ぐことができます。

追加ドキュメント ​

その他のSOQLリソースについては、次のSalesforceドキュメントを参照してください:

最終更新日: