Batch Job Schedule D365FO
With the following X++ sample code you can schedule a Batch job.
Sample Code
static void batchJobSchedule(Args _args)
{
BatchHeader objBatchheader;
SysRecurrenceData sysRecurrenceData;
Batch batch;
BatchJob batchJob;
RetailCDXScheduleRunner objRetailSchedule;
BatchInfo objBatchInfo;
BatchRetries noOfRetriesOnFailure = 0;
;
// 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;
}
Support Faryal's Cusine