JBPM 任务回退给上一个处理人 任务回退到上一步,重新分配人

本文介绍了一种在复杂工作流中实现任务回退给前处理者或重新分配给其他人员的方法。通过示例代码展示了如何在完成任务实例后调用特定方法实现任务回退,并更改新任务实例的角色ID来实现任务的重新分配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间做了一个的项目,里面涉及比较复杂的工作流。
其中 有涉及任务回退给上一个处理人,重新对任务做处理。还有任务回退到上一步,重新分配处理人,将任务处理。
下面针对第一种情况,将任务退回给上一个处理人,进行任务重新处理:
<task-node name="allotTaskNode">
<task name="allotTaskNode" swimlane="headSwimlane">
<controller>
<!--经办的内容-->
<variable name="inspectorTask" access="read,write,required">
</variable>
</controller>
</task>
<!--科员处理事件-->
<transition to="inspectorTaskNode" name="to inspectorTaskNode"></transition>
</task-node>

<task-node name="inspectorTaskNode">
<task name="inspectorTaskNode" swimlane="inspectorSwimlane">
<controller>
<!--经办的内容-->
<variable name="inspectorTask" access="read,write,required">
</variable>
<variable name="dealInspectorTask" access="read,wirte,required">
</variable>
</controller>
</task>
<transition to="inspectorApproveNode" name="to inspectorApproveNode"></transition>
</task-node>

<task-node name="inspectorApproveNode">
<task name="inspectorApproveNode" swimlane="headSwimlane">
<controller>
<!--经办的内容-->
<variable name="approveInspectorTask" access="read,write,required">
</variable>
</controller>
</task>
<!--退回重做-->
<transition to="inspectorTaskNode" name="to inspectorTaskNode"></transition>
<!--结束任务-->
<transition to="taskEndNode" name="to taskEndNode"></transition>
</task-node>
其中<!--退回重做-->
<transition to="inspectorTaskNode" name="to inspectorTaskNode"></transition>
这步就可以任务退回重做 也可以让重新指派人做任务
实现是在处理inspectorApproveNode这个任务的实例的时候
假设这个任务实例是inspectorApproveTask(获取任务实例的方法简略)
然后在任务处理完以后 用这个方法:
inspectorApproveTask.end("to inspectorTaskNode");
这个方法 提交数据以后
查看下你的数据库中Jbpm_TaskInstance这个表中多了条新任务
就是inspectorTaskNode这个任务 并且里面的角色就是原来处理人的ID
那样 任务回退给上一个人就OK了。
下面说下处理任务重新分配到另外一个人:
当执行inspectorApproveTask.end("to inspectorTaskNode");以后
将产生的新任务实例的actorID改成你需要重新分配的人的ID就可以了
不过是要先获取inspectorTaskNode这个任务实例 可以通过HQL 参数是流程实例ID
和任务实例的名称 查找方法和我上次写的HQL差不多
得到任务实例:inspectorTask以后
将inspectorTask.setActorId(id);
以上就是解决回退的方法
写得不好 请大家多指出错误 或者是有其它更好的方法也可以提出来 让小弟多学习
谢谢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值