May 31, 2016

Rapid Workflow Based Application Development

Enterprises are looking to constantly re-engineer business processes to be more effective and productive. Business processes modelled as Workflows offer many advantages, not limited to, modelling of processes as tasks, involvement of business folks, distributed deployment of tasks and parallel execution. There are many tools that provide visual modelling of business processes as workflows, tasks and involve manual human intervention as well as automatic assignment of tasks and completion.

Modern-day RAD platform like WaveMaker offers, visual drag and drop WYSWYG interface to design, implement front end application User Interface. WaveMaker offers out of box beautiful responsive design of Web as well as Mobile Applications.

WaveMaker in combination with BPM tools can offer enterprises ability to model complex sophisticated business processes and at the same time offer a visually interactive user experience and interface for end users to interact with the application.

Now that we understand the importance of such integration, let’s dive specifically into one such integration between WaveMaker and JBPM – a flexible Business Process Management (BPM) Suite.

WaveMaker and JBPM Integration Application Development

JBPM is lightweight, fully open-source (distributed under Apache license) and written in Java. JBPM is used by many Java Developers for modelling business processes. See more at JBPM can be used to model simple as well as complex business processes as Workflows.

JBPM Integration with WaveMaker

JBPM offers a REST API Integration model for client applications to integrate to it. Using the REST APIs a client application can remotely invoke, fetch and interact with JBPM Workflows and Tasks.

Overall Application Needs

Let’s see how WaveMaker Application Developers can leverage JBPM to build sophisticated workflow process applications.

High-level components of Process-Based Application

  • Business Processes modelled as Workflows
  • Workflow involving multiple Tasks and Flows
  • User Roles and Task Assignment
  • Application Business Logic
  • Application UX and User Interface Screens
  • Application Persistence
  • Application Security

The table below shows which parts are built within WaveMaker and the ones built using JBPM Tool. Note: WaveMaker can also model processes using Page Navigation and Page Assignment using its own business logic. When you need a business process designer to model processes, one needs to choose this type of integration.

Application Feature Implemented Within
Business Process Modelling using Workflows BPM Tool
Workflow Tasks and Role Assignments BPM Tool
Application Look and Feel WaveMaker Using Themes
Application User Interface WaveMaker Drag and Drop Interface
Application Security WaveMaker Inbuilt RBAC Security
Task Invocation WaveMaker Using BPM REST APIs
Task Monitoring WaveMaker Using BPM REST APIs
Application Persistence WaveMaker Using Database Integration


  1. Business Process Modelling as Workflows

Launch JBPM Console, and you can log in and start creating Process definitions, Task List and users/roles. Here is one such example, of a Bank Loan Approval Business Process that is modelled using JBPM workflows. As you can see the process involves multiple steps from the time end-user applies for a loan to the time the loan gets approved. These steps are modelled as tasks and there are various gatekeepers (roles) that need to approve the step in order for the workflow to the next step. Bank
Loan Approval Process Modelled

  1. Workflow Tasks and Role Assignments

In the JBPM Process Designer, you can have a Workflow modelled with various tasks as shown below. Each Task can be assigned to an approver who needs to manually intervene and move the workflow ahead. As you can see below, there is a verification step involved in Bank Loan approvals. And there is a verification task that is assigned to a Role (“Verifier”) and that person will manually intervene in the workflow and approve/disapprove the loan step depending on business rules.

As you can see in the workflow, there are multiple tasks in the overall workflow process. At different tasks level, you can see that there is an approver involved that will move the process to the next step.

  1. Application User Interface and User Experience

WaveMaker provides an intuitive drag and drop interface to develop UI Screens and Widgets. Application developers can create the UI Elements using WaveMaker.

WaveMaker supports a number of out of box widgets to easily create the UI Screens.  The UI can be customized in terms of look and feel using WaveMaker Themes. The UI created out of the box from WaveMaker is by default Responsive in Nature. Here is an example of a WaveMaker created UI Screen.

  1. Binding UI to JBPM Processes

WaveMaker supports easy integration to REST APIs using the Import Web Services Wizard. JBPM exposes REST APIs for client applications to consume and remotely invoke, fetch, and monitor workflow processes and tasks.

Here is the link to see the documentation of REST APIs from JBPM,

Few of these REST APIs used in the Bank Loan Application are shown and explained below,

Get-Process Information:  Get Information about JBPM Process Instance, given an instance ID

REST API URL: /rest/runtime/demo:LoanProcesses:1.0/withvars/process/instance/{processinstanceid}

In order to import this API in WaveMaker, use Import Web Services Wizard as shown here,

Security for invoking the REST API

WaveMaker can import/invoke secure as well as non-secure APIs. While importing these REST APIs from JBPM, the appropriate security credentials need to be provided in order to import the services and invoke them from the application. Here is the security configuration that needs to be provided provide, as an example,

Once these APIs are imported, WaveMaker creates Service Variables for each API. In the User Interface, these service variables are then bounded to the respective Widgets to bind the data from the service to the widget.

For example in a loan processing app, when a loan processing application form is filled, the loan processing workflow needs to be kick-started, this is done by binding the respective service variable to the submit button as shown below

Other examples of REST APIs that JBPM Provides

Invoke Start Process: Invokes a specific task within a workflow

REST API URL : /rest/runtime/demo:LoanProcesses:1.0/process/LoanProcesses.LoanApproval/start?map_Address={map_Address}&map_EmailId={map_EmailId}&map_PAN={map_PAN}&map_Salary={map_Salary}&map_LoanAmount={map_LoanAmount}&map_Name={map_Name}&map_CompanyName={map_CompanyName}&map_EmployeeId={map_EmployeeId}&map_Gender={map_Gender}

Start a specific Tasks


  1. Application Security

WaveMaker supports out of box authentication, authorization and access control for the various application components.  The Application can use various forms of Authentication stores (LDAP, AD, Custom Legacy Systems) to authenticate users and also support Role-Based Access Control both at coarse as well as granular levels for UI Screens, Widgets and individual services.

  1. Application Persistence

WaveMaker support the persistence of any custom data that the application needs to manage. WaveMaker supports all the major SQL databases to persist data.

In summary, as you can see in this article, WaveMaker in combination with BPM tools can allow Enterprises to rapidly develop sophisticated process-based applications both as responsive web applications as well as Mobile Hybrid applications.

For more on WaveMaker, please visit, wavemaker and Sign Up for the Demo.