- rename FindProcessInstanceById() -> FindProcessInstance()
- WiP serialization and deserialization ... please don't try yet ... it's not working in this beta3 version
- make explicit engine name optional (#73 BREAKING CHANGE)
- use global ID generator internally, to avoid ID collisions between multiple engine instances
- refactor
activity.LifecylceState
(BREAKING CHANGE) - refactor
process_instance.State
(BREAKING CHANGE)- new return type for e.g.
instance.GetState()
--is-->ActivityState
(BREAKING CHANGE)
- new return type for e.g.
- new ExpressionEvaluationError
- improved errors for intermediate timer catch events (#38, #69)
- improved error handling for intermediate message catch events
- variable mapping and expression evaluation errors
- return proper BpmnEngineError, at creation time (BREAKING CHANGE)
- new support intermediate link throw & catch element (#141)
- new
CreateInstanceById()
andCreateAndRunInstanceById()
functions to ease handling with multiple versions - use Go Getter idiomatic (BREAKING CHANGE) (#144)
Bpmn Engines are anonymous by default now, and shall be initialized by calling .New()
Example: replace bpmn_engine.New("name")
with bpmn_engine.New()
Note: you might use .NewWithName("a name")
to assign different names for each engine instance.
This might help in scenarios, where you e.g. assign one engine instance to a thread.
Both are consolidated towards bpmn_engine.ActivityState
, which you can simply use in the same manner.
For some interfaces, the prior code looked like e.g. engine.GetName()
.
According to https://go.dev/doc/effective_go#Getters, this getter should better be written as engine.Name()
.
Say "Hello!" to the new mascot
- introduce local variable scope for task handlers and do correct variable mapping on successful completion (#48 and #55)
- support handlers being registered for (task definition) types (#58 BREAKING CHANGE)
- support handlers for user tasks being registered for assignee or candidate groups (#59)
- improve documentation (#45)
- replace
AddTaskHandler("id", handlerFunc)
withNewTaskHandler.Id("id").Handler(handlerFunc)
- support input/output for service task and user task (#2)
- breaking change:
ActivatedJob
type is no more using fields, but only function interface
- breaking change:
- support for user tasks (BPMN) (#32)
- document how to use timers (#37)
- support adding variables along with publishing messages (#41)
- breaking change in method signature:
PublishEventForInstance(processInstanceKey int64, messageName string, variables map[string]interface{})
now requires a variable parameter
- breaking change in method signature:
- fix two issues with not finding/handling the correct messages (#31)