subid for every expression

0 views
Skip to first unread message

John Mettraux

unread,
Dec 15, 2010, 3:59:52 AM12/15/10
to ruote
Hi List,

I was investigating a process definition with a customer and I came across a pattern than can be reduced to an extreme of :

---8<---
sequence :tag => 'x' do
alpha :forget => true
_redo 'x'
end
--->8---

It's not very practical, it's a kind of workitem machine gun but it could appear in other variants like

---8<---
cursor do
concurrence :count => 1, :remaining => 'forget' do
alpha
bravo
end
rewind :if => '${customer_not_happy}'
end
--->8---

where alpha or bravo would get forgotten and the process could be rewound.

This pattern is not possible with ruote up to 2.1.11 included.

I have just committed a set of changes

https://github.com/jmettraux/ruote/compare/737eecf8f1...dfe0f17426

that resolve this issue.

Note that I had a half baked solution for it, but only when it involved a cursor

https://github.com/jmettraux/ruote/commit/5a2b69a7d28c520491574fa5ab005971c9aa5a07

this solution did not work for the first fragement of process listed in this email.

This change shouldn't affect you (other than it allows for the described pattern to be modelled). There is only one visible (but backward compatible) change :

every expression now has a "subid" (ex-"sub_wfid").

A flow expression id will from now on look like (in its short string form) :

0_0_0!c4a135ddda449957598209a415d55d4f!20101215-bohirozede

expid!subid!wfid

Previously, the subid slot was occupied by the sub_wfid, which was "" for a root process and some string for a subprocess.

This switch from optional sub_wfid to mandatory subid allows for concurrent subprocess trees like the pattern mentioned above.

The transition is backward compatible, there should be no adaption work needed from you guys. Apart from maybe stopping using "sub_wfid" and switching to "subid" if you have codes that deals with that.

Just don't get too surprised by the new subids that will appear.

If there are any questions (or things to fix), please tell me.


Best regards,

--
John Mettraux - http://jmettraux.wordpress.com

Reply all
Reply to author
Forward
0 new messages