Process batches

Batch processing is performed as follows:

  • Tasks are distributed between one or more Extraction Process via the Server Scheduler. The number of Extraction Processes that are started depends on the number of cores in your computer, on the structure of the batch, and on the number of pending tasks.

  • Events are fired based on the task processing events.

  • When a project is loaded for the first time in an Extraction Process, the scripting engine is initialized. Subsequently, the Application_InitializeScript event is fired by each Extraction Process that processes a batch in the project.

  • The Application_InitializeBatch event is fired each time a new batch is started by each Extraction Process. When the Server distributes the batch over many Extraction Processes, then each Extraction Process fires this event at the beginning of batch processing.

  • The Batch_Open and Batch_Close events are fired once per batch only. This is done at the open and close of the batch, even if batch processing is split over many Extraction Processes. You can fire these two events using different Extraction Processes.

  • When the whole batch is processed, the scripting engine in the project is de-initialized and the Extraction Process fires the Application_DeinitializeScript event. When the Server distributes the batch over many extraction processes, each Extraction Process fires this event.

  • These events are also fired for all user interactive modules that support scripting. To distinguish between when a rich and thin client module is used for a batch, use the Project.ScriptExecutionMode and Project.ScriptExecutionMdouleType properties.

The following image illustrates the script events that are fired during processing batches using the the Extraction Process event:


A visual representation of the batch processing main event sequence.