Alfresco Activiti BPM Suite - Part I

We have recently done a production implementation of the shiny new “Alfresco Activiti Suite” at one of our customers and we think it’s time to share our experience with the product and its features.

What is Activiti?

For those who don’t know what Activiti is - it’s a light-weight and super-fast, open-source BPMN2 process engine for Java which has been around since 2009. Open source user guide is a good starting point if you would like to know more.

“Open source Activiti” vs “Alfresco Activiti Suite”

Activiti has always been a favourite choice among Java developers over the last few years. However I’m not sure whether it’s been a business user’s cup of tea until now! Just last year Alfresco came up with their enterprise offering called “Alfresco Activiti Suite” based on the open source Activiti BPM Engine. So what is the advantage of this product over the open source version?

It’s not just enterprise support which you are getting, the product suite comes with two main web applications.

  1. Activiti App - provides a web UI (written in HTML5 & AngularJS) to develop forms, processes and apps on top of the open source activiti-engine. With the new web UI for process and form modelling, business users can now start mocking up processes and forms easily.
  2. Activiti Admin - helps you manage activiti clusters as well as inspect and manage processes and tasks.

Let me give a quick introduction to the components of Activiti App. The webapp itself contains the following child apps which can be added/removed independently or can even be embedded into another application.

  • Kickstart Editor - one of the key components of the app that allows you to design forms, processes and apps.
  • Tasks - start and manage processes and tasks.
  • Identity Management - manage users and groups.
  • Analytics - provides analytics on processes and tasks.

Want to know more? Checkout the documentation

Our experience with the product.

When we started working on “Alfresco Activiti Suite” back in September 2014, the product was in its very early stages with only a handful of features and few configuration options. As a partner we’ve been lucky to see the product making huge strides in the last year. Team Activiti has done a great job to incorporate a lot of features which our customers requested without sacrificing the “lightness” that the product is known for. I’m even more excited about Alfresco’s product direction after recently getting a peek at at the upcoming 1.3.0 release.

Let’s get on to product features

Let me start this series with the form editor features in Activiti App. If a task requires input from the user, you can design forms in a web UI and attach the form to the task. Designing forms for your processes via web UI without IT help is something a business user/business analyst would love to do! It’s really nice to see lightweight products like Activiti offering features which you used to see only in very heavyweight, proprietary & expensive products.

Let me put all the important form editor features in a tabular format

Form Field Types Configuration Options
Basic input types like text, string, multiline text, number, currency etc Mandatory/Optional
Typeahead, dropdown and radio buttons which can be configured using REST APIs Design column layout
Dynamic tables Visibility conditions
Collapsible groups/headers Add placeholder text
Tabs Configure fields using data from REST APIs, process variables and form variables
File upload field Attach files from Google Drive, Box, Alfresco accounts
  Customisation using javascript extension module
A Few Highlights
  • Javascript extension module is a very powerful feature available for the developers. This allows you to customise and validate the form fields to your liking using your favourite javascript libraries.
  • The upcoming release added a new feature allowing you to add custom form elements!
  • A runtime feature worth mentioning is “Save Form.” If you have complex task forms with lots of mandatory fields this “Save” feature allows you to save a form without completing mandatory fields and submit later.

Some Screenshots

Form Editor

Activiti Form Editor

Form Runtime

Activiti Form Runtime

I don’t want to clog up this blog post with a lot of screenshots. So attaching just a few configuration options to hightlight how easy it is to configure the forms by someone who is not very technical.

Mandatory and Visibility Settings

Activiti Form Config 1

Table Configuration

Activiti Form Config 2

Activiti Form Config 3

Form editor limitations

Some of the features we would love to see in the form editor are:

  • Ability to specify conditional mandatory conditions on form fields
  • Conditionally disable(read-only)/enable input fields
  • Support for complex/nested json stuctures on dropdowns and typeahead fields
  • Some common input types like email, dateTime, time etc

Having said this, you can overcome these limitations using the javascript extension module in the product. This would require some basic javascripting knowledge. I’m confident that these missing features will be available out-of the box in the very near future.

Like to do some hands-on?

You can get a trial version of the product from Alfresco website. If you don’t want to install it on your machine, you can try it on the Alfresco Activiti Cloud. Alfresco’s documentation page is a good place to get an understanding of all the components and architecture of Alfresco Activiti Suite.

Finally..

Some good news..

During the Activiti Community Day in Paris, Activiti 6 was launched. As I can see from Joram Barrez’s blog on Activiti 6, most of these web UI features will soon be open source with the release of Activiti 6!!

Stay tuned for more posts on process modelling, analytics & some of the interesting problems we had in the project…


You might also enjoy:

Dock Tales: Docker Authoring, with Special Guest Mule ESB 30 March 2015

Ansible Crash Course 09 March 2016

Introduction to Elasticsearch, Logstash and Kibana (ELK) Stack 14 November 2014

Microservices with Apache Camel, Spring Boot and Docker 31 March 2016

Dock Tales, Or: How I Learned to Stop Worrying and Love the Container 23 March 2015


comments powered by Disqus