Salesforce 如何根据用户权限查询记录?

Salesforce 如何根据用户权限查询记录?,salesforce,soql,Salesforce,Soql,有没有办法只返回当前用户有写访问权的帐户(使用SOQL) 例如,如果我转到一个特定的帐户并单击[共享]按钮,我可以看到有权访问该记录的用户(和组)列表。当作为这些用户之一登录时,我可以运行SOQL语句(通过Visualforce页面上的自定义控制器)来检索帐户记录。但是,我想确保只有在用户有权限写入(或编辑)帐户记录时,才会返回该帐户记录。有什么想法吗?提前谢谢 强制共享的方法是使用和sharing关键字。如果出于任何原因,您不想这样做,可以在catch theDMLException中将DML

有没有办法只返回当前用户有写访问权的帐户(使用SOQL)


例如,如果我转到一个特定的帐户并单击[共享]按钮,我可以看到有权访问该记录的用户(和组)列表。当作为这些用户之一登录时,我可以运行SOQL语句(通过Visualforce页面上的自定义控制器)来检索帐户记录。但是,我想确保只有在用户有权限写入(或编辑)帐户记录时,才会返回该帐户记录。有什么想法吗?提前谢谢

强制共享的方法是使用
和sharing
关键字。如果出于任何原因,您不想这样做,可以在catch the
DMLException
中将DML语句包装在try块中。调用异常对象上的
getDmlType()
,查看故障是否与权限有关。我认为状态代码将是
System.StatusCode.uncipled\u ACCESS\u或\u READONLY
。这里有一个比较完整的列表。

强制共享的方法是使用
和共享
关键字。如果出于任何原因,您不想这样做,可以在catch the
DMLException
中将DML语句包装在try块中。调用异常对象上的
getDmlType()
,查看故障是否与权限有关。我认为状态代码将是
System.StatusCode.uncipled\u ACCESS\u或\u READONLY
。这里有一个比较完整的列表。

我正在使用带有sharing关键字的
,但是我仍然得到不可写的记录。好的,它们是可写的,但不可读。因此,我认为您只需要进行DML调用,然后捕获异常并进行相应的处理。在DML调用之前有没有办法知道?我不一定要更新记录。您可以在dml调用之前创建一个保存点。如果呼叫成功,则回滚;看来没有更简单的方法了。谢谢我正在使用带有sharing
关键字的
,但我仍然得到不可写的记录。好的,它们是可写的,但不可读。因此,我认为您只需要进行DML调用,然后捕获异常并进行相应的处理。在DML调用之前有没有办法知道?我不一定要更新记录。您可以在dml调用之前创建一个保存点。如果呼叫成功,则回滚;看来没有更简单的方法了。谢谢