def reply(workitem)
where = attribute(:where, workitem)
return if where && Condition.false?(where)
wi = h.applied_workitem.dup
wi['fields'] =
case h.amerge
when 'ignore', 'drop' then wi['fields']
when 'incoming' then wi['fields'].merge(workitem['fields'])
when 'awaiting' then workitem['fields'].merge(wi['fields'])
else workitem['fields']
end
if tree_children.any?
i, t = if tree_children.size == 1
[ "#{h.fei['expid']}_0", tree_children[0] ]
else
[ h.fei['expid'], [ 'sequence', {}, tree_children ] ]
end
launch_sub(i, t, :forget => true, :workitem => wi)
else
reply_to_parent(wi)
end
end