| Class | OpenWFE::CancelProcessExpression |
| In: |
lib/openwfe/expressions/fe_cancel.rb
|
| Parent: | FlowExpression |
This expression cancels the current process instance. Use with care.
<sequence>
<participant ref="before" />
<cancel-process />
<participant ref="after" />
</sequence>
the message "after" will never get printed.
Use rather in scenarii like that one :
class TestDefinition1 < ProcessDefinition
def make
process_definition :name => "25_cancel", :revision => "1" do
sequence do
participant "customer"
_cancel_process :if => "${f:no_thanks} == true"
concurrence do
participant "accounting"
participant "logistics"
end
end
end
end
end
Note that the expression accepts an "if" attribute.
apply / reply
# File lib/openwfe/expressions/fe_cancel.rb, line 86
86: def apply (workitem)
87:
88: conditional = eval_condition(:if, workitem, :unless)
89: #
90: # for example : <cancel-process if="${approved} == false"/>
91:
92: return reply_to_parent(workitem) \
93: if conditional == false
94:
95: #
96: # else, do cancel the process
97:
98: get_expression_pool.cancel_process self
99:
100: # no need to reply to parent
101: end