August 13, 2020

WaveMaker - Process Automation with Workflows

Software Automation, today, has been the bent of mind in almost all sectors - fast-moving consumer goods, manufacturing, banking and finance, infrastructure, telecom, and more. The post-Covid world has posed serious challenges to both humans and industries. Industries and Plants are grappling with absent migrant laborers with the social distancing exigencies. As a result, plant closures and productivity losses have led to huge losses in businesses. So much so, many businesses are considering automation of their shop floors with robots.

Given the context above, the bare minimum the IT industry can do to foster the pressing need for automation is a speedy and convenient software delivery model to the business stakeholders.

While low-code platforms like Wavemaker have been around for rapid software development, the business logic if automated with workflows further accelerates this.

Wavemaker has been farsighted in this paradigm and has capabilities for integrating with automated workflow engines already in place. A Wavemaker application can integrate with the open-source lightweight BPM product - Camunda.

An organization made up of multiple nations wanted a solution that is completely open source and not locked into any commercial software. So WaveMaker's application architecture of code generation in open source technologies combined with Camunda’s open source Engine was the clincher.[/vc_column_text][/vc_column][vc_column el_class="hide-mobile" width="1/6"][/vc_column][/vc_row][vc_row bottom_padding="30" class="builder-advantages"][vc_column width="1/1"][vc_row_inner][vc_column_inner width="5/6"][vc_column_text]This organization has a Mechanical Plant with thousands of machines, requiring the automation of inspection and assessment of maintenance Tasks for its machines.

This includes

  • Task identification
  • Request for approvals for the identified Tasks
  • Creation of Task Sequences
  • Logging results of Assessments in the Database
  • Review of Assessments, and further studies if required

Each of these steps typically requires the intervention, across the hierarchy, of Subject Matter Research Officers (SMRO), Subject Matter Experts (SME), and Maintenance Management Officers (MMOs).

A step like the Assessment of a task has its own workflow.

Implementing the entire business logic to such granular levels using traditional development methods would impede the speed of development, efficiency and tracking and so a lightweight Workflow Engine is a good fit.[/vc_column_text][/vc_column_inner][vc_column_inner el_class="hide-mobile" width="1/6"][/vc_column_inner][/vc_row_inner][vc_row_inner][vc_column_inner width="5/6"][vc_column_text]The business stakeholders for the plant chose Wavemaker which provided an easy modular implementation along with Camunda.

  1. Wavemaker provides widgets for quick development (using the drag and drop features)  of clean User Interfaces. 
  2. The Workflow Graphical representation is made using the Camunda Modeler. 
  3. The Rules or Decisions are set up in a Decision Management table in Camunda.
  4.  A REST endpoint for invoking the Camunda workflow is created and imported into Wavemaker.
  5. Java code with Spring-based REST APIs for all CRUD operations on each database entity is generated when the Maintenance Task Database (MTDB) is imported into the WaveMaker Application.  
  6. Wavemaker provides pre-processing / post-processing hooks for customizations before and after the DB Calls.
  7. The  Business Rules are externalized to Camunda decision flows so that any change in business rules does not impact the Wavemaker Application.

Here is a snippet of the Interaction Diagram at a high level -[/vc_column_text][minti_image img="23885"][vc_column_text]The Wavemaker Application and the Camunda Workflow can be deployed separately in different cloud instances so as to be able to scale them horizontally. [/vc_column_text][/vc_column_inner][vc_column_inner el_class="hide-mobile" width="1/6"][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row]