好的,所以几周前我问了这个问题,我得到了一些很大的帮助 - 但我仍然没有 100% 解决我一直遇到的问题......任何帮助都会很棒......我仍然有这段代码的主要问题,可以使用更多帮助......
出于某种原因,它仍在将任何数字更改为 0,而不仅仅是将零添加到空字段。
如果我有 4 个具有以下内容的 LOC - 竞争对手销售率 150、125、0、空白或空丢失 False、True、True、False 我希望它们都被标记为丢失,我只希望最后一个竞争对手销售率被标记为 0
目前所有标记 Lost 和 All 更改为 0 - 我知道代码会更新,因为如果我将代码更改为将它们设为 10,它们都会更新为 10
请任何帮助都会很棒...
在机会上触发 updateLOConLostOpportunity(更新后){
//The map allows us to keep track of the opportunities that have been lost
地图 oppsWithStageLost = new Map();
for (Integer i = 0; i < Trigger.new.size(); i++) {
if ( (Trigger.old[i].StageName != 'Lost')
&& (Trigger.new[i].StageName == 'Lost')) {
oppsWithStageLost.put(Trigger.old[i].id,
Trigger.new[i]);
}
}
List<Line_of_Coverage__c> updatedLOCs = new List<Line_of_Coverage__c>();
for (Line_of_Coverage__c loc : [SELECT id, Lost__c, Opportunity__c
FROM Line_of_Coverage__c
WHERE Opportunity__c
in :oppsWithStageLost.keySet()]) {
Opportunity parentOpp = oppsWithStageLost.get(loc.Opportunity__c);
loc.Lost__c = TRUE;
if (loc.Competitor_Sold_Rate__c == NULL) {
loc.Competitor_Sold_Rate__c = 0;
}
updatedLOCs.add(loc);
}
update updatedLOCs;
}