1
我想写一个触发器插入,更新或删除记录(行项目)将更新金额字段。现在所有这些记录将具有相同的ParentID(费用)和名称(行项目)。基本上重复的记录除了联系人名称将有所不同。因此,当我使用相同的父母和姓名添加具有新金额的新订单项时,触发器应关闭并查询具有相同父级的所有订单项,并应重新计算金额。批量触发字段更新salesforce
因此,如果我输入第一行项目并说总金额应为100.然后我输入第二行项目,触发器应触发并更新两个记录上的金额'50 .00'。出于某种原因,即使它正确计算,我的触发器也不会更新。错误在哪里?请帮忙!!!
trigger Test on Expense_Line_Item__c (after insert, after update, after delete) {
set<id>testlist = new set<id>();
//List<Expense_Line_Item__c> listItem= new List<Expense_Line_Item__c>();
for (Expense_Line_Item__c a : trigger.new) {
testlist.add(a.expense__c);
}
list<Expense_Line_Item__c> mapParent =
new list<Expense_Line_Item__c>([SELECT name,
id,
Amount__c
FROM Expense_Line_Item__c
WHERE expense__c IN:testlist]);
Decimal Total = 0.0;
Integer Count = 0;
for (Expense_Line_Item__c exp : mapParent) {
Total = Total + exp.Amount__c;
Count++;
System.debug('Total during iterator::::::::::::::::::::::' + Total);
System.debug('Counter:::::::::::::::::::::::::::::::::::::' + Count);
}
if (Count > = 1)
Total = Total/Count;
System.debug('Total count after division::::::::::::::::::::::' + Total);
List <Expense_Line_Item__c> insertLineItem = new List <Expense_Line_Item__c>();
for (Expense_Line_Item__c lineItem : MapParent) {
lineItem.Amount__c = Total;
//insertLineItem.add(lineItem);
//System.debug('LineItem Amount getting inserted::::::::::::::::::::::'+lineItem.Amount__c);
}
// upsert insertLineItem;
}