The Workflowkernel is the core component of this Imixs Workflow API to control the processing of a workitem. A Workflowmanager implementation (like the Imixs JEE Workflow) loads an instance of the Workflowkernel, hand over a Model Instance and register a list of workflow plugins.
To process a single Workitem you typical call the method 'process' of the WorkflowManager interface.
The WorkflowManager over hands the workitem to the WorkflowKernel to process the workitem by a predefined set of workflow plugins. Therefore the WorkflowKernel provides the method :
This method enables the WorkflowManager to register different PluginClasses to be loaded by the Kernel during the Process method.
The internal method processActivity() process an activity instance by loading and running all registered plugins. Then the method computes the next processId which will be stored in the property $ProcessID. The method processActivity will run as long as the property $ActivtyList holds additional ActivityIds to be processed. So a WorkflowManger can also run through a process queue on a single Workitem.
The WorkflowKernel generates two Log Entries.
The following examples show how the values will be stored in the workitem:
Time - PluginClass - Result
June 23, 2008 1:58:25 PM org.imixs.workflow.plugins.AccessPlugin=0 June 23, 2008 1:58:25 PM org.imixs.workflow.plugins.HistoryPlugin=0 June 23, 2008 1:58:25 PM org.imixs.workflow.plugins.ResultPlugin=0 June 30, 2008 1:37:10 PM org.imixs.workflow.plugins.AccessPlugin=0 June 30, 2008 1:37:10 PM org.imixs.workflow.plugins.HistoryPlugin=0 June 30, 2008 1:37:10 PM org.imixs.workflow.plugins.ResultPlugin=0 June 30, 2008 1:37:26 PM org.imixs.workflow.plugins.AccessPlugin=0 June 30, 2008 1:37:26 PM org.imixs.workflow.plugins.HistoryPlugin=0 June 30, 2008 1:37:26 PM org.imixs.workflow.plugins.ResultPlugin=0