The Value of Workflow Based Reporting

Reporting is on every manager’s mind. “How can I provide the real-time facts about the progress of my department?,” “How do I get the funding I need?,” “How can I be sure changes in my organization are getting done correctly?” These are some of the questions we have answered with a click of a button!

Armedia has implemented a solution for a company requiring a robust reporting solutions for their complex business processes and strong needs for auditable solutions. The solution is easy to use and gives instant response to these requirements.

At INEOS Phenol there is a great need to report on their multi-faceted processes and workflows. When dealing with chemicals, changes to the equipment and environment can be a very involved process. This process, previously involving paper, was sometimes taking months to get through a single MOC (Management of Change). In such a large going concern, dealing with flammable chemicals, a single change can effect the entire system in many ways. This process involves many employees to investigate what actions they need to take on and how it will affect their department.

Implementing a strong electronic workflow process to manage the progress and activities, as well as instant reporting capabilities, was a challenge for us to configure. The solution must be able to instantly report on the workflow status, author, date, time and various action items that are needed to fully implement the change.

Two solutions were developed to make it easy for managers to quickly access this information without needing to physically run around the plant and various labs to monitor the hundreds of workflows in over eight departments.



One solution was establishing a workflow portal in their content management system, Alfresco. We created a dashlet that they can place on their home page and view immediately after logging on.  This “portlet” tracked the workflow number, the name, the author, the status and the last time it was updated. The status indicates the exact location/employee/department of the workflow in progress.

To open up a full report of all the workflows is just a click of a button at the top of the portal. In addition, if an authorized user needed a more in-depth report of a single workflow, they would just click the report icon to the right of each workflow.



The other solution was a portlet for the action items that initiated from the workflows in progress.  With proper permissions, users can see at-a-glance the name of the action item, assignee, originating workflow,  text of the action to be completed, status, and the target due date. In the same dashlet, a simple click opens up a report of an individual action item, all action items, or a filtered set of action items (i.e. all actions items with a “pending” status). This can give a manager full control of their area, instant knowledge of their departments’ workload and time to go get coffee!



The return of investment on these solutions is untold hours of paper based processing, hours spent investigating where the bottlenecks are and grey hairs. Leveraging Alfresco dashlets with reporting capabilities and Activiti to run your complex workflows, can help your company get more done with less!

Integrating Workflow and Custom Forms in Alfresco

Recently, while working with a client I went through the course of understanding their business processes.  What transpired was a fairly complex process.  It started out simple:


  1. Complete form, submit to manager.
  2. Manager reviews, either rejects for more information or accepts and forwards to departments.
  3. Each department then has to complete a checklist, in which the department may only complete their assigned checklist, but be able to view other department checklists.  Each checklist has a number of questions which may invoke an action.  If the question invokes an action, then the person filling out the checklist has to select a person to assign the action to.  This action should not be sent to the selected person until a later stage in the workflow.
  4. The workflow cannot proceed until each department completes their checklist.
  5. Some more steps ….
  6. On approval, all assigned actions are sent out to the appropriate people.
  7. Some more steps ….
  8. The workflow cannot complete until all assigned actions are completed by the assigned users.  Note: this could be hundreds of actions which need to be tracked!

Pretty basic stuff to implement, isn’t it?

I may have glossed over a few details.  The main driver behind this business process is the automation of the checklists.  Each checklist may vary in the responses to the questions being asked.  For example, in one checklist the answers may be “Yes|No|N/A|Unresolved”, while aanother checklist might be “New|Modified|Delete”.  As mentioned earlier clicking on an answer to the question may in fact trigger an action to be assigned to someone.  In fact, each answer could trigger an action, and each action may differ.

In order to accomplish the creation and handling of these checklists, we implemented custom datalists, services and forms.  The datalist allowed for the creation of the various questions with the appropriate answers.  The question also allowed for setting the trigger event, if any, for the various responses.  The form presents the questions to the user and groups them based upon the grouping setting and allows for the checking of the questions.  I should note than only one response is allowed.  It is conceivable, of course that multiple responses could be allowed.

Below is an example for a checklist showing all the properties and indicating if this is a trigger action.

Workflow-Checklists within Alfresco ECM

Data-checklists-within Alfresco


To tie the datalist and forms together, custom services were created.  The services took care of assembling the questions by their grouping (it anyone) and providing these to the form.  The service would also manage tracking the answers.  As an added bonus: the services were exposed to the webscripts tier to facilitate reporting against them.

