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

what is the further step to activate the batch apex class !!!
I have written this class which is select the query of the Accounts and making an csv file.
cloud u please suggest me what to do to see the working of batch apex class,
global class ConvertAccounts implements Database.Batchable<sObject>
{
global final string query;
global ConvertAccounts (String q)
{
query = q;
}
global Database.QueryLocator start(Database.BatchableContext BC)
{
return Database.getQueryLocator(query);
}
global void execute(Database.BatchableContext BC, List<Account> scope)
{
folder f=[select id, name from folder where Name='Accounts Details'];
Document d = new Document();
d.Name = 'Accounts CSV';
d.folderid=f.id;
string header = 'id , AccountNumber , name , AnnualRevenue , BillingCity , BillingCountry , Description , CreatedDate , ModifiedDate \n';
string finalstr = header ;
for(Account a: scope)
{
string recordString = a.id+','+a.AccountNumber+','+a.Name+','+a.AnnualRevenue+','+a.BillingCity+','+a.BillingCountry+','+a.Description+','+a.CreatedDate+','+a.LastModifiedDate +'\n';
finalstr = finalstr +recordString;
}
d.Body = Blob.valueOf(finalstr);
d.ContentType = 'text/csv';
d.Type = 'csv';
insert d;
update d;
}
global void finish(Database.BatchableContext BC)
{
// Get the ID of the AsyncApexJob representing this batch job
// from Database.BatchableContext.
// Query the AsyncApexJob object to retrieve the current job's information.
AsyncApexJob a = [Select Id, Status, NumberOfErrors, JobItemsProcessed,
TotalJobItems, CreatedBy.Email
from AsyncApexJob where Id =:BC.getJobId()];
// Send an email to the Apex job's submitter notifying of job completion.
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
String[] toAddresses = new String[] {'!Account.EMail'};
mail.setToAddresses(toAddresses);
mail.setSubject('Apex Sharing Recalculation ' + a.Status);
mail.setPlainTextBody('The batch Apex job processed ' + a.TotalJobItems +
'batches with '+ a.NumberOfErrors + ' failures.');
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
}
}
Mohd,
You need something to kick it off. Either a scheduled APEX call or even a kick from the System Log. Something like:
ConvertAccounts ca = new ConvertAccounts();
ca.query = 'select id from account where YOUR CONDITIONS HERE' ;
ID batchprocessId = Database.executeBatch (ca) ;
Hope this helps,
Dan Smith
http://www.virtrock.com