[jboss-user] [jBPM] - Re: JBPM 5.4.0-Final: Human Task variable mapping is not working
vchmakov
do-not-reply at jboss.com
Wed Jan 9 11:47:25 EST 2013
vchmakov [https://community.jboss.org/people/vchmakov] created the discussion
"Re: JBPM 5.4.0-Final: Human Task variable mapping is not working"
To view the discussion, visit: https://community.jboss.org/message/789784#789784
--------------------------------------------------------------
Hi Maciej,
That is exactly what is going on. However, as far as I understand and according to the examples coming with the JBPM deployment:
1) The instance of the LocalHTWorkItemHandler is attached to the session and is purposed for the HT engine’s event handling. As far as I can see it does not possess the persistence context but rather shares it with the Drools’s one when rule’s RHS starts the process and the process reaches the wait/persisted state.
*private* *void* registerHumanTaskHandler(StatefulKnowledgeSession session) {
*if* (taskServer != *null*) {
+logger+.info("Registering Human Task Handler...");
LocalHTWorkItemHandler humanTaskHandler = *new* LocalHTWorkItemHandler(createTaskService(), session);
humanTaskHandler.setLocal(*true*);
humanTaskHandler.connect();
session.getWorkItemManager().registerWorkItemHandler("Human Task", humanTaskHandler);
+logger+.info("OK.");
}
}
2) When user completes a task from the Web form the event is delivered to the engine. In my case it is a Message Queue event which I process in MDB. Then I create a fresh instance of the LocalTaskService and complete the task. According to the examples provided with the JBPM installation and the source code of the LocalTaskService it is a recommended way to avoid reusing of the Entity Manager.
*private* *void* registerHumanTaskHandler(StatefulKnowledgeSession session) {
*if* (taskServer != *null*) {
+logger+.info("Registering Human Task Handler...");
LocalHTWorkItemHandler humanTaskHandler = *new* LocalHTWorkItemHandler(createTaskService(), session);
humanTaskHandler.setLocal(*true*);
humanTaskHandler.connect();
session.getWorkItemManager().registerWorkItemHandler("Human Task", humanTaskHandler);
+logger+.info("OK.");
}
}
*private* *void* createTaskServer() *throws* Exception {
+logger+.info("Creating Task Server...");
*if* (persistenceManager != *null*) {
taskServer = *new* TaskService(persistenceManager.getTaskEntityManagerFactory(),
SystemEventListenerFactory.+getSystemEventListener+());
}
*else* {
*throw* *new* IllegalArgumentException("createTaskServer() - Persistence Manager must be created for this operation");
}
+logger+.info("OK.");
}
*private* org.jbpm.task.TaskService createTaskService() {
+logger+.debug("Creating Task Service...");
*if* (taskServer != *null*) {
*return* *new* LocalTaskService(taskServer);
}
*else* {
*throw* *new* IllegalArgumentException("Task Server is not yet created");
}
}
*private* *void* processCompleteTaskCommand(BvCompleteTaskCommand command) *throws* Exception {
+logger+.trace("Processing TaskCompleteCommand()...");
*final* String userId = command.getUserId();
*final* String wf_userId = +WORKFLOW_USERID+;
logger_processes.debug("Completing task id={}, userId={}", command.getTaskId(), userId);
org.jbpm.task.TaskService taskService = createTaskService();
taskService.start(command.getTaskId(), wf_userId);
Object data = command.getData();
*if* (data != *null*) {
taskService.completeWithResults(command.getTaskId(), wf_userId, data);
}
*else* {
logger_processes.debug("**** data is NULL");
taskService.complete(command.getTaskId(), wf_userId, *null*);
}
logger_processes.debug(" - task id={}, userId={} completed.", command.getTaskId(), userId);
+logger+.trace("Processing TaskCompleteCommand(). OK.");
}
It seems to me that I’m misunderstanding something…
Thanks,
Vladimir
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/789784#789784]
Start a new discussion in jBPM at Community
[https://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/20130109/9521a787/attachment-0001.html
More information about the jboss-user
mailing list