Hi all,
I'm working on a proof of concept, where a human proceeds a parent
"fill_form" participant with a special field set to "true". In this
case, a new child "fill_form" is fired in parallel, allowing our human
to complete both forms (parent and child) at the same time.
The catch here, is that the process can only be finished, once the
parent and all its children forms are filled.
Here's my sketch:
Please observe that the alpha subprocess that contains "fill_form" is
actually a simplification of our internal form-loading logic.
Also, there's no need for merging the data, so it seems "concurrence"
is not needed here.
---8<---
Ruote.process_definition :name => 'multiform', :revision => '0.1' do
set 'v:/child' => 0
cursor do
subprocess :ref => 'alpha', :form => 'parent'
_if :t=> '${f:_launch} == true' do
sequence do
unset :f => '_launch'
inc :var => '/child'
sequence :forget => true do
subprocess :ref => 'alpha', :form => 'child'
dec :var => '/child'
end
end
end
_break :if => '${v:/child} == 0'
rewind
end
define 'alpha' do
fill_form :form => '${v:form}', :children => '${v:/child}'
end
end
--->8---
When new children forms are launched, the "child" process variable is
incremented and multiple workitems are handed to the user. Just as
expected.
The problem seems to be, that the variable is never decremented, so
the cursor is never broken.
Is this an expected behaviour with :forget and process variables? Am I
misunderstanding its scope? IMHO, process vars should always be
accesible. Or maybe I'm just taking the wrong approach to this
pattern?
Many thanks,
//nando
--
you received this message because you are subscribed to the "ruote users" group.
to post : send email to [email protected]
to unsubscribe : send email to [email protected]
more options : http://groups.google.com/group/openwferu-users?hl=en