Principal Consultant Paul Mollahan takes a look at the new workflow enhancements in Alterian Content Manager version 7 (CM7).
As CMS systems have matured and become a critical backbone within organisation's digital infrastructure, core functionality such as workflow does become more important in ensuring that a platform centric CMS system can deliver for the long term. If the CMS is expected to perform as the data hub, providing information for many delivery channels and integrate with other data flows, business processes or legislative requirements an extensible workflow engine is critical.
Alterian's CM7 release included a major change to the approach the product uses for implementing workflow. In this posting I will explore what exactly has changed and what content editors and developers need to know.
One of the key improvements with the new engine is the decoupling of workflow from Content Type definitions. This change means it is possible to create a library of workflows that can be managed independently of content to which they are applied. In previous versions of Content Manager, you defined your workflow as part of your Content Type definition. All items of content created using this content type had the workflow applied. So for example if you defined a News Release content type, all news release content created would have the same workflow applied.
There was no element of reusability, except if you considered building a base content type with a standard workflow and based all of your subsequent content types on this definition. With this approach each subsequent content type effectively "inherited" the standard workflow. Of course this approach had limitations, not least if you wanted to alter a step in the workflow, since any changes made needed to be applied individually to the workflow of each type (as inheritance only played a part during the initial content type creation).
However, to be fair this approach worked quite well unless the workflows changed frequently and for authors and editors associating a specific workflow with a type of content was a pretty intuitive way to work. The editorial tools provided a clear representation of the workflow and it was easy for editors and administrators to set them up.
Within CM7 however, the old approach has been replaced with a much more powerful and extensible engine that is a Workflow Management Coalition (WfMC) XPDL-compliant. (See http://www.wfmc.org/wfmc-standards-framework.html for some background on the standard). An open source workflow engine has been incorporated into the product - Enhydra Shark which brings the power and flexibility of a purpose built workflow engine to enhance the management of content.
So instead of workflows being tied to a Content Type, it is now possible to create a series of workflows independent of Content Types and define the necessary behaviour of each within the more powerful Workflow Designer interface.
Once the workflows are created, you can then choose to use the same workflow for all Content Types or map specific workflows to different content types depending on your requirements. In addition to being able to manage and share workflow definitions amongst content types, you can also apply workflow at the Site Group level so all content in a specific site group uses the same default workflow. Another option which provides additional flexibility is the ability to apply workflow to individual branches of content. This could be very useful if content in one section of your website has a need to undergo a regular compliance review or alternatively if you have a section of your website managed by a different set of editors in a specific location that necessitates a different content approval process.
Workflows can contain any number of user defined steps, with content pushed through the workflow either through an automatic trigger if a specific date is reached for example or manually by users with the appropriate permissions. At each step in the workflow, “tools” can be applied to the content items and these tools include defining the status of the content, assigning ownership to a specific role or roles and so on. User roles is another new addition – in earlier releases user groups (and branch based access control) were utilised to manage access to workflow stages, but with this release users can be further managed into roles and access to workflow stages assigned to these roles.
CM7 provides a series of common tools out of the box that address many common workflow use cases, but it also provides the ability to create and define your own “custom tools” that can be added to your workflows. This allows organisations to build up a library of reusable tools that can interact with content. And this is where the power of the platform centric approach can be tapped into, since with the ability to write custom tools that interact with the content via ACM’s open API, content from other systems, web services or social media for example can be incorporated into content publishing routines. While the ACM API has always facilitated the ability to write custom code to interact and enhance core functionality such as workflow, the ability to create custom tools that can be selectively used from the Workflow Designer by content editors is a really powerful feature.