流程设计
# 流程设计
# 流程管理
# 画图
每一个流程都需要画一张流程图,流程图的制作关系到流程的走向,流程图中主要分为五个部分:
开始:是流程发起的地方,一个流程可以多个开始,每一开始节点可以设置对应表单以及处理人员。
结束:一个流程中也是可以多个结束,结束节点不能配置,走到这一步就结束。
交互节点:开始后结束前的过程节点,每一个交互节点就是一个过程,本节点可以设置表单,处理人员,超时设置,通知设置等
控制节点:本节点只在后台进行,可以设置由一人同意、还是所有人员同意通过。
循环节点:当未达到退出条件时继续循环,一般用于找上级领导。每家公司组织机构层级不一样有些岗位申请要向上审批两级也有可能三、四级,如果只有交互节点那不清楚放几级。有了循环节点后,只要找到根目录就结束,这个不管部门层级有多深都可以轻松解决。
线:节点与节点之间相联,每一条线都可以设置不同的条件,根据不同的条件确定是否从这条线上通过
# 开始节点-表单设置
1、前缀符号:必填。是流程号的关键,用于其他区分其他流程,故这里必须跟其他流程不一样,当你一个流程有多个开始节点时也可分开。
2、业务表单:这里主要是用于定制表单,只能选择定制开发好的表单,此项与下方动态表单必选一项。
3、动态表单:先确保您必须在模块中心增加了模块,然后模块中心也设计了表单
# 开始节点-处理者
注意事项:
1、开始节点的处理者:就是定义谁可以发起
2、可选择有:
“所有人”:所有人都可以发起申请
“指定账号”:可选择人员,上图说明可以增加多个人员。
“部门”:可选择多个部门进行发起。
“角色”:可选多个角色进行发起。
3、开始节点“与处理者关系”“包含或排除”无效
# 开始节点-变量
流程变量在流程中起关键性的做用,例如:请假天数大于2天需要老板审批,那么这个"天数"就是变量。
而不同公司对“天数”的定义是不一样的,就需要定义这个天数从那里(那个表,那一列)去取。
变量还分为两种:
流程变量:整理个流程都能用的并且取数是维一的
任务变量:是在本节点时,或者在去下一节点的线上使用,用的比较多的是本节点审批的审批意见
# 交互节点-表单
(请参考发起节点)
# 交互节点-处理者
(相同点请参考发起节点)
名词解释
1、任意用户处理:处理人为多个的情况下,只要有一个提交了,流程就往下走,未处理的人那里也就没了。
2、所有用户处理(会签):处理人有多个,那多个人都必须提交,如果后续没有控制节点配合的话多人提交就会多条流程向下走,最后的结果就是,这里每提交一些后续的人员也都要跟着审批一次。
控制节点:这个节点在流程图上有,主要是配合使用,他只两个选项“与(and)”和“或(or)”。
与:当前面的所有人都提交完成了再进到下一步;
或:只要有提交就转到下一步
3、处理者是提交人,自动处理:我们现实中会出现,第一审批人与第二审批人是同一个,为了减少审批可以自动跳过,但需要注意如果需要改变业务数据时请使用自动处理的API。
4、允许退回:当流程发现问题时可以退回到上一人进行修改。
5、允许任意退回:可以自由选择退回到那一环节。
6、允许指派他人处理:可以指定下一处理人
# 交互节点-通知API
为了让通短的内容不单一,可以定制不同的通知方式,同时支持四个不同形式的通知
(如何定制请查看流程开发文档)
# 交互节点-超时处理
启用超时:当达到分钟数以上时系统会再进行一次通知。
自己动处理:当在超时的基础上达到本分钟以上将进行自动提交
# 线的配置
1、提交命令(不推荐修改):每个节点除了“提交”命令外还可以有其他按钮,当点其它按钮时也能提交保存数据,这里可以选择走的路线。
2、优先级(不推荐修改):系统会优先检查本条线按钮是否为“提交”、条件是否合格。
3、表达式(默认为空):可以写入条件来控件线的走向。
规范:输入的条件以SQL为准 select *from kh where [ 1=1] 本条语句是[]就是您要输的条件
变量使用:<%变量名%> 系统会查出top 1的值自动转成字符, 请注意变量的数据类型。
select *from kh where [ '1'=1] 如果类型不一样也是会不通过的。
4、API对接:上方节点已经有API那个主要用于流程到达的通知,而这里是流程经过这条线时的通知。
5、SQL对接:有时审批后只需要改变业务中一个状态,那没必要专门进行开发,可以直接写一个SQL进行更新.
# 循环节点配置
退出条件成立就结束循环
- 条件规则
select 1 where 1=1 --成立
select 1 where 1=2 --不成立
2
3
4
- 我们的条件就写在1=1的位置上
--示例如下
@userId='admin' or (SELECT [DepartmentID] FROM [NBWanS_User] where userid=@userId)=1
--白活:当前提交人的ID等于'admin' 或者 当前提交人的部门ID等1
--实际SQL
select 1 where 'admin'='admin' or (SELECT [DepartmentID] FROM [NBWanS_User] where userid='admin')=1 --成立
2
3
4
5
6
7
- 可选择参数:@Company,@userId处理人, @workFlowId,@workTaskId,@workFlowInstanceId,@WorkTaskInstanceId