Class: SpotFlow::Bpmn::CallActivity

Inherits:
Activity show all
Defined in:
lib/spot_flow/bpmn/process.rb

Instance Attribute Summary collapse

Attributes inherited from Activity

#attachments

Attributes inherited from Step

#default, #default_ref, #incoming, #outgoing

Attributes inherited from Element

#extension_elements, #id, #name

Instance Method Summary collapse

Methods inherited from Activity

#initialize

Methods inherited from Step

#converging?, #diverging?, #initialize, #input_mappings, #leave, #outgoing_flows, #output_mappings

Methods inherited from Element

#initialize, #inspect

Constructor Details

This class inherits a constructor from SpotFlow::Bpmn::Activity

Instance Attribute Details

#process_idObject (readonly)

Returns the value of attribute process_id.



163
164
165
# File 'lib/spot_flow/bpmn/process.rb', line 163

def process_id
  @process_id
end

Instance Method Details

#execute(execution) ⇒ Object



165
166
167
168
169
170
171
172
173
174
175
176
# File 'lib/spot_flow/bpmn/process.rb', line 165

def execute(execution)
  if extension_elements&.called_element&.process_id&.start_with?("=")
    @process_id = SpotFeel.evaluate(extension_elements&.called_element&.process_id, variables: execution.variables)
  else
    @process_id = extension_elements&.called_element&.process_id
  end

  execution.wait

  process = execution.context.process_by_id(@process_id) if @process_id
  execution.execute_step(process.default_start_event) if process
end