function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Becky Miller 15Becky Miller 15 

Trigger Errors

I am getting 2 Errors that I am unclear how to fix them.  Any guidance would be great.  

Illegal assignment from List<OpportunityLineItem> to List<Quota__c> Line 11
Constructor not defined: [QuotaProductQueueable].<Constructor>(List<Quota__c>, Map<Id,OpportunityLineItem>) Line 15

trigger OpportunityProductTrigger on OpportunityLineItem (after insert, after update, after delete) {
    CustomTriggerSwitch__c cts = CustomTriggerSwitch__c.getValues('OpportunityProduct');
    CustomTriggerSwitch__c ct = CustomTriggerSwitch__c.getValues('Quota__c');
    
    if(cts == null || 
       cts.Active__c || 
       opportunityLineItem.Opportunity.business_plan__c <> null || 
       opportunityLineItem.Quota__c.ID <> null){ 
           
        List<OpportunityLineItem> olis = (Trigger.isDelete ? Trigger.old : Trigger.new);
        List<Quota__c> qta = (Trigger.isDelete ? Trigger.old : Trigger.new);
        
        
       // System.enqueueJob(new OpportunityProductQueueable(olis,Trigger.oldMap));
        System.enqueueJob(new QuotaProductQueueable(qta,Trigger.oldMap));
    }
}
Best Answer chosen by Becky Miller 15
Waqar Hussain SFWaqar Hussain SF
Use below code 
 
trigger OpportunityProductTrigger on OpportunityLineItem (after insert, after update, after delete) {
    CustomTriggerSwitch__c cts = CustomTriggerSwitch__c.getValues('OpportunityProduct');
    CustomTriggerSwitch__c ct = CustomTriggerSwitch__c.getValues('Quota__c');
    
    if(cts == null || 
       cts.Active__c || 
       opportunityLineItem.Opportunity.business_plan__c <> null || 
       opportunityLineItem.Quota__c.ID <> null){ 
           
        List<OpportunityLineItem> olis = (Trigger.isDelete ? Trigger.old : Trigger.new);
        List<OpportunityLineItem> qta = (Trigger.isDelete ? Trigger.old : Trigger.new);
        
        
       // System.enqueueJob(new OpportunityProductQueueable(olis,Trigger.oldMap));
        System.enqueueJob(new QuotaProductQueueable(qta,Trigger.oldMap));
    }
}

 

All Answers

Saravanan Gengan 9Saravanan Gengan 9
Line 11: Trigger.new or Trigger.old is a list of OpportunityLineItem  so u cannot assign that to list of Quota__c
it should be like line 10. 
List<OpportunityLineItem> qta = (Trigger.isDelete ? Trigger.old : Trigger.new);
 
Waqar Hussain SFWaqar Hussain SF
Use below code 
 
trigger OpportunityProductTrigger on OpportunityLineItem (after insert, after update, after delete) {
    CustomTriggerSwitch__c cts = CustomTriggerSwitch__c.getValues('OpportunityProduct');
    CustomTriggerSwitch__c ct = CustomTriggerSwitch__c.getValues('Quota__c');
    
    if(cts == null || 
       cts.Active__c || 
       opportunityLineItem.Opportunity.business_plan__c <> null || 
       opportunityLineItem.Quota__c.ID <> null){ 
           
        List<OpportunityLineItem> olis = (Trigger.isDelete ? Trigger.old : Trigger.new);
        List<OpportunityLineItem> qta = (Trigger.isDelete ? Trigger.old : Trigger.new);
        
        
       // System.enqueueJob(new OpportunityProductQueueable(olis,Trigger.oldMap));
        System.enqueueJob(new QuotaProductQueueable(qta,Trigger.oldMap));
    }
}

 
This was selected as the best answer