21.2 工作流的分支与合并
21.2.1 汇合点
在某些流程中,要求几个任务需要全部(或部分)完成,然后才可以一起向下流转。这种情况下,我们需要在工作流中增设一个“汇合点”。
看下面这个例子。我们新建如下模板《员工转正审批表》。实际需要的流程是这样的:员工填写转正申请单,由自己的导师填写意见,然后交给部门经理和人事经理,分别审批,部门经理和人事经理都审批同意后,最后由总经理来审批。
在此模板上定义工作流,如下图:
在这个流程上,“导师评价”任务之后,流程发生了分支,同时有两个后续任务“部门审核”和“HR审核”,这两个任务是并列的,它们之间没有先后顺序,在“部门审核”和“HR审核”之后,有一个“汇合点”,就是图中的小圆圈,汇合点一般都有多条流入的流向,它起一个“等待”的作用,要等待前面的多个任务都完成了之后,再继续向下走,汇合点之后,是“总经理审核”。
汇合点的画法与“普通任务”一样,点击工作流窗口工具栏里的“汇合点”按钮,在画图区域单击,弹出“流程汇合点”对话框,输入任务名称,点击【确定】。
如前所述,汇合点起一个“等待”的作用,大部分情况下,需要等待前面的任务都完成了,流程再向下走;但是在有些业务场景中,采用一种类似投票的机制,不需要前面的任务都完成,只需要部分完成,就可以进行下面的步骤;我们可以设置从汇合点开始向下的流向,指定要采用哪一种等待机制。
例如,在上面的流程画板上,选中从“汇合点”到“总经理审批”这两个任务间的流向,点击工具栏按钮【属性】,弹出“流程连线定义”窗口,在窗口的下半部分,多出来一个“汇合完成”选项卡,切换此选项卡上,可以设置汇合后向下流转的条件。
流程的运行
- 用张三的账户登录,填写一张《员工转正审批表》,保存。
- 导师填写意见。
- 用肖部长的账户登录,审批张三填写的《员工转正审批表》,审批意见 = 同意,保存。
- 用总经理的账户登录,看一下能否接到待办事宜。我们发现此时没有接到待办事宜。
- 用张三的账户登录,在“已处理工作”中找到刚才填写的那张申请表,右键-进度。
6.用任经理的账户登录,办理张三提交过来的“员工转正申请表”,审批意见=同意,保存。
7.用王总的账户登录,此时就可以看到待办事宜了。
21.2.2 并列式任务
工作流中的某个任务可能指定了多个执行人,也就是说,上一个步骤把同一张表单提交给了多个人,如果他们每个人都需要根据上一步提交的内容完成本步骤的工作,而且互相之间没有关系,这种情形称为“并列式”。
举这样一个例子。人力资源部经理下发一份员工调查表,发给所有的销售员,每人一份。各销售员填好调查表,提交到人力资源经理处,人力资源经理检查每份调查表,区分有效问卷和无效问卷。为统计员工满意度准备好条件。
在上述例子中,第二步(填表)就是一个“并列式”的任务。因为接到填表任务的每个人都需要填写自己的那份表格。假如有50名销售员,相当于把一份空表下发了50个拷贝,最后回收的是50份表格。
下面来实现上述员工满意度调查流程。
《员工调查表》模版
新建模版《员工调查表》,信息如下:
项目 | 内容 |
报表编号 | FLOW-002 |
报表名称 | 员工调查表 |
填报权限 | Administrators、HR经理 |
查阅权限 | Administrators、HR经理,查看全部 Everyone,查看本人参与流程的 |
其它 | 接受默认值 |
表样: | |
![]() 注:切图为表新的一部分,完整的表样可参见示例数据库 | |
Excel公式: | |
单元地址 | 公式 |
定义四个数据规范:
规范名称 | 规范方式 | 取值 |
GG_是否 | 下拉列表 | 是,否 |
HR_性别 | 下拉列表 | 男,女 |
HR_选择 | 下拉列表 | A,B,C,D,E |
HR_学历 | 下拉列表 | 博士后,博士,硕士,本科,大专,中专,职高,高中,初中,小学 |
定义数据表:
表名 | 员工调查表 | 所在工作表 | Sheet1 | |||
样式 | 单一数据项 | 是否创建 | 是 | |||
主键 | 区域 | 字段名 | 数据类型 | 必填 | 填写规范 | 其它 |
C2 | 编号 | 文字(20字以内) | √ | 调查表号 | ||
C3 | 性别 | 文字(20字以内) | √ | HR_性别 | ||
C4 | 工作年限 | 整数 | √ | |||
C5 | 学历 | 文字(20字以内) | √ | HR_学历 | ||
C6 | 是否有效 | 文字(20字以内) | √ | GG_是否 | ||
C7 | 选择1 | 文字(20字以内) | HR_选择 | |||
C9 | 选择2 | 文字(20字以内) | HR_选择 | |||
C12 | 选择3 | 文字(20字以内) | HR_选择 | |||
C15 | 选择4 | 文字(20字以内) | HR_选择 | |||
C20 | 选择6 | 文字(20字以内) | HR_选择 | |||
C22 | 选择7 | 文字(20字以内) | HR_选择 | |||
C24 | 选择8 | 文字(20字以内) | HR_选择 | |||
C26 | 选择9 | 文字(20字以内) | HR_选择 | |||
C29 | 选择10 | 文字(20字以内) | HR_选择 | |||
C31 | 选择11 | 文字(20字以内) | HR_选择 | |||
C33 | 选择12 | 文字(20字以内) | HR_选择 | |||
C35 | 选择13 | 文字(20字以内) | HR_选择 | |||
C37 | 选择14 | 文字(20字以内) | HR_选择 | |||
C39 | 选择15 | 文字(20字以内) | HR_选择 | |||
C18 | 选择5 | 文字(20字以内) | HR_选择 | |||
C41 | 选择16 | 文字(20字以内) | HR_选择 | |||
C43 | 选择17 | 文字(20字以内) | HR_选择 | |||
C47 | 选择18 | 文字(20字以内) | HR_选择 | |||
B46:C46 | 回答18 | 文字(100字以内) | ||||
B50:C50 | 回答19 | 文字(100字以内) | ||||
B52:C52 | 回答20 | 文字(100字以内) | ||||
B54:C54 | 回答21 | 文字(100字以内) |
员工调查流程
在《员工调查表》模版上定义工作流,如下图:
任务“下发”:
有效区域:无
任务“填表”:
有效区域:员工调查表中除“是否有效”外的全部字段
执行权限:“交办人指定”、“并列式”
任务“回收”:
有效区域:员工调查表.是否有效
执行权限:“流程参与者:发起人-本人”、“抢先式”
流程的运行
- 用admin的帐户登录,
- 填报《员工调查表》,在空表格上什么也不用填,直接保存,弹出“保存表单”对话框,切换到“工作流”选项卡,如图,点击“填表”右侧的编辑按钮。
3.弹出“选择用户”对话框,选中销售部张三和李四,如下图所示,按【确定】。
4.回到“保存表单”对话框,按【确定】。
5.以张三的帐户登录,在待办事宜中能看到“填表”任务,办理。
6.以李四的帐户登录,在待办事宜中也能看到“填表”任务,先不办理。
7.重新以admin的帐户登录,在其待办事宜中能看到一条“回收”任务。
8.进而,在我的工作台中选中“员工调查表”,能看到有1条记录,同时可看到各人的填表进度。
9.以李四的账户登录,办理“填表”任务。
10. 重新以Admin的账户登陆,在我的工作台中,会看到现在有了两份“员工调查表”。
21.2.3 会签式任务
如果一个工作流任务有多个待办人,这些待办人各自办理各自的,但是他们各自办理的结果都将体现在同一张表单上,这种情况称为“会签”。
会签的典型例子是下面的这张通知单。
此通知单模板的工作流有三步,第一步是下发,下发人填通知单,并且选择抄送人(下面的抄送清单表格中的部门和姓名两列);下发保存后,对抄送清单中列出姓名的每个人发送待办事宜,每个人在写着自己姓名的那一行中签收。当所有该签收的人都签收了之后,最初下发的人会接到一个待办事宜,通知她(她)所有人都已经签收了。
定义会签式任务
上述流程中的第二步,需要定义成“会签式”任务
- 在任务的“执行权限”标签上,设置执行权限为“根据表单内容决定”,右侧的“多人协调方式”选择“会签式”。
2.切换到“有效区域”标签上,勾选本步的可操作字段。
3.连续点击【确定】,完成会签式任务属性的设置。
定义会签式任务的后续流向
在会签式任务及其后续任务之间的流向定义窗口上,会多出来一个“会签完成”选项卡,用于设置会签完成向下流转的条件。如图,我们可以根据实际情况,规定只有所有会签的待办人都办理完成,此步才算完成,还是超过规定人数办理完成就可视同会签完成。