ruby process definitions
(update : this page uses the ‘def make’ trick, for simpler Ruby business process definitions, see this page on OpenWFEru’s website directly)
OpenWFEru is a port of OpenWFE from Java to Ruby. Hence it reads XML process definitions like that one :
<process-definition name="test" revision="0"> <sequence> <set field="amount" value="100CHF" /> <participant ref="b" /> </sequence> </process-definition>
There was a small discussion about defining processes in yaml (which we currently uses for process persistence).
But maybe there’s something even simpler.
We’ve just added a way to define process definitions for OpenWFEru as Ruby classes :
class TestDefinition1 def make process_definition :name => "test", :revision => "0" do sequence do set :variable => "amount", :value => "100CHF" participant :ref => "a" end end end end
* Ruby IDEs (there are some maturing) can be used to edit the processes.
* For some people (especially developers), it’s more readable than XML process definitions.
* A Ruby process definition class is more like a ‘process definition generator’, it could generate a process definition each time different (depending on certain factors that can be embedded within the definition class)
This implementation is not yet fully ready, for instance, there are collisions between OpenWFE expressions like “if” and Ruby’s own “if”, but there are solutions.