My trigger
trigger triggSendRebateData on RebateData_for_MC__c (before insert,before update) {
List<RebateData_for_MC__c> lstRebateData = new List<RebateData_for_MC__c>();
for(Integer i=0;i<Trigger.new.size();i++){
system.debug('iiii'+i +Trigger.new.size());
lstRebateData.add(Trigger.new[i]);
}
if(!lstRebateData.isEmpty()){
ID jobID = System.enqueueJob(new RebateDataQueue(lstRebateData));
}
}
My Class
public class RebateDataQueue implements Queueable, Database.AllowsCallouts {
private List<RebateData_for_MC__c> lstRebate;
public RebateDataQueue(List<RebateData_for_MC__c> lstRb){
this.lstRebate = lstRb;
}
public void execute(QueueableContext context) {
if(!lstRebate.isEmpty()){
for(RebateData_for_MC__c rbData:lstRebate){
TriggeredSendEmail.postMailtoET(rbData.name,rbData.address__c,rbData.BusinessUnit__c,rbData.ERp__c,rbData.ABN__c);
}
}
}
TriggeredSendEmail Class
public class TriggeredSendEmail{
@future(callout=true)
public static void postMailtoET(string name,string addressLine1,string businessunit,string erp,string abn){
//some code here
}
}
I'm trying to insert around 250 records by calling the method in developer console and this is the error i'm getting. How to overcome this

postMailtoETis a future function,? You call it in a queue tha means it is already a future context. – Simonp Feb 13 '18 at 06:58