# File lib/ruote/part/engine_participant.rb, line 126 def consume(workitem) wi = workitem.to_h fexp = Ruote::Exp::FlowExpression.fetch(@context, wi['fei']) params = wi['fields'].delete('params') forget = (fexp.attribute(:forget).to_s == 'true') @storage.put_msg( 'launch', 'wfid' => wi['fei']['wfid'], 'parent_id' => forget ? nil : wi['fei'], 'tree' => determine_tree(fexp, params), 'workitem' => wi, 'variables' => fexp.compile_variables) fexp.unpersist if forget # # special behaviour here in case of :forget => true : # parent_id of remote expression is set to nil and local expression # is unpersisted immediately end