Embedding BPMN-driven
business processes into Plone
Plone Conference 2022
Asko Soukka
14.10.2022
7 datakurre
Author
Asko Soukka
Software architect at University of Jyväskylä Digital Services
Background
• Python developer since 2002
• Plone developer since 2004
• Full-time professional since 2008
• BPMN based projects since 2020
1
Demo
1
7 datakurre
Plone & Products.DCWorkflow
Plone workflows may not be enough
• Managing single target may not be enough
• Managing single target may be too much:
Document states may not match process tasks
• Long-running processes require versioning
• ...
• Too much workflows, roles, forms and
content rules make Plone site a silly place
See also: Making Workflows Work for You,
Stephan Richter, Plone Conference 2016
2
BPMN & Camunda Platform 7
BPMN 2.0
3
BPMN & Camunda Platform 7
BPMN 2.0
4
BPMN & Camunda Platform 7
BPMN 2.0
5
BPMN & Camunda Platform 7
BPMN 2.0
6
BPMN & Camunda Platform 7
BPMN 2.0
7
BPMN & Camunda Platform 7
BPMN 2.0
8
BPMN & Camunda Platform 7
DMN 1.2
9
BPMN & Camunda Platform 7
DMN 1.2
10
BPMN & Camunda Platform 7
DMN 1.2
11
BPMN & Camunda Platform 7
DMN 1.2
12
BPMN & Camunda Platform 7
Camunda Forms
13
7 datakurre
collective.bpmproxy
Features
• Content type for publishing a process
• Content rule for broadcasting BPMN signals
• Traversable view for content related processes
• String interpolation and vocabulary support
• Tasklist portlet for displaying visible tasks
• Attachment containers for process instances
• Authorization by Plone users and groups
14
7 datakurre
collective.bpmproxy
Use cases
• Complex Form wizards (with simple forms)
• Form-driven processes with Plone IAM
• Extending Plone content workflows
• Customize processes with Plone hierarchy
• ...
• Extending Plone with microservices
15
Demo
15
7 datakurre
Rainbows, unicorns, and...
Drawbacks
• I18N support missing by design
• Doubles resource use (Java)
• Triples deployment complexity
• Java, Micronaut, BPMN, DMN, Camunda Forms...
• @bpmn-io/form-js is still a toy
• Camunda Platform 7 vs. 8
16
https://github.com/datakurre/collective.bpmproxy
16

Embedding BPMN-driven business processes into Plone