Method: ProcessEngine::ProcessTask#complete

Defined in:
app/models/process_engine/process_task.rb

#complete(options) ⇒ Object

available options :finisher, :data



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'app/models/process_engine/process_task.rb', line 29

def complete(options)
  injected_data = ProcessEngine::NodeDataInjection.node_options_data(process_instance.process_definition.slug, state, self)
  process_instance.move_to_next_state(state, injected_data)

  opt = { finisher: options[:finisher], status: :finished }
  opt[:data] = options[:data] if options[:data].present?

  update!(opt)

  # enable service hooks
  node_ext = process_instance.process_definition.schema.node(state).node_extension
  ProcessEngine::Listener::Base.execute(process_instance, node_ext.common_execution_listeners, 'end')
  ProcessEngine::Listener::Base.execute(process_instance, node_ext.common_task_listeners, 'complete')
end