# File lib/ruote/exp/flowexpression.rb, line 722
    def trigger (on, workitem)

      hon = h[on]

      t = hon.is_a?(String) ? [ hon, {}, [] ] : hon

      if on == 'on_error'

        if hon == 'redo'

          t = tree

        elsif hon == 'undo'

          h.state = 'failed'
          reply_to_parent(workitem)
          return
        end

      elsif on == 'on_timeout'

        t = tree if hon == 'redo'
      end

      supplant_with(t, 'trigger' => on)
    end