Below is an example of a checklist


So now we have sucessfully created a checklist, but we still need to incorporate it into the workflow.  Seeing as custom forms are being used, it makes this a little more challenging to wrap these up within the workflow process.  Fortunately at Armedia, we are full of creative people, itching to solve problems.  And thankfully Alfresco is implemented in a way to cater for creative people:)

To integrate the workflow and the custom forms, this was achieved by implementing an alternative way to invoke the custom workflow/forms.  A simple dashlet was created to allow users who would be creating these workflows to start them from their Dashboard

Creating a New Workflow within Alfresco


This dashlet invoked some custom code which allows the custom form and the workflow to be “glued” together.  By taking this approach it has allowed  us to  custom logic (ie. making sure everything is completed correctly) before allowing the workflow buttons to be enabled.  As part of the business process it is important that the workflow not proceed until all conditions are met.  For example, if a checklist is completed but a question has been marked as “Unresolved” then the workflow should not proceed.

Below is a sample of the javascript which is used as the wrapper around the custom workflow and custom form.

* @namespace Alfresco.module
* @class Alfresco.module.MocWrapper
(function() {
    var Dom = YAHOO.util.Dom, Event = YAHOO.util.Event, Element = YAHOO.util.Element, Bubbling = YAHOO.Bubbling, KeyListener = YAHOO.util.KeyListener

    nodeRef = "";

     * MocWrapper constructor.
     * @param htmlId {string} A unique id for this component
     * @return {Alfresco.module.MocWrapper} The Moc Wrapper  instance
     * @constructor
    Alfresco.module.MocWrapper = function(containerId, nodeRef) {, containerId, nodeRef);

        return this;

    YAHOO.extend(Alfresco.module.MocWrapper, Alfresco.module.FormWrapper, {

The downside to this approach means that the custom workflows cannot be started using the “Out of the Box” start workflow as we need to associate the custom form noderef with the workflow.  Seeing as this is version 1 of the solution, we had to leave something for the next release, to more seamlessly integrate the custom forms and workflow.

In the overview of the business process, I indicated that when completing the checklist, you may need to assign an action to someone.  Believe it or not, we have a service for this!  Each time an action is created it is associated with the checklist.  By doing this it allows the action to be tracked once it is eventually sent to the assigned user.

Below is an example of the actions that have been assigned during the checklist process

Automatic-Responsibilities assigned during Alfresco Workflow

The list of actions is visible from within the form.  Note that we track who assigned the action, who it is assigned to and what the status is.   As this is only an example, a real view would actually include many more actions.   Each column can be sorted to help the author of this workflow.  This will help in finding out which actions are completed and which ones are still in process.

Finally, to make all of these workflows available for users to access and view as a consumer a custom dashlet was created which users can place on their dashboard.  This dashlet shows all of the workflows that are currently in process and completed.


By clicking on the Workflow # the user is taken to the form where they can view all the details associated with it, like checklists, actions, documents.

There is more to this solution to talk about. However, I will leave that to future blog posts!

Drupal/ Alfresco Integration is The Word on the Street!

The excitement is palpable. The benefits of a Drupal/ Alfresco integration are considerable, both from a developer and an end-user’s perspective. And users of one of these open source systems have already recognized this.

So, what are the two system’s at play in this powerful migration? Drupal is the open source standard for web content management that currently powers millions of websites and applications world-wide. Drupal is built and supported by a vast community composed of millions of users from countries around the world.  Alfresco, on the other hand, is the industry- leading open source standard for Enterprise Content Mangement. Alfresco also has a strong relationship with the open source community as numerous customized apps have been integrated on top of this extremely robust platform and repository.

The combination of Drupal and Alfresco in an integrated solution results in a combined content publishing and document management system that truly is the best of both worlds.  Still, what are the specific benefits of using Drupal and Alfresco in conjunction with one another? Let’s take a look at two different perspectives:


Think Alfresco from Documentum perspective –Take 1

When you work for a while in the software you get numbed to “technologies have come and gone…” occasionally though some become commodities and others trend setters. We have seen that with many products like Apache, Tomcat, Lucene, Drupal …etc that have stabilized and matured over the past years with the help of increased development from the open source realm. Wait! Did I mention the word “Open Source” and going to talk about the enterprise content management?