You need to sign in to do that
Don't have an account?

calling batch apex class from trigger
i have a code but its not calling my parameterised constructor. I tried printing hi in my first line of constructor and its not printing that Please guide. my trigger code is
trigger RevenueScheduleTrigger on Revenue_Schedule__c (after insert, after update) {
List<Revenue_Schedule__c> revs = new List<Revenue_Schedule__c>();
for (Integer i=0;i<Trigger.new.size();i++){
revs.add(Trigger.new[i]);
}
system.debug('Rev sheds are'+revs);
if(revs != null && revs.size() > 0){
RevenueSchedulerSplitBatch sp = new RevenueSchedulerSplitBatch(revs);
Database.executeBatch(sp,1);
}
}
and a part of my batch class is :
global class RevenueSchedulerSplitBatch implements Database.Batchable<sObject>{
global static List<Rev_Schedule_Split__c> splits = new List<Rev_Schedule_Split__c>();
global static List<Rev_Schedule_Split__c> toDeleteSplits = new List<Rev_Schedule_Split__c>();
global static List<sObject> revs = new List<sObject>();
global RevenueSchedulerSplitBatch(List<sObject> RevSched){
system.debug('hi');
revs = RevSched;
system.debug('Revenue shed from trigger are:'+ RevSched);
}
global Database.QueryLocator start(Database.BatchableContext bc){
system.debug('Rev shed are' + revs);
return Database.getQueryLocator([Select Id, Schedule_Date__c,Revenue_LC__c, Revenue_USD__c, Split_Percent_2__c, Split_Percent_3__c,Sales_Rep_1__c,Sales_Rep_2__c,Sales_Rep_3__c
From Revenue_Schedule__c WHERE id IN : revs]);
}
global void execute(Database.BatchableContext bc, List<Revenue_Schedule__c> spl){
for (Rev_Schedule_Split__c rs : [SELECT Id, Revenue_Schedule__c FROM Rev_Schedule_Split__c
WHERE Revenue_Schedule__c IN : revs])
{
toDeleteSplits.add(rs);
}
}
Any advise will be of great help. thanks
Can you please check whether you are able to print revs inside trigger.
Thanks,
Himanshu