One of the simplest participants. Simply passes a workitem to a block
of ruby code.

              engine.register_participant :alpha do |workitem|
                workitem.fields['time'] =

This participant implicitely replies to the engine when the block execution
is over.

You can pass the flow_expression (participant expression) as well.

              engine.register_participant :alpha do |workitem, flow_exp|
                workitem.fields['amount'] = flow_exp.lookup_variable('amount')


By default, this participant (like most other participants) is executed
in its own thread.


As it includes Ruote::LocalParticipant, the block partitcipant has
access to:

  • #context: the ruote context
  • #workitem: the current workitem (usually passed as arg to the block)
  • #fei: the current flow expression id
  • #fexp: the current flow expression
  • #flavour: only used in #on_cancel (nil or ‘kill’)
  • #lookup_variable(key): looks up a variable…