This page presents Wodel examples for BPMN. The corresponding metamodel is available here: Simple BPMN Ecore.
These examples implement the high-level change operations for BPMN described in the referenced work.
Inserts an activity [bpmn]:
s = select one Sequence where {^to not typed EndEv}
f = select one FlowObject in s->^to
a = create Activity with {name = 'newActivity'}
modify s with {^to = a}
create Sequence with {name = 'newSeq', ^from = a, ^to = f}
Removes an activity [bpmn]:
a = select one Activity
s0 = select one Sequence where {^to = a and ^from <> null}
s1 = select one Sequence where {^from = a and ^to <> null}
o = select one FlowObject where {self = s1->^to}
s2 = select one Sequence where {^from = o and ^to <> null}
modify s0 with {^to = o}
modify s1 with {^from = o, ^to = a}
modify s2 with {^from = a}
Moves an activity [bpmn]:
a = select one Activity
s0 = select one Sequence where {^to = a and ^from <> null}
s1 = select one Sequence where {^from = a and ^to <> null}
o = select one FlowObject where {self = s1->^to}
s2 = select one Sequence where {^from = o and ^to <> null}
modify s0 with {^to = o}
modify s1 with {^from = o, ^to = a}
modify s2 with {^from = a}
Replaces an activity [bpmn]:
a0 = select one Activity
src0 = select one Sequence where {^to = a0}
tar0 = select one Sequence where {^from = a0}
a1 = select one Activity where {self <> a0}
src1 = select one Sequence where {^to = a1}
tar1 = select one Sequence where {^from = a1}
modify src0 with {^to = a1}
modify tar0 with {^from = a1}
modify src1 with {^to = a0}
modify tar1 with {^from = a0}
Changes an activity to a different activity type [bpmn]:
retype one [StartEv, IntermediateEv, EndEv] as [Activity]
Changes a gateway to a different gateway type [bpmn]:
retype one [AND, OR, XOR] as [AND, OR, XOR]
Download all the Wodel examples for BPMN here.
BPMN samples (ZIP)
BPMN samples (TAR.GZ)
Acknowledgements
This work was funded by the Spanish Ministry of Science through project “MASSIVE” (RTI2018-095255-B-I00), and by the R&D programme of the Madrid Region through project “FORTE” (P2018/TCS-4314).
