Apex Trigger- как обновить всех владельцев дел с помощью триггера?

Когда пользователь нажимает на случай, чтобы изменить caseOwner / user, я должен добавить этого пользователя ко всем связанным случаям (для каждого клиента). Я использую приведенный ниже код, но он обновляет только одну запись / случай. Я могу видеть в журналах отладки все случаи были обновлены с последним владельцем, но на самом деле не обновлены / сохранены в caseObject. пожалуйста, помогите мне это.

    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;

    }  


}

2 ответа

Без обновления инструкции DML ваш код не повлияет на ваши данные.

Вероятно, следует создать список обновлений

то есть список updateCaseList = новый список ()

Затем в вашем внутреннем цикле for добавьте "cas" в updateCaseList, а затем в конце метода выполните команду update (update updateCaseList).

Предполагая, что написанная вами логика верна, вы никогда не обновляете дела

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;
}
Другие вопросы по тегам