Ограничение исключения: слишком много запросов SOQL

Я получаю исключение, когда пытаюсь использовать загрузчик данных для этого триггера вершины. В нем говорится, что одновременно может быть обновлено не более 100 записей. Вот код, который объясняет триггер на объекте учетной записи. Все комментарии очень ценятся

trigger MaintainPrimaryOverriding on Account (before insert, before update) {

    if (TriggerUpdateController.getPrimaryBranchOverriding()){

         TriggerAffiliationControl.setLock();


  for(Account s : Trigger.new)
    {

   if (Trigger.isUpdate){ 
          Id ownerId =  Trigger.oldMap.get(s.Id).OwnerId;
        if (s.OwnerId != ownerId){
            //Use Branch Associated with owner ID
            TriggerUpdateController.UpdatePrimaryBranchOfficeForAccountOwnerChange(s);
            TriggerUpdateController.UpdateAffiliation(s);         
          }
   }
    else if(Trigger.isInsert){ 

          TriggerUpdateController.UpdatePrimaryBranchOfficeForAccountOwnerChange(s);

    }
  }
           TriggerAffiliationControl.setUnLock();

 }
}

Спасибо!


person Mohamed Farag    schedule 07.02.2014    source источник


Ответы (2)


Эта ошибка Слишком много запросов SOQL связана с тем, что вы достигли предела регулятора. См. Рекомендации: избегайте запросов SOQL внутри циклов FOR

person Michael Ver    schedule 07.02.2014

Похоже, вы вызываете следующие методы в своем коде для каждой записи обновления/вставки.

"TriggerUpdateController.UpdatePrimaryBranchOfficeForAccountOwnerChange(s)" "TriggerUpdateController.UpdateAffiliation(s)"

Похоже, вы выдаете оператор SOQL в приведенных выше операторах, что вызывает ошибку ограничения.

две модификации, которые вы должны сделать здесь. 1. Захватите список обновленных или вставленных учетных записей в список и передайте их двум вышеуказанным методам. 2. используйте два вышеуказанных метода, чтобы принять список учетных записей, созданных на шаге 1, и выполнить обработку. 3. Если вы хотите получить данные из какого-либо другого объекта, получите эти данные в SOQL.

Если бы вы могли опубликовать код для «TriggerUpdateController», я был бы в лучшем положении, чтобы предложить вам правильный код.

С уважением, Пундарикам Кудикала

person Pundareekam Kudikala    schedule 08.02.2014