Camunda BPMN example of Python-based application

To optimize and organize the business process workflow we use the Camunda software to perform BPMN diagrams and DMN tables.

What is BPMN

Business Process Model and Notation (BPMN) is a business process modeling standard used for the modeling of business processes. Camunda is an open-source Java-based platform for Business Process Management. It is used for one of the most exciting and equally convincing roles in business process preparation and performance-automation of the company processes. BPMN diagrams used in this process are well documented and extremely structured. They avoid complexity and are abundant in symbols to have a very comprehensive company action plan. Furthermore, BPMN's vocabulary is very rigid in guidelines and clear to be grasped by industry professionals as well as development architects.

simple BPMN.png

You can use Business Process Modelling to implement any automatization-reliable process within a business operation, beginning with lunch ordering and going towards for more complex and challenging tasks. Here is a BPMN example of preparing a latte.

BPMN tasks and eventsUser task, Manual task, Service task, Send task

Here is a description of some BPMN tasks and events that allow modeling the actual work being performed in the process.

    • A user task is a command that models the work done by a human. When the operation of the method approaches such a user task, a new task is generated in the worklist of the user(s) or collaborator(s) appointed to it.
    • A manual task describes a job that is independent of the BPM system. It is used to model research performed by someone who doesn't need to learn about the engine.
    • For invoking services, service task is used. Camunda achieves it by calling Java code or complete asynchronously with external staff.
    • A send task activates the sending of the message. This is achieved in Camunda by calling Java code.

Start event, End event

    • Start event determines when to initiate a process or a sub-process. To instantiate an event, the engine needs at least one start event. Per method description there can be a limit of one void or timer start event.
    • None end events are used when the business process reaches an end and is completed. Once a subprocess enters an endpoint, it restores the process flow to the parent process.

Camunda Architecture

The core of the Camunda platform consists of the Workflow / DMN / CMMN Engine. The engine is convenient to its users through REST/API interaction with web interface. In its turn, the web interface consists of 3 main sections - Tasklist, Cockpit, and Admin section. Each section has concrete access restrictions for average users, administrators, and developers.

Tasklist is used to launch executable business processes and is a BPMN user interface built on the basis of a predefined BPMN model developed for example by a business analyst or project manager using Camunda Modeler as a compatible software application designed to draw executable BPMN diagrams for Camunda.

Camunda architecture-min.jpg

The Cockpit section with technical specialist access only allows to monitor the backend of the processes/tasks execution flow and deployments, view their history to discover problems and inspect incidents by auditing task execution logs and observing the process variables changes. It is also possible to suspend a process in the course of execution, edit process variables, modify the status, change rules and so on in order to make on-the-spot improvements.

Camunda Admin module is meant for user management like granting permissions, arranging them into groups, perform user authorization and identification.

Development of Python application that implements Camunda BPM

At Quintagroup, we know how to set and configure complex business processes with Camunda BPMN. For instance, utilization of executable BPMN diagrams with the purpose of tracking and handling the employees’ work time may help to manage Asana tasks by manipulating user attendance information received from Odoo. Odoo is an ERP (Enterprise Resource Planning) open-source software written in Python, developed to streamline the administration of a company's business processes of any form and size. Odoo automation can be fully enforced to incorporating a modular framework, a well-ordered data transfer process, and require an infinite range of modules that can be combined in every way imaginable.

Let’s discuss it in more detail. Our use case depicts the business process of checks of attendance duration of the Quintagroup employees. 

You should know that we use biometrical devices to scan the fingerprints of the staff. We used ZKTeco F18, an advanced biometric fingerprint reader for access control. It includes high-performance firmware functionality, user-friendly UI, and multi-level control with customizable device privilege settings. The reader is connected to the HRMIS system - Odoo. We selected it as it offers extensive personnel management capabilities at any size, including participation and leaves control, corporate social network, performance evaluation, recruiting, etc. 

But there was a minor problem. Sometimes, our employees forgot to scan the fingerprints before leaving the office. And it resulted in an inadequate attendance report - instead of spending 8 hours at work the system has recorded 24 hours. How to avoid such issues? We have the answer.

Camunda workflow example

The answer serves as a great sample case to illustrate the functionality of this approach.

Attendance duration checks workflow

The first service task is connected to the Odoo system, where the process starts. The service task gathers the data about the user, time of the user’s check out, and e-mail. After that, the service checks the hours spent in the office. If the time is longer than 14 hours, the system shortens the attendance time. Then, the task is created in Asana and assigned to the user. The user has some time to explain his behavior. After the user completes the task in Asana by providing the explanation, the HR manager has to approve it. If the user doesn’t provide the explanation, the system saves the shortened time of attendance.

scheme of camunda-odoo-asana connection

The executable diagram then works as a connector or a “person in charge” between the two completely unrelated systems by grabbing the necessary data from one system and making decisions based on these data to control and send commands to the other system.

Changes in BPMN workflows

Executable models are the core benefits of Camunda Modeler. Apart from the ability to introduce changes to visual modeling, Camunda offers editing of technical execution as well. When most of the workflows are hardcoded in the application source code, Camunda BPMN enables using of a universal solution that can be adjusted to the personal needs of its user and the mandatory requirements of the project. Additionally, extra plugins can be implemented into the modeler to customize its appearance, expand BPMN, CMMN and DMN software for modeling, or add new menu variables.

Camunda for business analysis

Camunda Optimize offers additional benefits for the business analysis. Reporting, alerting, and analyzing are as never simple and efficient when using Camunda BPM. Simple and combined reports empower business analysts and project managers with great opportunities for exploring, discovering and getting detailed insights into their data. Be it a single report or a combined one, Camunda creates opportunities for everything you initiate. In addition, the combination of BPMN heatmaps and filters

Roughly speaking, using Camunda BPMN makes possible saving the personnel specialist’s time and effort and delegating some routine tasks to the machines powered by smart technologies.

If you know that you need such optimization for your business or use Camunda for your enterprise, contact Quintagroup. We know how to make your life easier.

Connect with our experts Let's talk