关于JBPM决策点的问题求救 万分火急,请教高手!!!!
|
zzb888
2007-07-12
我的流程文件如下:
<?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="test"> <start-state name="start"> <transition name="d11" to="decision1"></transition> </start-state> <decision name="decision1"> <handler class="com.test.decision.D1Handler"/> <transition name="t1" to="task1"></transition> <transition name="t2" to="task2"></transition> </decision> <task-node name="task1"> <task name="task1"> <assignment class="com.test.task.T1AssignmentHandler"></assignment> </task> <event type="node-leave"> <action name="act1" class="com.test.action.Act1ActionHandler"></action> </event> <transition name="d21" to="decision2"></transition> </task-node> <task-node name="task2"> <task name="task2"> <assignment class="com.test.task.T2AssignmentHandler"></assignment> </task> <event type="node-leave"> <action name="act2" class="com.test.action.Act2ActionHandler"></action> </event> <transition name="d22" to="decision2"></transition> </task-node> <decision name="decision2"> <handler class="com.test.decision.D2Handler"/> <transition name="e1" to="end"></transition> <transition name="d12" to="decision1"></transition> </decision> <end-state name="end"></end-state> </process-definition> 流程流转 decision1->task1->decision2->decision1->task2->decision2->end 在前几步都没有问题 一直到->task2->decision2->end 完成task2时出现问题我完成task2的方法 如下 protected void t2Decide(boolean isApprove) { System.out.println("T2审批TestProcessTest.t2Decide()="); String userIdT2 = "userApprove2"; List list = ctx.getTaskMgmtSession().findTaskInstances(userIdT2); Iterator it = list.iterator(); while (it.hasNext()) { TaskInstance ti = (TaskInstance) it.next(); if (ti.getName().equals("task2") && (pi.getId() == ti.getTaskMgmtInstance().getProcessInstance().getId())) { if (isApprove) ti.end("d21"); else ti.end("d21"); return; } } } 在ti.end("d21");这一句出错,错误如下: java.lang.NullPointerException: task node does not have leaving transition 'd21' at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:381) at com.sample.TestProcessTest.t2Decide(TestProcessTest.java:105) at com.sample.TestProcessTest.testT1T2(TestProcessTest.java:42) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at junit.framework.TestCase.runTest(TestCase.java:154) at junit.framework.TestCase.runBare(TestCase.java:127) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) 请教各位大侠 谢谢了 万分火急 |
|
|
gsccnu
2007-07-12
ctx.getTaskMgmtSession().findTaskInstances(userIdT2);
中的ctx是否为executeContext? |
|
|
zzb888
2007-07-12
是JbpmContext
|
|
|
zzb888
2007-07-12
终于有回应了
|
|
|
zzb888
2007-07-12
哈哈 自己搞定了
|
|
|
huangguan
2007-07-12
搞定了,怎么也不说说解决方法呢?
唉。。。。 想学习都不行 |
|
|
zzb888
2007-07-13
是低级错误,ti.end("d21")应该是ti.end("d22");
|
|
|
gabriel80
2008-04-21
ctx是否为executeContext?
|

