按照jbpm4.0自带的例子,给一个任务分配执行人,必须在流程实例开始的时候,就以参数的形式代入。
如下所示:
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("order", new Order("johndoe"));
ProcessInstance processInstance = executionService.startProcessInstanceByKey("TaskAssignee", variables);其中的order变量,是在流程实例开始时就去调用new Order("johndoe")方法将参数代入的。我想请问,如何才能在流程执行到任务节点之前再给它分配执行人?
例如这个流程定义
<?xml version="1.0" encoding="UTF-8"?>
<process name="TaskAssignee" xmlns="http://jbpm.org/4.0/jpdl">
<start g="20,20,48,48">
<transition to="state1"/>
</start>
<state name="state1" g="101,107,92,52">
<transition name="to review" to="review" g="-50,-18"/>
</state>
<task assignee="#{order.owner}" g="242,17,127,52" name="review">
<transition name="to end1" to="end1" g="-42,-18"/>
</task>
<end name="end1" g="485,20,48,48"/>
</process>
我想在执行完state1这步时才去分配任务执行人,而不是在一开始startProcessInstanceByKey的时候就用参数代入分配,请问应该如何操作?
谢谢!
如下所示:
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("order", new Order("johndoe"));
ProcessInstance processInstance = executionService.startProcessInstanceByKey("TaskAssignee", variables);其中的order变量,是在流程实例开始时就去调用new Order("johndoe")方法将参数代入的。我想请问,如何才能在流程执行到任务节点之前再给它分配执行人?
例如这个流程定义
<?xml version="1.0" encoding="UTF-8"?>
<process name="TaskAssignee" xmlns="http://jbpm.org/4.0/jpdl">
<start g="20,20,48,48">
<transition to="state1"/>
</start>
<state name="state1" g="101,107,92,52">
<transition name="to review" to="review" g="-50,-18"/>
</state>
<task assignee="#{order.owner}" g="242,17,127,52" name="review">
<transition name="to end1" to="end1" g="-42,-18"/>
</task>
<end name="end1" g="485,20,48,48"/>
</process>
我想在执行完state1这步时才去分配任务执行人,而不是在一开始startProcessInstanceByKey的时候就用参数代入分配,请问应该如何操作?
谢谢!
解决方案 »
- java jco调用sap,我有个ZRFC_CRM_OTHER的SAP的接口,大概是怎么调用的
- JSP中文乱码问题.
- 如何将tomcat+jdk打包一起使用?
- can't parse argument number!properties文件如何定义大括号?
- 整改代码,用ibatis
- HttpServletResponse response 日文转换问题!
- JDBC怎样获得查询到的数据的数量?
- 请问各位,有谁知道 ERP 中的 现场绩效系统
- jbuilder7+weblogic7详细配置文档(官方文档翻译)
- Java题求解
- hibernate 集成 c3p0
- spring AOP中出现的最奇怪的问题!!
使用jbpm4.0自己推荐的AssignmentHandler,实现接口中的assign(Assignable assignable, OpenExecution execution)方法,给任务分配执行人: assignable.setAssignee(XXX.getXXX());jpdl.xml如下
<task g="105,229,112,52" name="approver">
<assignment-handler class="com.qunda.sw.jbpm.service.impl.AssignTask"/>
<transition g="-59,-17" name="reject" to="reject"/>
<transition name="forward" to="approver2" g="-71,-17"/>
<transition name="approve" to="approve" g="-65,-17"/>
</task>