An open API service indexing awesome lists of open source software.

https://github.com/k1729p/study06


https://github.com/k1729p/study06

bpmn camunda dmn docker docker-compose drd java springboot yaml zeebe

Last synced: 2 months ago
JSON representation

Awesome Lists containing this project

README

          


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.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 constructor
kp.workers.impl.TriageWorker
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:8088/.

The login to "Camunda Operate": username 'demo', password 'demo'.

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