SDBatch (Legacy)
1
Create your APEX class
public class SDBatchTest {
private ApexPages.StandardSetController stdSetController;
public SDBatchTest(ApexPages.StandardSetController sscOther) {
stdSetController = sscOther;
}
public PageReference createBatchTest() {
String objectName = ApexPages.currentPage().getParameters().get('objectName');
Boolean showHeader = ApexPages.currentPage().getParameters().get('showHeader') != 'false';
List<SObject> selectedRecords = stdSetController.getSelected();
if (Test.isRunningTest()) {
selectedRecords = new List<SObject> { new Contact(LastName='Test') };
}
//This is responsible for the SDJob creation. Start__c must be set to False.
List<SDOC__SDJob__c> jobList = new List<SDOC__SDJob__c> {};
for(SObject selectedRecord : selectedRecords) {
SDOC__SDJob__c job =
new SDOC__SDJob__c(SDOC__Start__c=false,
SDOC__Oid__c=String.valueOf(selectedRecord.get('Id')),
SDOC__ObjApiName__c=objectName,
SDOC__SendEmail__c='0',
SDOC__Doclist__c='[<TEMPLATE NAME or ID>]');
jobList.add(job);
}
insert jobList;
// This is part calls SDBatch and searches for jobs based on isSDJobQuery.
SDOC.SDBatch sdb = new SDOC.SDBatch();
sdb.templatenameorid = '[<TEMPLATE NAME or ID>]';
sdb.isSDJobQuery = true;
//The query can be updated for to specify the batch requirements.
sdb.query = 'WHERE SDOC__Start__c=false AND SDOC__Status__c != \'Error\'';
sdb.batchSize = 10;
sdb.executeBatch();
return new PageReference('/');
}
}2
Last updated
Was this helpful?

