Business Processing Date

The Business Processing Date is an optional parameter that is common to all batch jobs. It is distinct from the system date. During batch execution the system date is always 'today' but the business processing date can be specified using the ProcessingDate parameter of the particular batch job. This gives us the ability to 'spoof' the date that a batch process was run. For example, if a financial batch run was scheduled to run on a Friday but failed. The organization could re-run it on Saturday but set the ProcessingDate to Friday's date. This means that all the calculations etc. would behave as though it was genuinely being run on the Friday. If the ProcessingDate parameter is not specified the business processing date defaults to the system date.

At a technical level, within any transactions initiated by the batch process, calls to getCurrentDate() will return the business processing date specified as the batch parameter. Any calls to getSystemDate() will return the system date, i.e. 'today', as normal.