Salesforce Apex Trigger - вычисляет сумму значений поля суммы и обновляет поле "Возможность".
Мое название для этого поста может быть немного запутанным, но я постараюсь сделать его как можно более понятным. У меня проблема с триггером Apex. У нас есть пользовательский объект с именем Receivables (Managed Packaged). Каждая возможность связана с одной или несколькими записями дебиторской задолженности. Мастер подробных отношений не является опцией, так как получаемый объект управляется в упаковке.
Вот моя логика:
Создайте триггер на Возможности (вставьте и / или обновите) > Цикл всей дебиторской задолженности с совпадающим идентификатором с идентификатором триггерной возможности и идентификатором поля Возможности получения (Это поле поиска Возможности в дебиторской задолженности) > Использовать агрегированные для суммирования суммы> Автоматическое заполнение Общая комиссия поле.
Триггер не выдает никакой ошибки, но также не заполняется автоматически.
trigger newRecaivables on Opportunity (after insert, after update)
{
set<Id> oppid = new set<id>();
list<opportunity> opplist = [select id from opportunity where id in : oppid ];
for(Opportunity Opp : trigger.new)
{
List<aggregateResult> results = [select Fees_Received_Category__c ,sum(McaApp__Amount__c) total from McaApp__Receivable__c Where McaApp__Opportunity__c in:oppid group by Fees_Received_Category__c];
for(AggregateResult ar : results)
{
if (String.valueOf(ar.get('Fees_Received_Category__c'))=='Received')
{
Opp.Total_Commission__c = String.valueOf(ar.get('total'));
}
}
}
}
Любая помощь будет оценена.
1 ответ
Ваш триггер должен срабатывать before insert, before update
,
Так как вы работаете на trigger.new
перечисление, которое установит правильное значение, когда объект сначала создается или обновляется отдельно.