Method: SpotFlow::Execution#throw_message

Defined in:
lib/spot_flow/execution.rb

#throw_message(message_name, variables: {}) ⇒ Object



147
148
149
150
151
152
153
154
155
156
# File 'lib/spot_flow/execution.rb', line 147

def throw_message(message_name, variables: {})
  waiting_children.each do |child|
    step = child.step
    if step.is_a?(SpotFlow::Bpmn::Event) && step.message_event_definitions.any? { |message_event_definition| message_event_definition.message_name == message_name }
      child.signal(variables)
      break
    end
  end
  context.notify_listener(:message_thrown, execution: self, message_name: message_name)
end