Skip to content

k1729p/Study06

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Study06 README Contents

Research the Camunda Platform

The sections of this project:

  1. Docker Build
  2. Models
  3. SpringBoot Application with Spring Zeebe Client
  4. Workflow

Java source code. Packages:

application sources :  kp
test sources :  kp.decisions


Java API Documentation ●  Java Test API Documentation


❶ Docker Build

Action:

1. With batch file "01 Docker create Camunda.bat" create Camunda in Docker.

1.1. The Camunda in Docker is created with Docker configuration docker-compose-core.yaml.


The screenshot of the created Docker containers.

Back to the top of the page


❷ Models

Action:

1. In "Camunda Modeler" open
business-process-diagram-01.bpmn and decision-requirements-diagram-01.dmn
2. In "Camunda Modeler" deploy business-process-diagram-01.bpmn to local Docker 'http://localhost:26500'.

2.1. The business process model and the decision model were created with Camunda Modeler. This modeler was downloaded and locally installed. The screenshot of the deployment dialog in "Camunda Modeler".

2.2. The business process diagram file business-process-diagram-01.bpmn.

The business process diagram in "Camunda Modeler".

2.3. The decision requirements diagram file decision-requirements-diagram-01.dmn.
From 'impact' and 'urgency' it is computed 'priority'.


The decision requirements diagram in "Camunda Modeler".

2.4. Priority Matrix

impact
highmediumlow
urgency high 1008040
urgency medium 705020
urgency low 30100

2.5. Condition Matrix

Flow From Service TaskFlow To Service Task Flow TypeCondition Expression
TriageHigh Priority Sequence Flowpriority >= 80
TriageMedium Priority Sequence Flowpriority > 20 and priority < 80
TriageLow Priority Default Flow

Back to the top of the page


❸ SpringBoot Application with Spring Zeebe Client

Action:

1. With batch file "02 MVN clean install run.bat" run the SpringBoot application with the enabled Zeebe client.

Back to the top of the page


❹ Workflow

Action:

1. Start workflow with batch file "03 Zeebe start instances.bat".

4.1. The workflow results from the Zeebe CLI client.

Console log from the execution of the batch file "03 Zeebe start instances.bat".

4.2. The workflow results from the SpringBoot application.

Console log from the SpringBoot application.

4.3. The Zeebe workers are the components that subscribe to Zeebe to execute available jobs:

4.4. Assigning the workers (SpringBoot components) to the service tasks (from the business process diagram).

Service task "Triage" has the task definition type "service-triage".
This type is set in method kp.workers.impl.TriageWorker::handle on 'JobWorker' annotation.
In method kp.workers.impl.TriageWorker::initialize is created 'DmnDecision' from parsed decision requirements diagram file decision-requirements-diagram-01.dmn.
This 'DmnDecision' is evaluated in 'kp.workers.impl.TriageWorker::handle' method.

Service task "High Priority" has the task definition type "service-priority-high".
This type is set in method kp.workers.impl.HighPriorityWorker::handle on 'JobWorker' annotation.

Service task "Medium Priority" has the task definition type "service-priority-medium".
This type is set in method kp.workers.impl.MediumPriorityWorker::handle on 'JobWorker' annotation.

Service task "Low Priority" has the task definition type "service-priority-low".
This type is set in method kp.workers.impl.LowPriorityWorker::handle on 'JobWorker' annotation.

Service task "Approve" has the task definition type "service-approve".
This type is set in method kp.workers.impl.ApproveWorker::handle on 'JobWorker' annotation.
This worker sets unconditionally the value "approved".

4.5. The workflow results in "Camunda Operate" on Docker http://localhost:8081/.
The screenshot of all three process instances
The screenshot of the process instance triaged to high priority
The screenshot of the process instance triaged to medium priority
The screenshot of the process instance triaged to low priority

Back to the top of the page


Process Optimization

There is a possibility to install "Camunda Optimize" with an alternative docker configuration docker-compose.yaml. The screenshot of the optimization heat map for the "Defect's Triage Process".

Dictionary

Camunda Platformworkflow and decision automation platform
Camundaprocess orchestrator
Zeebeworkflow engine for microservices orchestration
BPMNBusiness Process Model and Notation
DMNDecision Model and Notation
DRDDecision Requirements Diagram
COTSCommercial Off-The-Shelf Software
RPARobotic Process Automation

Back to the top of the page