我对这篇文章的标题可能有些混乱,但我会尽量让它变得清晰。我遇到了Apex触发器的问题。我们有一个名为Receivables(Managed Packaged)的自定义对象。每个机会与一个或多个应收账款记录相关。由于Receivable对象是托管打包的,因此无法选择主详细关系。
这是我的逻辑:
在商机上创建触发器(插入和/或更新)> 循环所有具有匹配ID的应收帐款,其中包含已触发的商机ID和应收款机会字段ID(这是应收款管理系统中的商机查找字段)> 使用汇总来计算金额>自动填充总佣金字段。
触发器不会抛出任何错误,但它也不会自动填充。
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'));
}
}
}
}
任何帮助将不胜感激。
答案 0 :(得分:0)
您的触发器应在before insert, before update
上触发。
由于您正在对trigger.new
枚举进行操作,因此在首次创建或单独更新对象时,将设置正确的值。