Class | OpenWFE::SetValueExpression |
In: |
lib/openwfe/expressions/fe_set.rb
|
Parent: | FlowExpression |
The ‘set’ expression is used to set the value of a (process) variable or a (workitem) field.
<set field="price" value="CHF 12.00" /> <set variable="/stage" value="3" /> <set variable="/stage" field-value="f_stage" /> <set field="stamp" value="${r:Time.now.to_i}" />
(Notice the usage of the dollar notation in the last exemple).
‘set’ expressions may be placed outside of a process-definition body, they will be evaluated sequentially before the body gets applied (executed).
Shorter attributes are OK :
<set f="price" val="CHF 12.00" /> <set v="/stage" val="3" /> <set v="/stage" field-val="f_stage" /> <set f="stamp" val="${r:Time.now.to_i}" /> set :f => "price", :val => "USD 12.50" set :v => "toto", :val => "elvis"
In case you need the value not to be evaluated if it contains dollar expressions, you can do
set :v => "v0", :val => "my ${template} thing", :escape => true
to prevent evaluation (i.e. to escape).
# File lib/openwfe/expressions/fe_set.rb, line 88 88: def reply (workitem) 89: 90: vkey = lookup_variable_attribute(workitem) 91: fkey = lookup_field_attribute(workitem) 92: 93: value = workitem.attributes[FIELD_RESULT] 94: 95: #puts "value is '#{value}'" 96: 97: if vkey 98: set_variable vkey, value 99: elsif fkey 100: workitem.set_attribute fkey, value 101: else 102: raise "'variable' or 'field' attribute missing from 'set' expression" 103: end 104: 105: reply_to_parent(workitem) 106: end