基于python的django框架的workflow工作流引擎学习
工作流就是“业务过程的部分或整体在计算机应用环境下的自动化”。将一组任务组织起来以完成某个特定的过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完成。实现工作流程的自动化。
在java领域中,JBPM和Actvity是两个主流的工作流系统
在python领域中,工作流小程序使用的是workflow工作流引擎。
基于django的工作流引擎,工单(a workflow engine base on django python)
工作流引擎的边界:
1、必然存在自己的数据表,用来制定、存储工作流模板和实例
2、必然与操作用户关联
3、必然与用户表单关联
4、可以自定义模板,然后反复实例化(具体的每次运用)
5、模板的创建,可以图形化,可以用XML,可以用HTML本质都是把流程模板持久化
下面总结对workflow的理解:
工作流引擎的model主要有以下几个部分:
(1)Admin管理系统页面
(2)account账户管理
部门信息:名称,部门老大,审批人,还有创建人、时间,更新时间这些基本的信息。
角色信息:名称、描述,还有创建人、时间,更新时间这些基本的信息。
用户信息:用户名、姓名、邮箱、电话、部门id这些,还有创建人、时间,更新时间这些基本的信息。还有返回用户信息的一些基本方法。
用户角色:用户id和角色id进行绑定
(3)Tickets工单管理
工单状态:标题,关联的工作流id,流水号,当前状态,父工单id,状态,当前处理人类型,当前处理人,工单关联人,是否结束,是否被拒绝,全部处理的结果。还有创建人、时间,更新时间这些基本的信息。
工单流转日志:工单id,流转id,处理意见,处理人类型,处理人 ,当前状态id,工单数据。
工单自定义字段:包括自己需要添加的时间、整形、bool、字符串这些种类的数据。
完成工单表。
(4)Workflow工作流管理
工作流:名称、描述、流程图、通知、展现表单字段。还有基本的创建人、时间,更新时间这些基本的信息。
工作流的状态记录:名称、工作流id,状态顺序,状态类型id,参与者类型id,参与者,状态标签等。
工单的流转:操作,工作流id,流转类型,源状态id,目的状态id,校验必填项,弹窗提示,弹窗内容。
设置工作流中有哪些自定义字段:工作流id,类型,字段标识,字段名称,排序,默认值,描述,文本域模板。
工单处理逻辑:
- 新建工单的页面,根据选择的工单类型,后台根据“工单类型和工作流关联”表确定使用哪一个工作流。
- 由工作流弹出工单初始页面输入相应的信息,并根据工作流的初始状态表确定下面的按钮,例如是提交、保存、转领导这样的选项。根据源id和目的id,点击相应的按钮,来实现相应的流转。所填写的信息会写到工单表里面,状态、当前处理人也会随之改变。
- 根据工单内的处理人和处理人类型确定那些人有权限处理工单,处理人登录的时候会进行接单操作。
- 用户在进行查看工单时根据“工单查看页面表单的展现表”来确定需要显示哪些字段
- 处理工单的界面通过“工单处理页面表单的展现表” 来确定显示哪些字段,以及哪些字段可以在处理过程中修改之后提交或者进行补充,例如审批意见和需要提交给下一个的待定审批人。