[jboss-user] [jBPM] - Re: Combining human and automated tasks
Tommer Wizansky
do-not-reply at jboss.com
Tue Dec 13 02:02:46 EST 2011
Tommer Wizansky [http://community.jboss.org/people/twizansk] created the discussion
"Re: Combining human and automated tasks"
To view the discussion, visit: http://community.jboss.org/message/641184#641184
--------------------------------------------------------------
Yes! That works! Registering the task handler when invoking the human task client was the part I was missing. Thank you.
As it turns out, I don't even need to load the original session. I can register the task handler with a new stateful session and it still works:
// Create a new session
KnowledgeBase kbase = readKnowledgeBase(CREATE_INSTALLER_PROCESS);
Environment env = KnowledgeBaseFactory.newEnvironment();
env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf);
env.set(EnvironmentName.TRANSACTION_MANAGER, transactionManager);
StatefulKnowledgeSession ksession = JPAKnowledgeService
.newStatefulKnowledgeSession(kbase, null, env);
// Register a handler
CommandBasedWSHumanTaskHandler handler = new CommandBasedWSHumanTaskHandler(ksession);
handler.connect();
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", handler);
// Create a human task client
TaskClient client = new TaskClient(new MinaTaskClientConnector(
"MinaConnector", new MinaTaskClientHandler(
SystemEventListenerFactory.getSystemEventListener())));
client.connect("127.0.0.1", 9123);
Thread.sleep(1000);
BlockingTaskSummaryResponseHandler taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
client.getTasksAssignedAsPotentialOwner("krisv", "en-UK",
taskSummaryResponseHandler);
List<TaskSummary> tasks = taskSummaryResponseHandler.getResults();
TaskSummary taskSummary = tasks.get(0);
long taskId = taskSummary.getId();
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.start(taskId, "krisv", responseHandler);
// Complete the task
long taskId = taskSummary.getId();
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.start(taskId, "krisv", responseHandler);
client.complete(taskId, "krisv", null, responseHandler);
I'd like to understand the details. When is it necessary to load an existing session and when can you use a new one? But, in the meantime, it works.
Thanks again.
Tommer
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/641184#641184]
Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20111213/a0c0a48d/attachment-0001.html
More information about the jboss-user
mailing list