Main purpose of any CMS is to convert unstructured contents or data into structured data so that it will be more convenient to manage the data especially when there is Hugh amount of contents. Now as we know for any Business there are various processes which involve the business critical documents and if those documents are already managed by CMS it is very important that there should be BPM tool which can incorporate those processes under the same system to streamline and leverage the existing process flow.
Alfresco which is the open platform for business critical document management and collaboration provides this BPM feature by supporting or we can say embedding the BPM tools like JBPM and Activiti. It enables customers to develop workflow using these tools for managing their processes.
JBPM is the BPM tool developed by JBoss. The core of jBPM is a light-weight, extensible workflow engine written in pure Java that allows you to execute business processes using the latest BPMN 2.0 specification. It can run in any Java environment, embedded in your application or as a service.
jBPM is also not just an isolated process engine. Complex business logic can be modeled as a combination of business processes with business rules and complex event processing.
Activiti is also opensource BPM platform. It is extremely light weight and can be integrated perfectly with spring (same as Alfresco). It is similar to JBPM in its core but provide various advance features which makes Alfresco to adapt Activiti. It is introduced in 3.4 Community version for the first time to extend Alfresco’s workflow features by providing developers more flexibility and integration capabilities for process flows between Alfresco and other business applications.
Currently Alfresco support both of these engines but by default only Activiti is enabled. If you want to use JBPM workflows you need to enable it through the configuration. For enabling JBPM you need to do changes in alfresco-global.properties file of your alfresco installation.
system.workflow.engine.jbpm.enabled=true system.workflow.engine.jbpm.definitions.visible=false system.workflow.engine.activiti.enabled=false
Following are artifacts of workflows which are used to implement Business Processes.
Process Definition: It Describes the states (steps) and transitions (choices) of a workflow. A step may be human or system-based. Human steps create and assign tasks to users. System steps perform some kind of operation against the Alfresco repository. Both are described and implemented in the Process Definition.
Task Model: The Task Model provides a description for each of the human tasks in the workflow. Alfresco provides a “Data Dictionary” for describing types of object to store, view and edit. This mechanism is also used to describe Workflow Tasks.
Web Client Configuration: It specifies the presentation of Tasks to the user in the Alfresco Web Client.
Resource Bundle (optional): It provides all the human-readable messages displayed in the user interface for managing the workflow. Messages include Task titles, task property names, task choices etc…
This gives you overview about how Alfresco support Business Process Management.