Skip to main content
03 Sep 2012

One of the nice features of Alfresco is its' flexible workflow engine. If designed properly, Alfresco can handle very complex business processes. Let us assume that one of the Alfresco implementation is designed to initiate a 3 stage serial workflow. 

  • What happens if we have 10000+ documents added to the system daily?
  • What happens if multiple workflows need to be completed for a given/added document?
  • What happens if some of these workflows are pooled workflows (assigned to user group) rather than individuals?
  • What happens if some users are on leave and these workflows are being piled up?
  • What happens if system needs to store/archive completed workflow?  

One of the easy ways (but not efficient) is to manage all these piled up workflows by pagination functionality which is available in Alfresco out of the box dashlets (My Pooled Task).  But, if the document names are known other way to manage this huge list of workflows is search. But, unfortunately, Alfresco currently does not support workflow search out of the box.

This feature can be added by simple customization to Alfresco workflow service. Alfresco's workflow engine is based on jBPM.  One can configure jBPM to find out workflow details for suggested document and display all in progress/completed workflows in a list (tabular) format. This process can be optimized by including regular expression pattern. So, all matching workflow for a given search pattern will be displayed in the list.

So, rather than browsing through many out of the box dashlets, workflow search can give you the link to the exact workflow instance you are looking for. With the scoped search result set if pagination and multiple column sort functionality are being used, the efforts spent by business user will be reduced dramatically.

Let us assume we have a serial workflow configured for multiple departments to approve content before it is pushed to production and is available for public consumption.

Multiple Column Sort: What this means is user can group sort data in multiple columns. So, if the data is sorted by column Due Date and user sorts the data again with Workflow Name, it will sort data in buckets rather than the entire data set. So, the first sorting order will be Due Date and within the first order sorted data, system will sort data in groups. Based on the data sorted, it will change the data to be displayed on corresponding pages. If user is on page 3 and he/she changes the sorting order, user might see different data based on the sorting order. This is going to reduce the time for user to locate the exact workflow instance for a given document name.

When users want to change the initial sorted column (which is Due Date), user can remove all sorting by “Clear Sorting” functionality and can repeat the above procedure. Changing the size of the page gives liberty/relief from scrolling through multiple pages.

A very simple implementation may look like the snapshot given below.

 

- By

Kalpesh Patel,

Principal Consultant, CIGNEX India Office