Hey Drools Crew,
Business process can be designed to have more the one workitem ( human
task ) with the same name. So two questions here:
1. Confirming: "When registering handlers all of the workitems with
the same name will use the same ( registered to the name ) handler?"
2. What is the way for the client to identify the workitem in this
case? Let's say there is a "truly" parallel definition:
/---> workitem1 ( async send to external
system, waiting for completion )
split ----> workitem2 ( async send to external
system, waiting for completion )
\---> workitem3 ( async send to external
system, waiting for completion )
If workitem1 and workitem3 have the same name, and the response
came back for workitem3, how do the client know to "complete" workitem3 vs.
workitem1?
Workitem IDs are completely workflow / drools-flow related, and
when ( let's say ) approval has returned from an external system, a client
should just tell one of the business workflow services to:
completeApprovalFor( ExternalSystem.SuchAndSuch )
workflow service will have a handler to a workflowInstance
{ businessId, sessionId, processInstanceId, List<Work items in progress>,
etc.. }, so if it is a single workitem the process is waiting for, there is
no problem, but if there are more workitems that make the process to wait +
they may have the same name, it creates a problem.
One solution (for the above specific case) would be to link external
systems with work item ids, so instead of List< Workitems in progress >, it
would be Map< ExternalSystem, Workitem >. But it just looks to complex and
specific...
Anything the framework can help with?
Thank you,
/Anatoly
--
View this message in context:
http://drools-java-rules-engine.46999.n3.nabble.com/Drools-Flow-Workitems...
Sent from the Drools - User mailing list archive at
Nabble.com.