Хорошо, поэтому я задал этот вопрос несколько недель назад, и я получил большую помощь. Но я все еще не 100% в отношении проблемы, которую я продолжаю иметь ... Любая помощь была бы замечательной ... У меня все еще есть серьезные проблемы с этим кодом и я могу использовать дополнительную помощь ...Salesforce APEX update, когда null
По какой-то причине он по-прежнему меняет любые числа на 0, а не просто добавляя нуль в нулевое поле.
Если у меня есть 4 LOC со следующими - Конкурент Продан Оценить 150, 125, 0, пустой или Null Затерянный Ложные, True, True, False Я хочу, чтобы они все быть помечены Потерянные и я только хочу последний Конкурент Продан Rate будет отмечен 0
в настоящее время все метки Проиграл и все изменения до 0 - Я знаю, что код делает обновление, потому что если я изменить код, чтобы сказать, сделать их 10, они все обновления до 10
Пожалуйста, любая помощь будет замечательной ...
триггер updateLOConLostOpportunity на Opportunity (после обновления) {
//The map allows us to keep track of the opportunities that have been lost
Карта oppsWithStageLost = новая карта();
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;
}