Imixs Workflow ...the open source workflow technology for business applications

Core API

The Imixs Workflow Engine

After you have defined your business model and created a workitem containing your business data you can run the Imixs Workflow engine to process the workitem. When a workitem is processed by the workflow engine the workitem becomes a process instance of the current workflow process. From this moment the workflow engine controls the workitem until the business process is completed.

Run the workflow engine

A workitem can be processed by calling the method processWorkItem() from the WorkflowService. As the Imixs Workflow Engine is based on Java EE you can inject the WorklowService with the @EJB annotation. This is a simple example:

  import org.imixs.workflow.ItemCollection;
  .....
  @EJB
  private org.imixs.workflow.jee.ejb.WorkflowService workflowService;
  ....
  // create a workitem
  ItemCollection workitem=new ItemCollection();
  workitem.replaceItemValue("name","Ralph");
  workitem.replaceItemValue("age",new Integer(40));
  // assigen a workflow model
  workitem.replaceItemValue("$processID",20);
  workitem.replaceItemValue("$activityID",20);
  // process the workitem
  workitem = workflowService.processWorkItem(workitem);
  

After you have processed a Workitem you can evaluate the workflow data, provided by the workflow engine:

  ....
  // get the assigend workitem unique id...
  String uniqueID=workitem.getItemValueInteger("$UniqueID");
  // read the current workflow status
  String status=workitem.getItemValueString("txtWorkflowStatus");
  ....

With the uniqueID of a processed workitem you can fetch the process instance from the WorkflowService:

  ....
  // load a process instance by the unique id...
  workitem=workflowService.getWorkItem(uniqueid);
  ....

Also you can fetch a list of all workitems assigned to the current user. This list is typical called the 'task list'

  ....
  // get all workitems for the current user...
  Collection<ItemCollection> tasklist = workflowService.getWorkList(null, 0,
                                -1, 0);
  ....

The Imixs WorkflowServce provides a lot of methods to manage workitems processed by the workflow engine. See the workflow engine section for more details.