2

組織の管理APIアクセス権があります。同じSOQLクエリを実行したいのですが、組織内のさまざまなユーザーに表示される結果を返します。ユーザーAに対して「SELECTName FROM Account」を実行すると、ユーザーAがアクセスできるアカウント名のみが返されます。

各ユーザーが自分のアプリケーションにパスワードとセキュリティトークンを提供すれば、これは簡単だとわかっているので、ユーザーとしてログインしてクエリを実行できますが、これは自分の管理者アカウントのみを使用して実行したいと思います。

これは次のように非常に似ています。

Salesforce:APIを使用したなりすまし

ただし、この場合、データにアクセスできるので、特定のユーザーからのリクエストであるかのようにデータをフィルタリングしたいと思います。System.RunAs()と呼ばれるApexの「ユニットテスト」メソッドが近くにあるように見えますが、これをREST経由で実行したいと思います。

4

1 に答える 1

1

HasReadAccessfromUserRecordAccessテーブルを使用して最初のSOQLクエリをフィルタリングできると思います。

RecordIDs最初にセットを作成してから、これを使用してアカウントクエリをフィルタリングしてみてください。

Set<ID> sRecordIDs = [SELECT RecordID FROM UserRecordAccess WHERE UserId = :u AND HasReadAccess = True];
Account[] accs =[SELECT ID,Name FROM Account WHERE Id in :sRecordIDs];

公式ドキュメントの詳細

于 2012-09-11T13:27:04.910 に答える