2014-02-07 1 views
0

이 첨단 트리거에 데이터 로더를 사용하려고하면 예외가 발생합니다. 한 번에 업데이트 할 수있는 레코드 수가 100 개라고합니다. 다음은 계정 객체에 대한 트리거를 설명하는 코드입니다. 모든 의견을 높이 평가합니다한계 예외 : 너무 많은 SOQL 쿼리

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(); 

} 
} 

고마워요!

답변

0

봐/

는 것 같은데 "TriggerUpdateController.UpdateAffiliation (들)"기록을

"TriggerUpdateController.UpdatePrimaryBranchOfficeForAccountOwnerChange (들)" 를 삽입 같은데 위의 명령문에서 SOQL 문을 발행하면 통고 제한 오류가 발생합니다.

여기에서 두 가지 수정을해야합니다. 1. 목록에서 업데이트되거나 삽입 된 계정 목록을 캡처하여 위의 두 가지 방법으로 전달하십시오. 2. 위의 두 가지 방법으로 step1에서 만든 계정 목록을 수락하고 처리합니다. 3. 다른 개체의 세부 정보를 가져 오려면 해당 세부 정보를 SOQL에 가져옵니다.

"TriggerUpdateController"에 대한 코드를 게시 할 수 있다면 코드를 수정하는 것이 좋습니다.

감사합니다, Pundareekam Kudikala