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 перечисление, которое установит правильное значение, когда объект сначала создается или обновляется отдельно.

Другие вопросы по тегам