Salesforce使用apex程序停用过去3个月未登录的Salesforce用户
我已经编写了用于停用过去3个月未登录的用户的代码,但当我运行该程序时,它会给我一个异常,就像由于记录的所有权,您无法停用该用户,因此它不会检查其他用户Salesforce使用apex程序停用过去3个月未登录的Salesforce用户,salesforce,salesforce-lightning,salesforce-service-cloud,salesforce-communities,Salesforce,Salesforce Lightning,Salesforce Service Cloud,Salesforce Communities,我已经编写了用于停用过去3个月未登录的用户的代码,但当我运行该程序时,它会给我一个异常,就像由于记录的所有权,您无法停用该用户,因此它不会检查其他用户 public class ExampleUser { public static void deactivate() { List<User> usersToUpdate = new List<User>(); for(User u: [SELECT Id,
public class ExampleUser
{
public static void deactivate()
{
List<User> usersToUpdate = new List<User>();
for(User u: [SELECT Id, IsActive FROM User where IsActive= true and LastLoginDate <= :DATE.TODAY()-90])
{
u.IsActive = false;
/*try {
update u;
}
catch(Exception e){
System.debug(e);
}*/
usersToUpdate.add(u);
}
if (usersToUpdate.size()>0)
{
update usersToUpdate;
}
}
}
公共类示例用户
{
公共静态无效停用()
{
List usersToUpdate=新列表();
对于(用户u:[从用户中选择Id,IsActive=true和LastLoginDate 0)
{
更新usersToUpdate;
}
}
}
如果我运行注释过的代码(尝试分别停用每个用户),它会给出超过100个SOQL查询的异常。
请任何人帮助我解决此问题使用Database.update(usersToUpdate,false)
避免在一个或多个记录失败时回滚整个事务
这并不能真正解决您的问题;它只是意味着您确实停用了可以停用的用户。如果您想查看由于任何原因无法停用的用户,则需要开发不同的解决方案
您不需要检查列表大小。对空列表执行DML没有任何作用