2017-03-01 1 views
-1

Wenn Benutzer auf case klickt, um caseOwner/user zu ändern, muss ich diesen Benutzer zu allen verknüpften Fällen hinzufügen (pro Kunde). Ich benutze unten Code, aber es aktualisiert nur einen Datensatz/Fall. Ich kann in Debug-Logs sehen, dass alle Fälle mit dem letzten Besitzer aktualisiert wurden, aber nicht wirklich in CaseObject aktualisiert/gespeichert wurden. Bitte hilf mir dabei.Apex Trigger - Wie aktualisiert man alle Case Owner mit 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; 

    } 


} 

Antwort

0

Ohne eine Update-DML-Anweisung hat Ihr Code keine Auswirkungen auf Ihre Daten.

Wahrscheinlich sollte eine Update Liste

dh Liste updateCaseList = new list()

Dann in Ihrem inneren for-Schleife, fügen Sie "cas" zu updateCaseList erstellen und dann am Ende des Verfahrens, die Ausgabe des Update-Befehl (updateCaseList aktualisieren).

0

Unter der Annahme, dass die Logik, die Sie geschrieben richtig ist Sie aktualisieren nie die Fälle

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; 
} 
Verwandte Themen