Soft-wiring Apps with Activiti

Blog Post created by wabson Employee on Sep 13, 2016

A couple of us from the App Development Framework team recently presented at the Alfresco Partner Day in Washington DC where one of the key themes was accelerating time-to-value when building solutions for clients.

I was pleased to present on the topic of soft-wiring apps with Activiti, where I showed how it is possible to build a bespoke app that combines content and process, utilising the Alfresco Angular2 components and our Yeoman App Generator.

The Activiti BPM suite already has a notion of a lightweight app built-in, which allows you to wrap up one or more process definitions and their supporting assets (forms, decision tables, etc.) and make this available on the dashboard of selected users or groups of users.

Screenshot - custom app on dashboard

Activiti custom app on dashboard

This is great for prototyping the core process with stakeholders and it allows us to make changes quickly in response to their feedback, but when rolled out to users we may not want to make all the capabilities of the BPM suite available, or we may wish to combine the process with content from the ECM system.

Screenshot - App Architecture
App Architecture

Using the App Generator we can compose a custom application which will sit on top of our custom Activiti app to expose just the processes that we need for our use-case, but also include a view of the relevant content that the team require access to. This is important as it allows us to quickly build smaller apps that do one thing really well, in contrast with the monolithic apps of the past.

Screenshot - Custom App UI
Custom App UI


The App Generator, run by Yeoman, asks us a series of questions about which components we want to include in the app and how to configure certain application settings. Later on we can customise the style and behaviour further if we like, but the app will be usable straight away.

Screenshot - Yeoman App Generator

Yeoman App Generator

If we choose to add a Tasks List capability then within the generated application are components which allow the user to interact with Activiti tasks, processes and forms, allowing any changes pushed out via an app redeployment in Activiti to flow straight through into our custom app.

Screenshot - Dynamic form components in App UI
Dynamic form components in App UI

We call this soft-wiring apps, and we encourage you to take advantage of the capabilities that the Activiti platform provides to change process flows, form definitions and more, which the components will then render with no code changes required at all, greatly reducing the time needed to roll out updates to users.

Developing the components

Much of the Activiti-related functionality was developed by the team during a week-long internal hackathon which we carried out in August and we have added much more in response to feedback on the final apps from selected partners and community members.

One of the components we added more recently was a re-usable Start Process button which can be placed anywhere in your app and tied down to a specific Activiti App if required. By default the generator places it in the Activiti section of the app but you could move it into the app header to make it more prominent, for example. This is another benefit of a custom app, that you can move components around the page and change the interactions between them as you need to.

Start Process button and dialogue
Start Process button and dialogue

We believe it is this mix of composable, declarative ECM and BPM components that makes the Alfresco Application Development Framework well worth considering when you are considering what technology to base your next content/process custom app on. The framework is still under heavy development but we are interested in getting your feedback and contributions to help us shape the 1.0 release via the public GitHub projects and Gitter Chat.

It’s also worth mentioning that since the components implement the latest Material Design-based Alfresco design standard you can be sure that they will look good from day zero, and we include Google Material Design Lite (MDL) in generated apps which you can customise yourself as required to suit the desired look and feel.

Most importantly, you can get a working app up and running in very little time, and as discussed above making changes later on can just be a case of updating the process or form definitions in Activiti and the app will respond automatically. No more coding and release cycles just to change a drop-down list in a form.

The team will be at the upcoming European Partner Day in Brussels on October 6th where we will give a walk-through of a sample app and more technical details on how the components and apps are built. Registration is now open for the event via the Alfresco site.