def do_raw_dispatch(participant, msg)

      workitem = Ruote::Workitem.new(msg['workitem'])

      workitem.fields['dispatched_at'] = Ruote.now_to_utc_s

      Ruote.participant_send(
        participant, [ :on_workitem, :consume ], 'workitem' => workitem)

      @context.storage.put_msg(
        'dispatched',
        'fei' => msg['fei'],
        'participant_name' => workitem.participant_name,
        'workitem' => msg['workitem'])
          # once the consume is done, asynchronously flag the
          # participant expression as 'dispatched'
    end
def do_raw_dispatch(participant, msg)

      workitem = Ruote::Workitem.new(msg['workitem'])

      workitem.fields['dispatched_at'] = Ruote.now_to_utc_s

      Ruote.participant_send(
        participant, [ :on_workitem, :consume ], 'workitem' => workitem)

      @context.storage.put_msg(
        'dispatched',
        'fei' => msg['fei'],
        'participant_name' => workitem.participant_name,
        'workitem' => msg['workitem'])
          # once the consume is done, asynchronously flag the
          # participant expression as 'dispatched'
    end
The actual dispatching (call to Participant#consume or #on_workitem).

 No error rescuing so it might be interesting for some extension
 classes (like in ruote-swf).