making workflows work for you
TRANSCRIPT
Jun 2001
Zope/Plone Workflow Relationship
Feb 2001
Products.CMFCore.WorkflowCore
Dec 2004 May 2006
Infrastructure for workflow development
Core engine capability for Plone created
Products.DCWorkflow
Implementation of a CMF workflow
Filled Out Functionality
zope.wfmc
Workflow Engine based on WfMC XPDL Attempt to standardize with development communities
hurry.workflow
Simple Zope 3 workflow engine
Modelled after CMFWorkflow
2013 zope.wfmc is resurrected!
20132011
State-Based Workflows
Examples: Products.DCWorkflow and hurry.workflow
State is stored on a target
Transitions between states are defined
Transitions between states are defined (including permissions, etc.)
State Machine ("Workflow Engine")
- Manages states and transitions
- Manages progression of states
State-Based Workflows:
One process manages single target
Only one state can be maintained at a time
The Reality
Problems
.NET and Java world have adopted this design pattern
Are weto blame?
Activity-Based Workflows
Examples: zope.wfmc
Business Process Model and Notation (BPMN) is a graphical representation
XPDL is an XML-based serialization format for BPMN
Editor: Java Workflow Editor (JaWE)
- Developed by the Workflow Management Coalition (WfMC)
- BPMN 1.0 did not specify a serialization format.
- XPDL is obsolete with BPMN 2.0 which defines an XML serialization format
Challenges
Workflow is too high-level to be machine processable
Engine provides little (trivial) value
Only benefit is graphical presentation and easy modification
- But publication workflow is too simple for that to matter.
Realistic Publication Workflow
Demo
Workflow Engine Requirements
Security
Machine executable
Full User Interface generation(and other IO)- But publication workflow is too simple
for that to matter.
Back and Forth
Discarding with clean up
Exception Handling
Migrations
- Input Data Retention
zope.wfmc enhancements
Parameter InitialValue Support
OTHERWISE Condition
Script Tag Support
Arguments are dictionaries, not lists! (Jim!!!)
Deadlines Support
XPDL 2.1 Support
Extended Attributes Support
Participant Types / Candidates Support
Subflow (sync & async) & TaskScript Support
DataField Support
Small activity label position (Start, Finish, Gates)
Lots of small bug fixes
JaWE Enhancements
Script Support
External Editor Support
Discarding● Requires reversable applications/workitems (operations)
● Process must keep track of finished activities
● Deal with irreversible actions
﹣ Make workflow non-discardable
﹣ May not be reverted on discard
Back & Forth● Requires Revert of activities in correct order
● Restore workflow state properly
● Remember inputs (not fully solved yet)
● It's a very hard problem! (6mm effort)
Wizard● Wizard entries specified via Extended Attribute
● Needs to be generated from workflow definition itself
● No state available
﹣ Relies on default transitions and lane assignments
● Also, a very hard problem. (3mm effort)
Simulations
● Automatic Testing of Workflows
﹣ Coverage Included
● Strategy: Provide activity completion
instructions
﹣ Implemented on API and UI level!
● Savepoints
● Debugging
● Screenshots
● Parameterized Simulations allow for complex
sampledata setups (onions)
Quality Assurance● Executes each simulation on multiple
browsers
﹣ Provides PDFs with screenshots for each
browser
● Visualizes workflow paths and coverage
● Shows all output artifacts (documents,
changed data, etc.)
● Linter: External links, spell check, data
integrity, etc.
Future● Shoobx Chronicles (Support/Help)
﹣ Convert onion instructions to readable documents
● Simulation video recordings (Support/Help)
● Support Power Users to create Workflows (Process Editor
UX)
● Personal: Bike across the US :-)
Links● Shoobx zope.wfmc: https://github.com/Shoobx/zope.wfmc
● Java Workflow Editor: https://sourceforge.net/projects/jawe/
● BPMN: http://www.bpmn.org/
● WfMC/XPDL: http://www.wfmc.org/
Help us Improve
Please use the survey app to send us feedback.
http://ploneconf.sixfeetup.com