xpdl for fun
I took some time to implement a converter from XPDL to OpenWFEru’s process definition language.
Seems like a certain number of graphical process design tools do serialize their BPMN diagrams to XPDL. Pat has been bothering me about such a serialization for while.
The challenge is about turning a states+transitions set into the “block structured” format OpenWFEru (Ruote) uses.
I already took a look at that in a former post, the trouble ticket. The transformation (from BPMN to OpenWFEru) was manual. The resulting process definition used a “macro” : a subprocess named “step” that handled the XOR outgoing transitions on the activities of the original process.
The “step” is back as a Ruote expression (like ‘sequence’, ‘concurrence’, ‘if’ or ‘participant’), part of the upcoming OpenWFEru 0.9.18. Ruote-transition [ab]uses this new expression a lot.
I call ruote-transition a “compiler”, turning from one language to another, “translator” would perhaps be a better term.
It was lots of fun to implement that (it’s not over). But I still favour OpenWFEru’s process definition language over anything else, I like its conciseness.
Don’t ask me for “round-tripping”.