X++ code for Scheduling Batch Job
static void JobSchedule(Args _args)
{
BatchHeader objBatchheader;
SysRecurrenceData sysRecurrenceData;
BatchInfo objBatchInfo;
BatchRetries noOfRetriesOnFailure = 0;
Batch batch;
BatchJob batchJob;
RetailCDXScheduleRunner objRetailSchedule;
;
// Setup the RunBaseBatch Job
objBatchheader = Batchheader::construct();
objRetailSchedule = new RetailCDXScheduleRunner();
objBatchInfo = objRetailSchedule.batchInfo();
objBatchInfo.parmRetriesOnFailure(noOfRetriesOnFailure);
objBatchInfo.parmCaption("Description should be here"); // Description Batch Job
objBatchInfo.parmGroupId('YourBatchGroup'); // Batch Gorup
objBatchInfo.parmBatchExecute(NoYes::Yes);
objBatchheader.addTask(objRetailSchedule);
// Set the recurrence data
sysRecurrenceData = SysRecurrence::defaultRecurrence();
SysRecurrence::setRecurrenceStartDateTime(sysRecurrenceData, DateTimeUtil::addSeconds(DateTimeUtil::utcNow(), 20)); // Set range of recurrence
SysRecurrence::setRecurrenceNoEnd(sysRecurrenceData);
SysRecurrence::setRecurrenceUnit(sysRecurrenceData, SysRecurrenceUnit::Minute); // Set reccurence pattern
objBatchheader.parmRecurrenceData(sysRecurrenceData);
// Set the batch alert configurations
objBatchheader.parmAlerts(NoYes::No, NoYes::Yes, NoYes::No, NoYes::Yes, NoYes::Yes);
objBatchheader.save();
// Update the frequency to run the job to every two minutes
ttsbegin;
select forupdate batchJob
join batch
where batchJob.RecId == batch.BatchJobId
&& batch.ClassNumber == classnum(RetailConnScheduleRunner);
sysRecurrenceData = batchJob.RecurrenceData;
sysRecurrenceData = conpoke(sysRecurrenceData, 8, [10]);
batchJob.RecurrenceData = sysRecurrenceData;
batchJob.update();
ttscommit;
}
Helpfull 🙂
ReplyDelete