Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

EntitySubscription に対してクエリを実行すると「MALFORMED_QUERY」エラーが発生する

公開日: Oct 13, 2022
説明
※この記事は英語版を翻訳しており、一部機械翻訳を含むため内容は後日更新される可能性があります。最新の内容は英語版を参照してください。表示言語は画面右下の言語名から切り替えられます。


EntitySubscription オブジェクトの一部のクエリが「管理者以外」のユーザーで実行されず、「
MALFORMED_QUERY: Implementation restriction: EntitySubscription only allows security evaluation for non-admin users when LIMIT is specified and at most 1000 (MALFORMED_QUERY: 実装制限: EntitySubscription は、LIMIT が指定され、最大 1000 の場合にのみ、管理者以外のユーザーに対するセキュリティ評価を許可します)」という例外がスローされます。
解決策

EntitySubscription オブジェクトに対する一部のクエリが「管理者以外」のユーザーで実行されず、「
MALFORMED_QUERY: Implementation restriction: EntitySubscription only allows security evaluation for non-admin users when LIMIT is specified and at most 1000 (MALFORMED_QUERY: 実装制限: EntitySubscription は、LIMIT が指定され、最大 1000 の場合にのみ、管理者以外のユーザーに対するセキュリティ評価を許可します)

」という例外が発生するのは、「管理者以外」のユーザーの EntitySubscription オブジェクトに対して最大 1000 の制限が必要であり、以下のクエリでは制限の対象が取引先オブジェクトであったためです。

間違ったクエリ構文:
SELECT Id, Name FROM Account WHERE Id IN (SELECT ParentId FROM EntitySubscription WHERE SubscriberId = '005A0000001vU2gIAE') LIMIT 1000

今度は次のようにクエリの実行を試みます。
 
SELECT Id, Name FROM Account WHERE Id IN (SELECT ParentId FROM EntitySubscription WHERE SubscriberId = '005A0000001vU2gIAE' LIMIT 1000)

LIMIT キーワードをサブクエリで使用できないため、実行されません (Salesforce からの LIMITATION):

MALFORMED_QUERY:
SubscriberId = '005A0000001vU2gIAE' LIMIT 1000)
^
ERROR at Row:1:Column:124
expecting a right parentheses, found 'LIMIT'


正しいクエリ構文
前述のクエリを実行する理想的な方法は次のようになります。
 
SELECT ParentId, Parent.Name FROM EntitySubscription WHERE SubscriberId = '005A0000001vU2gIAE' AND ParentId IN ( SELECT Id FROM Account ) LIMIT 1000
ナレッジ記事番号

000386211

 
読み込み中
Salesforce Help | Article