Mein Titel für diesen Beitrag ist vielleicht etwas verwirrend, aber ich werde versuchen, ihn so klar wie möglich zu machen. Ich stoße auf ein Problem mit Apex-Auslöser. Wir haben ein benutzerdefiniertes Objekt mit dem Namen Forderungen (Managed Packaged). Jede Opportunity bezieht sich auf einen oder mehrere Forderungen. Die Master-Detailbeziehung ist keine Option, da das Debitorenobjekt im Paket verwaltet wird.Salesforce Apex-Auslöser - Berechne die Summe der Betragsfeldwerte und aktualisiere das Opportunity-Feld
Hier ist meine Logik:
einen Trigger auf Gelegenheit erstellen (Einsatz und/oder Aktualisierung) > Schleifen alle Forderungen, die passende ID mit getriggerten Gelegenheit ID und Receivable Gelegenheit Feld-ID hat (Dies ist eine Blick Gelegenheit up Feld in Forderungen) > Verwenden Sie aggregiert, um den Betrag zu addieren> Auto Füllen Sie das gesamte Kommissionsfeld aus.
Trigger löst keinen Fehler aus, aber es wird auch nicht automatisch gefüllt.
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'));
}
}
}
}
Jede Hilfe wäre willkommen.
'oppid' ist leer. Sie fügen keine Werte hinzu und fragen mit diesem Satz ab. – Reshma
Hi Reshma, Danke für den Hinweis. Ich konnte es zum Laufen bringen. –
Versuchen Sie, SOQL innerhalb der Schleife zu vermeiden – Reshma