[rules-users] Resuming the Flow: SESSION_ID, PROCESS_INSTANCE_ID, WORKITEM_ID
Kris Verlaenen
kris.verlaenen at cs.kuleuven.be
Mon Apr 12 10:12:13 EDT 2010
4> 2. Very interesting point about a "shared" session. I somehow
> automatically assumed that a "StateFull" session should probably not share
> it's state with multiple processes. So, I take it, we can have a
> single(ton?) stateful session to execute multiple processes without any
> issues? [I guess that is due to the fact that processes are different
> threads + "the persistence" is actually per process, and not per session?]
Yes
> 3. Since what we are working on is a very thin "framework" layer ( to
> allow "functional" developers not too worry about Drools Flow specifics +
> some high level business-friendly API + ... ), the solution with IDs (
> session, processInstance, workItem ) should be hidden from them, hence
> what
> I've been thinking about is some kind of "AbstractWaitingWorkItemHandler"
> that will be responsible for persisting these three IDs before the actual
> child implementation executeWorkitem() is called.
>
> Persistence here may be approached as explicitly (DAO) creating a
> "WORK_ITEM_ID | SESSION_ID | PROCESS_INSTANCE_ID | BUSINESS_ID" record,
>
> OR (which
> seems a bit more automatic)
>
> Setting these variables as (I guess process instance) flow
> variables, and have Drools Flow Variable Persistence mechanism kick in,
> and
> persist them without any explicit / other "manual crafted help".
I believe the first option (explicitly creating an entry in a table that
maps all these ids) will be easier. The second approach (persisting as
process variables) is also possible but:
- could result in conflicts (variables containing ids being overridden) if
you have multiple tasks
- there's no "clean api" to support automatic retrieval of a process
instance based on variable values
- performance of the first approach will be better I think
> 5. As to documentation...
Documentation is always difficult as it takes a lot of time to write, and as
a developer I usually make assumptions and don't see the issues new users
are faced with. Was thinking about creating a new policy: for every
question I answer on the mailing list or irc, the user that I helped should
try to improve the documentation so that the next user will find it easier
to do the same ;)
Kris
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
More information about the rules-users
mailing list