この投稿の私のタイトルは少し混乱させるかもしれませんが、私は可能な限り明確にしようとします。私はApexトリガーの問題に遭遇しています。 Receivables(Managed Packaged)というカスタムオブジェクトがあります。各案件は、1つまたは複数の債権レコードに関連しています。マスタ詳細関係は、Receivableオブジェクトがパッケージ化されて管理されているため、オプションではありません。ここでSalesforce Apexのトリガ - 金額のフィールド値の合計を計算して機会のフィールドを更新してください
は私のロジックです:
、トリガー機会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'));
}
}
}
}
助けてください。
「oppid」が空です。値を追加したり、そのセットを使用してクエリを実行したりすることはありません。 – Reshma
こんにちはReshma、手がかりありがとうございました。私はそれを機能させることができました。 –
ループ内のSOQLを避けるようにしてください – Reshma