Salesforce Apex触发器-如何使用触发器更新所有案例所有者?
当用户单击案例以更改案例所有者/用户时,我必须将此用户添加到所有相关案例中(每个客户)。我正在使用下面的代码,但它只更新了一个记录/案例。我可以在调试日志中看到,所有案例都使用最新的所有者进行了更新,但没有真正更新/存储在caseObject中。请帮我这个Salesforce Apex触发器-如何使用触发器更新所有案例所有者?,salesforce,apex-code,apex,apex-trigger,Salesforce,Apex Code,Apex,Apex Trigger,当用户单击案例以更改案例所有者/用户时,我必须将此用户添加到所有相关案例中(每个客户)。我正在使用下面的代码,但它只更新了一个记录/案例。我可以在调试日志中看到,所有案例都使用最新的所有者进行了更新,但没有真正更新/存储在caseObject中。请帮我这个 trigger caseAssignment on Case (after insert, after update) { set<id> ownerId = new Set<Id>();
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;
}
}
在案例上触发案例分配(插入后、更新后){
set ownerId=新集合();
set customerId=新集合();
对于(案例OBJ:trigger.new){
ownerId.add(caseobj.ownerId);
customerId.add(caseobj.AccountId);
}
对于(用户用户:[从id所在的用户中选择id、FirstName、LastName:ownerId]){
对于(Case cas:[从Case where AccountId IN:customerId中选择Id、OwnerId、First\u Name\u\c、CaseNumber、AccountId]){
cas.OwnerId=user.Id;
}
}
如果没有update DML语句,您的代码将不会对数据产生任何影响
可能应该创建一个更新列表
i、 e.列表更新列表=新列表()
然后在内部for循环中,将“cas”添加到updatecaslist,然后在方法末尾发出update命令(updateupdatecaslist)。假设您编写的逻辑是正确的,您永远不会更新案例
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;
}
在案例上触发案例分配(插入后、更新后)
{
Set ownerId=新集合();
Set customerId=新集合();
List casesToUpdate=新列表();
对于(案例OBJ:trigger.new)
{
ownerId.add(caseobj.ownerId);
customerId.add(caseobj.AccountId);
}
对于(用户:[从id所在的用户中选择id、FirstName、LastName:所有者id])
{
对于(案例cas:[从案例中选择Id、OwnerId、名字、案例编号、AccountId,其中AccountId位于:customerId])
{
案例c=新案例();
c、 ID=cas.ID;
c、 OwnerId=user.Id;
案例更新。添加(c);
}
}
更新案例更新;
}