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

WITH filteringExpression

レコードを項目値に基づいて絞り込むことができます。たとえば、カテゴリによって絞り込んだり、ユーザのプロファイルフィードで追跡されている変更を照会して取得したりするには、WITH filteringExpression を使用します。この句 (省略可能) は、SOQL クエリの SELECT ステートメントに追加できます。

FROM 句で指定されたオブジェクトの項目のみをサポートする WHERE 句とは異なり、WITH ではその他の関連条件で絞り込めます。たとえば、WITH 句を使用して、1 つ以上のデータカテゴリグループの分類に基づいて記事を絞り込めます。WITH 句は、次の場合にのみ使用できます。

WITH が指定されている場合、クエリは絞り込み条件に一致し、ユーザが参照可能なレコードのみを返します。指定されていない場合、クエリは条件に一致し、ユーザが参照可能なレコードのみを返します。

以下のステートメントでは、絞り込み条件式が太字で強調表示されています。構文は次のセクションで説明します。

  • SELECT Title FROM KnowledgeArticleVersion WHERE PublishStatus='online' WITH DATA CATEGORY Geography__c ABOVE usa__c
  • SELECT Id FROM UserProfileFeed WITH UserId='005D0000001AamR' ORDER BY CreatedDate DESC, Id DESC LIMIT 20

RecordVisibilityContext の使用

RecordVisibilityContext を使用して、WITH 句を絞り込むこともできます。この機能は、API バージョン 48.0 以降で使用できます。

次に例を示します。

1SELECT Id, RecordVisibility.VisibilityAttribute FROM Account WHERE Id = 'xxx'
2   WITH RecordVisibilityContext (maxDescriptorPerRecord=100, supportsDomains=true, supportsDelegates=true)

または、

1SELECT recordId, VisibilityAttribute FROM RecordVisibility WHERE recordId = 'xxx' 
2   WITH RecordVisibilityContext (maxDescriptorPerRecord=100, supportsDomains=true, supportsDelegates=true)

次の項目は、パラメータとして使用できます。

項目 説明 デフォルト
maxDescriptorPerRecord レコードごとに返される記述子の最大数。特定レコードの記述子の実際の数がこの値を超えると、そのレコードの「tooManyDescriptors」表示属性が返されます。
  • Einstein Analytics を使用している組織: 150
  • その他の組織: 400
supportsDomains 表示サービスに「domain」表示属性の生成を許可するかどうか。 true
supportsDelegates 表示サービスに「delegate」表示属性の生成を許可するかどうか。 true

1 つ以上の項目が必要です。次に示すのは、無効なクエリです。

1SELECT Id, RecordVisibility.VisibilityAttribute FROM Account WHERE Id = 'xxx'
2   WITH RecordVisibilityContext

次に示すクエリは有効です。

1SELECT Id, RecordVisibility.VisibilityAttribute FROM Account WHERE Id = 'xxx'
2   WITH RecordVisibilityContext (maxDescriptorPerRecord=100)

詳細は、『オブジェクトリファレンス』「RecordVisibility」を参照してください。