提问和思考
如果你是使用Activiti系列框架做的审批系统,那么当用户提出需要【转交】功能的时候,你需要如何实现?
如果你们的审批系统是自己设计的,没用框架,那么为了满足【转交】这个功能,设计时需要考虑哪些?
功能介绍
Activiti框架支不支持转交功能,有没有API?
答案是:这个可以有。
你要知道,这些工作流框架都是外国人写的,是,你可以说也有中国人提交mr,但是架构和思想还是遵从着西方人那一套。
如果你是工作流相关业务的开发人员,你一定听说过一个名词:中国式工作流。
delegateTask感兴趣的可以搜一搜这个API,虽然翻译是:授(权);把(工作、权力等)委托(给下级);选派(某人做某事)
但是你细究他的底层实现,以及调用这一系列API后,数据库表的变化,你会发现,效果和你想的,和用户想的根本不是一回事。
/**
* 将任务委托给另一个人,修改act_ru_task表记录
* 如果没有任务所有者(owner_),则将该字段置为任务的当前受理人
* 委托状态(delegation_)变更为PENDING
* 当前审批人(assignee_)变更为被委托人
*/
void delegateTask(String taskId, String userId);
/**
* 被加签人处理完毕,节点处理人回转到委托人
* 只有在委托状态(delegation_)为PENDING才能执行
* 委托状态(delegation_)变更为RESOLVED
* 当前审批人(assignee_)变更为 委托人