We also use re-routing in our workflows:
* Firstly we use it when we want to split/merge tokens. The idea here is that we can
gradually move in a process instance from a situation where we have:
- a single token with a reference to a collection of domain objects
- as much tokens as we have domain objects.
For example a single report can be made about several domain cases, or the user can opt to
split it and make different reports for domain cases which belong together. The user can
also opt to merge other domain cases into the current token. Splitting actually creates
new subtokens, merging adds domain cases to the current token and can remove other process
instances which were created. When a user decides to merge a re-route can happen to a
certain node in the workflow (is configurable in custom addition in jbpm designer).
Re-routing is done by calling node.leave()
* Secondly we allow the user to reopen task instances under certain circumstances. For
example when having a process with 2 task nodes, making of a report followed by approving
the report, and the user has complete the making of a report task but realized he forgot
something, he can reopen this task. In that case the approving of the report task will be
removed and the token will be re-routed. This is actually your case.
* Thirdly when a user did some changes in a process instance with a start task but wants
to undo those changes (and he triggered the creation of the process instance), this
process instance and task will be removed. This is not re-routing but simply removing
task and processes.
For removing processes and task instances we just make sure they don't appear in the
client task lists any more.
- We created methods to end processinstances, subprocessinstances, the tokens and
taskinstances they contain. Clients won 't notice these any more but they still
remain in the database.
- The circumstances in which a user can undo/reopen etc... are really specific. For
example your implementation will not work if you have subprocesses or if you fork and have
subtokens.
Hope this helps a bit (and is a bit understandeable),
feel free the comment
Olivier.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4114912#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...