工作流初探(一)

146 阅读3分钟

流程已经成为当前工作中的一个最最重要的事项,涉及跨部门的事项大多由流程来控制审批,这样既能加快业务完成的速度,又能保存着各项流程的记录,方便被查。

这两年,工作当中流程已经普遍,OA已经应用在各项工作当中,我也在工作当中配置了多个流程,对流程也有了一些基本的知识,但从软件开发方面,缺少必要的知识。

最近接了一个备件设备管理系统,要求有出入库的流程,目前在用的OA使用的是JAVA配合ACTIVITY完成了流程的可视化设定以及自定义表单,但我不会java,只会python. 前端学习了几天bpmn,但对如何和后端进行数据的交互,一无所知。搜django工作流,有一些但无法使用,前前后后搜了一周,也没搜到可用的开源项目。

无奈之下,学习activity的数据库表的设计,因为熟悉django的orm,操作原生数据库表不熟练,所以必须将activity的数据库表熟悉,然后通过自定义django的orm,来同步迁移出activity的数据库表。

经过学习,大致也理解了工作流数据库表的几个方面

首先,工作流的基本特征,包含名字、类型、创建时间、谁能使用这个工作流,各种流程相同的信息,把信息都集中在这个表里,作为最主要的表,剩下的其他表都关联到这个表,以一对多,和多对多的方式进行关联。

其次,每个工作流最重要的是节点,流程是由各个节点组成的,这个节点是干什么,

主管领导审批?还是人事审批?还是运营部门审批?这就涉及到节点的参与人,参与人是用户、还是角色、还是部门、还是组织等等。

还有节点的顺序,谁在先,谁在后,要有个顺序。

另外,还有涉及的表单的更改权限,在这步,表单的那个字段可以被修改,那个字段不可以被修改。这个也需要有配置。

最后,工作流流转的按钮,诸如发送、下一步等等,这些也应该有一张表,这张表叫什么,不如叫操作表。流程中的各种操作,这些操作和节点有着密切的关系,比如说下一步这个操作,在那个节点有这个操作,点击这个操作后,又会跳到那个节点,这要有配置,所以,上一个节点,下一个节点,是这个表的两个外键。都关联到节点表,但是两个外键,在django中需要配置不同的related_name。这个操作得分诸多类型,那个节点是开始操作,那个节点是结束操作。某一个流程,某个领导审批不通过,驳回,那领导这个节点就意味着这个流程可以结束了。还有某些方面需要修改的,驳回只申请人,重新填写,这个流程就又重新开始了。