2017-03-01 12 views
-1

사용자가 caseOwner/user를 변경하기 위해 대문자를 클릭하면이 사용자를 모든 관련 사례 (고객 당)에 추가해야합니다. 아래 코드를 사용하고 있지만 레코드/케이스를 하나만 업데이트하고 있습니다. 디버그 로그에서 모든 사례가 최신 소유자로 업데이트되었지만 caseObject에 실제로 업데이트되거나 저장되지는 ​​않았다는 것을 알 수 있습니다. 나 좀 도와 줘.Apex Trigger- 트리거를 사용하여 모든 사례 소유자를 업데이트하는 방법은 무엇입니까?

trigger caseAssignment on Case (after insert, after update) { 

     set<id> ownerId = new Set<Id>(); 
     set<id> customerId = new set<Id>(); 
    for(Case caseobj : trigger.new){ 

      ownerId.add(caseobj.OwnerId); 
      customerId.add(caseobj.AccountId); 
    } 


for(User user:[Select id, FirstName, LastName from user where Id IN :ownerId]){ 

    for(Case cas : [Select Id, OwnerId, First_Name__c, CaseNumber, AccountId From Case where AccountId IN: customerId]){   

     cas.OwnerId = user.Id; 

    } 


} 

답변

0

업데이트 DML 문을 사용하지 않으면 코드가 데이터에 영향을주지 않습니다.

아마 updateCaseList에 "CAS"를 추가하고, 루프 내면에 그런

즉 목록 updateCaseList = 새 목록()

을 업데이트 목록을 작성해야 다음 방법의 끝에 발행 update 명령 (updateCaseList 업데이트).

0

당신이 쓴 논리는 결코 경우

trigger caseAssignment on Case (after insert, after update) 
{ 

    Set<Id> ownerId = new Set<Id>(); 
    Set<Id> customerId = new Set<Id>(); 
    List<Case> casesToUpdate = new List<Case>(); 

    for(Case caseobj : trigger.new) 
    { 
     ownerId.add(caseobj.OwnerId); 
     customerId.add(caseobj.AccountId); 
    } 


    for(User user:[Select id, FirstName, LastName from user where Id IN :ownerId]) 
    { 
     for(Case cas : [Select Id, OwnerId, First_Name__c, CaseNumber, AccountId From Case where AccountId IN: customerId]) 
     {   
      Case c = new Case(); 
      c.ID = cas.ID; 
      c.OwnerId = user.Id; 
      casesToUpdate.add(c); 
     } 
    } 

    update casesToUpdate; 
} 
를 업데이트하지하고 정확하다는 것을 가정