jbpm 4.1 - execution not waiting for Task Form inputs
makarandk502 Oct 5, 2009 5:06 AMHi,
Simple process definition( with a taskform ) when run using jbPM APIS is not getting stopped at task form node but it completes its execution.
I am trying to test the process using jBPM APIs not console.
Code attached below for reference.
Process should wait for user inputs through a form which is attached to "review" task. I also tried removing line " taskService.completeTask(task.getId());"
from jbpm test case but no sucsess.
Can anybody guide me in this regard ?
Process definition :
<?xml version="1.0" encoding="UTF-8"?> <process name="FormDynamic" xmlns="http://jbpm.org/4.0/jpdl"> <start g="20,20,48,48"> <transition to="review"/> </start> <task assignee="peter" form="org/jbpm/examples/formdynamic/givedetails.ftl" g="96,16,127,52" name="review"> <transition to="wait"/> </task> <state g="268,24,96,31" name="wait"/> </process>
jbpm test case :
package org.jbpm.examples.formdynamic;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.task.Task;
import org.jbpm.test.JbpmTestCase;
public class FormDynamicTest extends JbpmTestCase {
String deploymentId;
protected void setUp() throws Exception {
super.setUp();
deploymentId = repositoryService.createDeployment()
.addResourceFromClasspath("org/jbpm/examples/formdynamic/FormDynamic.jpdl.xml")
.deploy();
}
protected void tearDown() throws Exception {
repositoryService.deleteDeploymentCascade(deploymentId);
super.tearDown();
}
public void testTaskAssignee() {
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("order", "johndoe");
ProcessInstance processInstance = executionService.startProcessInstanceByKey("FormDynamic", variables);
String pid = processInstance.getId();
//ProcessInstance processInstance = executionService.startProcessInstanceByKey("FormDynamic");
List<Task> taskList=taskService.findPersonalTasks("peter");
Task task=taskList.get(0);
taskService.completeTask(task.getId());
System.out.println("List is"+taskList);
// verify that process moved to the next state
processInstance = executionService.findProcessInstanceById(pid);
assertTrue(processInstance.isActive("wait"));
}
}
jbpm test case result :
14:31:37,940 FIN | [BaseJbpmTestCase] === starting testTaskAssignee =============================
14:31:38,231 INF | [Environment] Hibernate 3.3.1.GA
14:31:38,231 INF | [Environment] hibernate.properties not found
14:31:38,231 INF | [Environment] Bytecode provider name : javassist
14:31:38,231 INF | [Environment] using JDK 1.4 java.sql.Timestamp handling
14:31:38,271 INF | [Configuration] configuring from resource: jbpm.hibernate.cfg.xml
14:31:38,271 INF | [Configuration] Configuration resource: jbpm.hibernate.cfg.xml
14:31:38,321 INF | [Configuration] Reading mappings from resource : jbpm.repository.hbm.xml
14:31:38,441 INF | [Configuration] Reading mappings from resource : jbpm.execution.hbm.xml
14:31:38,541 INF | [Configuration] Reading mappings from resource : jbpm.history.hbm.xml
14:31:38,591 INF | [Configuration] Reading mappings from resource : jbpm.task.hbm.xml
14:31:38,621 INF | [Configuration] Reading mappings from resource : jbpm.identity.hbm.xml
14:31:38,631 INF | [Configuration] Configured SessionFactory: null
14:31:38,651 INF | [DriverManagerConnectionProvider] Using Hibernate built-in connection pool (not for production use!)
14:31:38,651 INF | [DriverManagerConnectionProvider] Hibernate connection pool size: 20
14:31:38,651 INF | [DriverManagerConnectionProvider] autocommit mode: false
14:31:38,651 INF | [DriverManagerConnectionProvider] using driver: org.hsqldb.jdbcDriver at URL: jdbc:hsqldb:mem:.
14:31:38,651 INF | [DriverManagerConnectionProvider] connection properties: {user=sa, password=****}
14:31:38,791 INF | [Dialect] Using dialect: org.hibernate.dialect.HSQLDialect
14:31:38,791 INF | [TransactionFactoryFactory] Using default transaction strategy (direct JDBC transactions)
14:31:38,801 INF | [TransactionManagerLookupFactory] No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
14:31:38,801 INF | [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
14:31:38,831 INF | [SessionFactoryImpl] building session factory
14:31:39,322 INF | [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
14:31:39,332 INF | [SchemaExport] Running hbm2ddl schema export
14:31:39,332 INF | [SchemaExport] exporting generated schema to database
14:31:39,362 INF | [SchemaExport] schema export complete
14:31:39,793 FIN | [ProcessDefinitionImpl] creating new execution for process 'FormDynamic'
14:31:39,793 FIN | [DefaultIdGenerator] generated execution id FormDynamic.1
14:31:39,813 FIN | [ScopeInstanceImpl] create variable 'order' in 'execution[FormDynamic.1]' with value 'johndoe'
14:31:39,813 FIN | [ExecuteActivity] executing activity(17872448)
14:31:39,813 FIN | [ExecuteActivity] executing activity(review)
14:31:39,843 FIN | [TaskQueryImpl] select task from org.jbpm.pvm.internal.task.TaskImpl as task where task.assignee = :assignee order by task.priority desc
14:31:39,853 FIN | [TaskQueryImpl] setting parameter assignee: peter
14:31:39,863 FIN | [Signal] signalling activity(review), signalName=completed
14:31:39,863 FIN | [ExecuteActivity] executing activity(wait)
List is[Task(review)]
14:31:39,903 FIN | [DbSessionImpl] deleting history process instance FormDynamic.1
14:31:39,923 FIN | [DbSessionImpl] deleting process instance FormDynamic.1
14:31:39,923 FIN | [DeleteDeploymentCmd] deleting deployment 1
14:31:39,953 FIN | [BaseJbpmTestCase] === ending testTaskAssignee =============================