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

オブジェクトに対する SOQL の制限

SOQL では、特定の制限が検索結果のオブジェクトと状況に適用されます。SOQL 制限は、ContentDocumentLink オブジェクト、ContentHubItem オブジェクト、外部オブジェクト、NewsFeed、KnowledgeArticleVersion、RecentlyViewed、TopicAssignment、UserRecordAccess、UserProfileFeed、Vote に対して定義されています。

一部のオブジェクトや状況では、SOQL に特定の制限があります。

オブジェクト 説明
ContentDocumentLink SOQL クエリの絞り込みでは、IdContentDocumentIdLinkedEntityId のいずれかを条件にする必要があります。
ContentHubItem SOQL クエリの絞り込みでは、IdExternalIdContentHubRepositoryId のいずれかを条件にする必要があります。
カスタムメタデータ型 カスタムメタデータ型は、次の SOQL クエリ構文をサポートします。
1SELECT fieldList [...]
2FROM objectType
3    [USING SCOPE filterScope]
4[WHERE conditionExpression]
5[ORDER BY field {ASC|DESC} [NULLS {FIRST|LAST}] ]
  • fieldList および conditionExpression にメタデータリレーション項目を使用できます。
  • FROM に追加できるのは 1 つのオブジェクトのみです。
  • 次の演算子を使用できます。
    • IN および NOT IN
    • =>>=<<=!=
    • LIKE (ワイルドカードを含む)
    • AND
  • リレーション以外の項目にのみ ORDER BY を使用できます。
  • リレーション以外の複数の項目で ORDER BYASC、および DESC を使用できます。
  • ORDER BY は、並び替えられる項目が選択済みの項目の場合にのみ使用できます。
  • メタデータリレーション項目では、すべての標準リレーションクエリがサポートされています。
外部オブジェクト
  • 外部オブジェクトが含まれるサブクエリが取得できるデータは、最大 1,000 行です。
  • 各 SOQL クエリ内の結合は、外部オブジェクトとその他の種別のオブジェクト全体で最大 4 個です。

    クエリの実行時、結合ごとに外部システムへの往復処理が必要です。クエリ内の各結合に対して長めの応答時間を想定してください。

  • 外部オブジェクトでは、次の集計関数と句をサポートしていません。
    • AVG() 関数
    • COUNT(fieldName) 関数 (ただし、COUNT() はサポートされている)
    • HAVING
    • GROUP BY
    • MAX() 関数
    • MIN() 関数
    • SUM() 関数
  • 外部オブジェクトでは、以下もサポートしていません。
    • EXCLUDES 演算子
    • FOR VIEW
    • FOR REFERENCE
    • INCLUDES 演算子
    • LIKE 演算子
    • toLabel() 関数
    • TYPEOF
    • WITH
次の制限は、Salesforce Connect の OData 2.0 および 4.0 アダプタにのみ適用されます。
  • 外部オブジェクトの場合、ORDER BY 句に次の制限があります。
    • NULLS FIRSTNULLS LAST は無視されます。
    • 外部オブジェクトは、リレーションクエリの ORDER BY 句をサポートしません。
  • COUNT() 集計関数は、外部データソースで [要求の行数] が有効になっている外部オブジェクトでのみサポートされます。特に、外部システムからの応答には、結果セットの行の合計数を含める必要があります。
次の制限は、Salesforce Connect のカスタムアダプタにのみ適用されます。
  • 外部オブジェクトのロケーションベースの SOQL クエリはサポートされていません。
  • 外部オブジェクトの SOQL クエリに次の要素が含まれている場合、クエリは失敗します。
    • convertCurrency() 関数
    • UPDATE TRACKING
    • UPDATE VIEWSTAT
    • USING SCOPE
  • ORDER BY 句の次の構文は無視されます。
    • NULLS FIRST 構文
    • NULLS LAST 構文

次の制限は、SecureAgent を使用する SharePoint 2010/2013 の外部データソースに関連付けられている外部オブジェクトにのみ適用されます。

  • 外部オブジェクトの SOQL クエリでは、IN 句で ID が約 15 個よりも多いと、エラー「この操作はセキュアエージェントには複雑すぎます」が返されます。IN 句の正確な制限は、SharePoint ID の長さに応じて異なります。
KnowledgeArticleVersion
  • クエリで 1 つ以上の主キー ID を指定する場合を除き、必ず PublishStatus の値は 1 つだけ指定します。セキュリティをサポートするために、PublishStatus の値が Draft の記事は「記事の管理」権限を持つユーザにのみ表示されます。
  • アーカイブ済み記事のバージョンは、articletype_kav オブジェクトに保存されます。アーカイブ済み記事のバージョンをクエリするには、記事の Id を指定し、IsLatestVersion='0' を設定します。
  • 必ず Language の値は 1 つだけ指定します。ただし、SOQL では、Id または KnowledgeArticleId に対する条件がある場合、複数の Language を指定できます。
NewsFeed
  • ログインしたユーザに「すべてのデータの参照」権限がある場合、SOQL の制限はありません。この権限がない場合は、LIMIT 句に 1,000 レコード以下を指定してください。
  • リレーションを使用する項目に対して SOQL ORDER BY は使用できません。SOQL クエリでは、ORDER BY はルートオブジェクトの項目に対して使用してください。
RecentlyViewed RecentlyViewed オブジェクトは、ログインユーザがレコードを表示または参照するたびに更新されます。また、SOQL クエリで FOR VIEW または FOR REFERENCE 句を使用してレコードを取得した場合にも更新されます。最新のデータを確実に使用できるようにするには、1 オブジェクトにつきレコードが 200 件までになるよう、RecentlyViewed データを定期的に切り捨てます。
TopicAssignment
ログインしたユーザに「すべてのデータの参照」権限がある場合、SOQL の制限はありません。そうでない場合は、次のいずれかの操作を実行します。
  • LIMIT 句に 1,100 件以下のレコードを指定する。
  • 「=」を指定した WHERE 句を使用する場合に、Id または Entity を絞り込む。
UserRecordAccess
  • 必ず『SOAP API 開発者ガイド』で指定されたクエリ形式を使用してください。
  • ORDER BY 句を含めることができます。SELECT HasAccess の場合は ORDER BY HasAccessSELECT MaxAccessLevel の場合は ORDER BY MaxAccessLevel を使用する必要があります。
  • クエリ可能な最大レコード数は 200 件です。
UserProfileFeed
  • ログインしたユーザに「すべてのデータの参照」権限がある場合、SOQL の制限はありません。この権限がない場合は、LIMIT 句に 1,000 レコード以下を指定してください。
  • リレーションを使用する項目に対して SOQL ORDER BY は使用できません。SOQL クエリでは、ORDER BY はルートオブジェクトの項目に対して使用してください。

また、SOQL クエリには WITH UserId = {userId] を含める必要があります。

Vote
  • ParentId = [単一の ID]
  • Parent.Type = [単一型]
  • Id = [単一の ID]
  • Id IN = [ID のリスト]