Salesforce System.QueryException:记录当前不可用

Salesforce System.QueryException:记录当前不可用,salesforce,force.com,Salesforce,Force.com,此异常通常发生在批处理正在运行或警报太快进入Salesforce实例时。插入案例时,我们尝试在插入案例之前锁定与案例关联的联系人和帐户,以防止发生“无法锁定行”异常 以下是确切的例外情况: 'System.QueryException:记录当前不可用:您试图编辑的记录或其相关记录之一当前正被其他用户修改。请再试一次 Class.Utility.docase插入:第98行第1列 我对“无法锁定行”异常和“记录当前不可用”异常做了大量研究,似乎找不到解决此问题的好方法 我尝试完成的是一个循环,尝试插

此异常通常发生在批处理正在运行或警报太快进入Salesforce实例时。插入案例时,我们尝试在插入案例之前锁定与案例关联的联系人和帐户,以防止发生“无法锁定行”异常

以下是确切的例外情况:

'System.QueryException:记录当前不可用:您试图编辑的记录或其相关记录之一当前正被其他用户修改。请再试一次

Class.Utility.docase插入:第98行第1列

我对“无法锁定行”异常和“记录当前不可用”异常做了大量研究,似乎找不到解决此问题的好方法

我尝试完成的是一个循环,尝试插入10次,但仍然得到“Record Current Unavailable”(记录当前不可用)异常。其他人对此有什么建议吗

代码如下:

Public static void DoCaseInsertion(case myCase) {
    try
    {
        insert myCase;
    }
    catch (System.DmlException ex)
    {
        boolean repeat = true;
        integer cnt = 0;
        while (repeat && cnt < 10) 
        {   
            try
            {
                repeat = false;
                List<Contact> contactList = [select id from Contact where id =: myCase.ContactId for update]; // Added for related contact to overcome the 'UNABLE_TO_LOCK_ROW issues'
                List<Account> accountList = [select id from Account where id =: myCase.AccountId for update]; // Added for related account to overcome the 'UNABLE_TO_LOCK_ROW issues'
                insert myCase;
            }
            catch (System.DmlException e)
            {
                repeat = true;
                cnt++;
            }
        }
    }
}
publicstaticvoiddocase插入(case myCase){
尝试
{
插入myCase;
}
catch(System.dmlexex)
{
布尔重复=真;
整数cnt=0;
while(重复&&cnt<10)
{   
尝试
{
重复=错误;
List contactList=[从联系人中选择id,其中id=:myCase.ContactId进行更新];//为相关联系人添加,以克服“无法锁定”行问题
List accountList=[从帐户中选择id,其中id=:myCase.AccountId进行更新];//为相关帐户添加,以克服“无法锁定行问题”
插入myCase;
}
catch(System.dme)
{
重复=正确;
cnt++;
}
}
}
}

当其他用户/进程对您试图访问的特定记录进行冲突修改时,基本上会发生这种情况。大多数情况下,当任何类型的批处理进程在后台运行并锁定您试图访问的特定记录(在您的案例帐户中)时,都会发生这种情况。为了解决这个问题,,您需要检查是否有任何预定的apex类在后台运行在帐户/案例上,并查看是否有任何方法可以优化代码以避免冲突行为。

当其他用户/进程对您尝试修改的特定记录进行冲突修改时,基本上会发生这种情况通道大多数情况下,当任何类型的批处理进程在后台运行并锁定您试图访问的特定记录(在您的案例帐户中)时,都会发生这种情况。要解决此问题,您需要检查是否有任何预定的apex类在后台运行在帐户/案例上,并查看是否可以对代码进行优化以避免冲突行为。

这没有任何意义,您不应该这样做。。你想做什么?我想插入一条记录你需要看看你在这之前做了什么,你不应该捕捉到错误然后尝试插入这没有任何意义,你不应该这样做。。你想做什么?我想插入一条记录你需要看看你在这之前做了什么,你不应该捕捉到错误然后尝试插入