Business Process Management (BPM) best practices often suggests that the BPM solution not be the system of record. In particular, the business data required for the Digital Business Solution should exist in other data stores outside of the persistence store being used by the BPM engine itself. Business data that is used and or created during the execution of a business process should exist and be maintained in one or more external data stores (e.g. RDBMS, NoSQL, etc...). Therefore to simplify and accelerate the development of enterprise scale Digital Business Solutions, Alfresco Process Services (Alfresco’s Enterprise Edition of the Activiti Community Edition (Open Source)) provides an important and valuable component called "Data Models" which is the focus of this blog.
Please note that I’ll be using the acronym APS throughout this post to refer to Alfresco Process Services.
Good news is, APS provides a variety of options for customers to do the business data integration. Listing down below all the data integration options that are available when implementing business processes using Activiti engine:
BPMN Service Task Component
Custom Java Logic wired into the process using listeners such as Execution Listener, Event Listener, Task Listener etc
Execute Custom SQL
REST Task Component (APS/Enterprise Only Feature)
Data Model Component (APS/Enterprise Only Feature)
Given below are some of the pain points we hear from business process modelers, analysts, developers, etc quite often.
Systems in my organization are so difficult to integrate into our processes.
Data modeling capabilities in our existing BPM platform is highly technical and have got a steep learning curve.
As an analyst/modeler, I would love to have some features in the product that allow me to model my SoR (System of Records) data model in the process platform.
Our organization has very mature and well defined REST APIs around all our IT systems. However as a business analyst/process modeler, mapping REST API requests and responses are too technical a job for me!
We have well defined and re-usable web services based on standards like SOAP, POX etc in our organization. We wish our BPM system has inbuilt capabilities that allow us to write re-usable and business friendly components over these web services.
We have been using Activiti community version for a long time. We have a lot of reusable Java code that allow us to integrate our processes with our IT systems. In order to understand those external system integration we often have to dig into the Java source code associated with the process. When moving from community to enterprise, it would be really nice if we can visually represent those data structures in the BPMN modeler and have direct integration of those components to other process components such as forms, rules etc.
As a business person, when I review a BPMN diagram I see a lot of service tasks with hidden Java logic in it. Every time when I do this, I have to go to a developer to understand the java components and to find out the input and output fields of those components. This makes me look stupid!
We are an organization with a lot of old school two tier applications (client->database) with no APIs. We need our business processes to talk directly to our application databases!
We use Alfresco Content Services as our System of Records for documents. What are the integration capabilities of APS with Alfresco Content Services.
Data Model is the component that can address all the above mentioned concerns/pain points in an elegant, simple and user friendly fashion without the complexities of similar components that is normally found in other large BPM vendor products.
Enough of overview and description and let’s see it in action.
Data Model Demo
The crux of the blog is in the following video which I recorded to demonstrate the various capabilities of the Data Model component
Let me summarize the post highlighting the key features of Data Models:
Data Models allow you to separate the data integration from business process modeling, In other words, process modeling is made easy with Data Models where it allows you to hide the implementation complexity from process models.
Data Models are integrated with all other modeling components such as forms, decision tables etc available in APS thereby reducing the time to market of your business process solutions.
Data Models allow you build re-usable domain entity objects/components which in-turn can be reused in a uniform way across multiple processes.
Data Model is a business friendly integration alternative available in APS.