我们已设置此流程以帮助确定案件的优先顺序。为此,我希望在通过电子邮件转发到案例后触发新的案例记录。然后查询它是否与帐户相关。如果是,我想返回一个值cScore。然后插入。
这是我到目前为止,它正在返回此错误:
错误:数据无效。查看下面的所有错误消息以更正您的 数据。 Apex触发newCaseScoring导致意外异常, 联系您的管理员:newCaseScoring:执行BeforeInsert 由以下原因引起:System.QueryException:List没有要分配的行 SObject:Trigger.newCaseScoring:第12行,第18列
这是我的代码:
在Case上触发newCaseTrigger(插入前){
if(Trigger.isInsert){
List<Case> cList = [Select AccountId, Id, Priority_Score__c, Case_Priority_Score__c FROM Case WHERE Id IN :Trigger.new];
List<Case> updateList = [Select AccountId, Id, Priority_Score__c, Case_Priority_Score__c FROM Case WHERE Id IN :Trigger.new];
System.debug('This is the cList:' + cList);
integer size;
integer cnt=0;
List<id> idList = New List<id>();
for(Case cases : cList){
idList.add(cases.AccountId);
size = idList.size();
System.debug('This is the idList:' + idList);
System.debug('This is the size:' + size);
cnt++;
System.debug(cnt);
}
List<Account> aList = [Select Id, Customer_s_Score_Total__c from Account where id =:idList];
integer num;
for(Id a : aList){
for(Id b : idList){
if(aList.Id == idList){
num = aList.Customer_s_Score_Total__c;
updateList.Priority_Score__c = num;
}
}
}
}
}
感谢您的帮助。
答案 0 :(得分:5)
第12行中的查询返回0条记录,因为Case还没有Id。由于您处于before insert
触发器中,因此尚未提交案例。
我认为你想要做的是:
List<Id>
。List<Id>
对帐户进行查询。您不需要进行插入调用。您对案例记录所做的任何更改都将自动保存,因为您处于before insert
触发器中。