• vijay sampathi
  • NEWBIE
  • 0 Points
  • Member since 2017

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 2
    Questions
  • 3
    Replies
How to call another batch apex from one batch apex? i am providing 2 sample batch apexes just for testing purpose, or else can some one provide me a sample batch apex in which another batch will be called

Batch apex 1

public class BatchLeadConverted implements database.Batchable<sobject>
{
    list<lead> llist=new list<lead>();
    public string query='select id,name,status from lead';
    public string flag='Closed - Not Converted';
    
    public database.querylocator start(database.BatchableContext bc){
       return database.getQueryLocator(query); 
  }
    public void execute(database.BatchableContext bc,list<lead> le){
        for(lead l:le){
            if(l.status==flag)
            {
                llist.add(l);
            }
                
        }

      delete llist;            
      database.emptyRecycleBin(llist); 
    }
    public void finish(database.BatchableContext bc){
        
    }
 }

called with below code 

Batchleadconverted b=new BatchLeadConverted();
database.executebatch(b,2); 

Batch Apex 2

public class accno implements database.Batchable<sobject>
{
    integer i=0;
    public string query='select id,name from account';
    public Database.QueryLocator start(Database.BatchableContext bc)
    {
        return database.getQueryLocator(query);   
    }
    public void execute(database.BatchableContext bc, list<account> acc)
    {
        for(account a:acc)
        {            
          a.name=a.name+i;i++; 
        }
     update acc;       
    }
    public void finish(database.BatchableContext bc)
    {
        messaging.SingleEmailMessage ms=New messaging.SingleEmailMessage();
        string[] mailme=new string[]                {'xxxxxx@gmail.com'};
        ms.settoAddresses(mailme); 
        ms.setsubject ('record update');
        ms.setPlainTextBody('ExampleText');
        messaging.sendEmail(new messaging.SingleEmailMessage[]{ms});
    }
 
}

call with below code

accno a=new accno ();
database.executebatch(a)