TreeviewCopyright © aleen42 all right reserved, powered by aleen42
工作流
一、流程设计器
1.1、设计器基础组件
- 界面由工具栏和画布两部分组成。
- 工具栏中展示的是设计器支持的所有元素,用鼠标选中工具条上的元素,点击并拖动,可以将它拖动到画布上的任意位置。
- 选中一个元素,可以看到看到这个元素的属性设置和浮动菜单。
- 一个流程必须有启动、结束、任务和线这四个元素,逐级、条件、调用、通知是可选的。
- 可通过两种方式设计流程,一种是通过元素上的浮动图标添加,一种是通过拖动元素到画布后,再通过连接线将各个元素连接起来。
组件 | 描述 |
---|---|
启动 | 流程开始的标识。一个流程只能有一个启动 |
结束 | 流程结束的标识,一个流程可以有多个结束标识 |
活动 | 流程执行中的主体,定义流程流转中的参与人、抄送人、操作、提醒、时限等相关属性 |
逐级活动 | 按部门层级逐级找部门负责人进行审批; |
通知 | 以IM或邮件的方式发送通知消息,消息内容可根据表单的内容配置 |
1.2、活动组件
活动的属性有很多,分参与人、抄送人、操作、时限四个页签来设置,如下图所示。
1.3、参与人
- 功能解释
功能 | 描述 |
---|---|
用户 | 按用户选择环节的处理人,光标定位到该输入框后会以下拉选项的方式显示当前租户下的所有用户,选择后即可 |
用户组 | 按用户组选择环节上的处理人,选择用户组后,该用户组下的所有用户均可办理该业务,用户组的添加请参照【BPM后台】中的【用户组】 |
部门 | 按部门选择环节上的处理人,选择部门后,该部门下是的所有用户均可办理该业务,这里的部门指的【BPM后台】中的【部门】,用友云产品多数是通过数据同步过来 |
部门负责人 | 通过直接选择部门来获取部门负责人信息,只需直接选择部门即可 |
岗位 | 按岗位来选择环节上的处理人 |
职务 | 按职务来选择环节上的处理人 |
从流程中选择审批人 | |
发起人 | 快捷的设置参与人为发起人的方式 |
上一个环节审批人的部门负责人 | 上一环节审批人所在部门的部门负责人 |
上一环节审批人的上级部门负责人 | 上一环节审批人所在部门的上级部门的部门负责人 |
上一环节审批人的上级主管 | 上一个环节审批人在友空间人员任职信息中定义的上级主管 |
制单人部门负责人 | 制单人所在部门的部门负责人,如果不勾选包含上级,仅找制单人所在部门的负责人,如果勾选了“包含上级”,当制单人所在部门没有负责人时,会找上级部门的负责人 |
制单人上级部门负责人 | 制单人所在部门的上级部门的负责人 |
从表单数据中选择审批人 | 将单据中“用户”类型的字段作为环节的参与人,用户类型的字段包括:用户、制单人、制单人部门负责人、制单人上级主管控件,通过关联字段取出的用户的部门负责人及上级主管;支持多选,多个审批人之间是会签的关系 |
环节执行人(已执执行环节) | 直接取前面已执行过的环节的参与人做为当前环节的参与人 |
人员范围限定 | |
制单人过滤 | |
制单人同组织(包含上级) | 当环节参与人为多个时,只找与制单人同一组织的人作为环节的处理人;当不勾选了“包含上级”时,仅在与制单人同一组织内找,如果勾选了“包含上级”时,在制单人同组织内找不到时,会继续在上级组织内找,直到找到为止 |
制单人同部门(包含上级、不包含兼职) | 当环节参与人为多个时,只找与制单人同一部门的人作为环节的处理人;当不勾选了“包含上级”时,仅在与制单人同一部门内找,如果勾选了“包含上级”时,在制单人同部门内找不到时,会继续在上级部门内找,直到找到为止;不包含兼职:默认不勾选,选中时,仅在主职中查找; |
制单人不同部门 | 当环节参与人为多个时,只找与制单人不同部门的人作为环节的处理人 |
上一环节审批人过滤 | |
上一环节审批人同组织(包含上级) | 当环节参与人为多个时,只找与上一环节审批人同组织的人作为环节的处理人;当不勾选“包含上级”时,仅在与上一环节审批人同一组织内找,如果勾选了“包含上级”时,在同组织内找不到时,会继续在上级组织内找,直到找到为止 |
上一环节审批人同部门(包含上级) | 当环节参与人为多个时,只找与上一环节审批人同一部门的人作为环节的处理人;当不勾选“包含上级”时,仅在与上一环节审批人同一部门内找,如果勾选了“包含上级”时,在同部门内找不到时,会继续在上级部门内找,直到找到为止; |
1.4、抄送人
- 抄送人页签的设置项与参与人的设置完全一样,从不同的维度来定义任务的抄送人,当任务执行完时将信息传送给抄送人。
- 这里定义的抄送人与运行时定义的临时抄送人不同,这里定义的是固定抄送人。
- 具体设置内容这里不再赘述。
1.5、操作
- 功能解释
功能 | 描述 |
---|---|
可抄送 | 设置当前环节是否可使用抄送,勾选后,审批界面会出现可添加“抄送人”;默认勾选 |
连岗审批 | 设置当前环节处理人与之前环节的处理人相同时,是否自动审批,勾选后,如果存在相同处理人,则系统自动处理为通过,无须多次审批;默认不勾选; |
连岗审批(仅连续) | 设置当前环节的处理人与上一环节的处理人相同时,是否自动审批,勾选后,如果处理人相同则系统自动处理为通过,无须多次审批;默认不勾选; |
加签规则 | |
前加签 | 当前处理人是否可以发起前加签,勾选,则审批界面可以看到“前加签”动作按钮,不勾选则看不到此按钮;默认不勾选 |
后加签 | 当前处理人是否可以发起后加签,勾选,则审批界面可以看到“后加签”动作按钮,不勾选则看不到此按钮;默认不勾选 |
前加签与后加签的区别 | 前加签是当前审批人在审批之前有些事项需要其他人协助确认时发起的一个讨论,参与审批的人自由发表意见,但这些意见只是给发起前加签的人提供参考意见,至于怎么决策还是由加签人自己决定。前加签发起后,被加签人必须都审批完成后,流程会重新流回到前加签人,继续完成他的审批工作,在前加签进行中,前加签人不能操作,只能等待;前加签可加签单个人或多个人,支持抢占或会签的模式,默认抢占;被加签人可以再发起前加签及驳回之前的某个环节;后加签是当前审批人在审批时,对审批事项把握不准,需要更上层的领导确认审批时增加一个审批环节。后加签由当前审批人在点同意动作时触发,在其后增加一个审批环节,被加签人不处理,流程则无法继续流转;后加签可加签单个人或多个人,支持抢占或会签的模式,默认抢占;被加签人的操作权限同加签人; |
指派方式(单分支、多分支、所有分支) | 当流程下一步为条件时,且“条件”上未设置分支条件或有多个分支符合条件时,需要当前处理人指派走哪个分支,指派方式用于定义指派时,能够选几个分支。单分支只能指派一个分支,所有分支是所有分支都需要走,而多分支最灵活,可以任意选一个或多个或全部;分支能否出现在待选列表上,取决于待选分支是否勾选了“可被指派”;默认多分支 |
抢占 | 当某个环节有多个待处理人时,所有处理人会同时收到任务,当其中一个处理人处理完成后,视为该环节处理完毕,流程流转到下一个环节,这种处理方式我们称之为抢占;此方式为默认方式 |
会签 | 当某个环节有多个处理人时,所有处理人会同时收到任务,当所有处理人(或符合定义的完成人数或完成比例时)处理完成后,视为该环节处理完毕,流程流转到下一个环节,这种处理方式我们称之为会签;选择会签后,还需要继续定义会签的完成数量或比例以及会签的方式如下 |
串行会签 | 环节所有处理人均需要进行处理,处理的方式是按前后顺序,前一个处理人完成后,后一个处理人才能进行处理,定义的顺序为该环节选择的用户的顺序;此方式仅支持按用户定义参与人 |
并行会签 | 环节所有处理人均需要进行处理,所有参与人可以同时进行 |
1.6、时限
- 功能解释
功能 | 描述 |
---|---|
到期时间 | 定义任务的完成时限,可以按天、按小时或者按天和小时;超过到期时间后,在工作台的待办列表上会显示“逾期”的标识 |
预警时间 | 定义任务的预警时间,即到期前的几天几小时进行预警。比如到期时间为8小时,预警时间为2小时,即到期前2小时(收到任务后的6小时)开始预警,在工作台待办列表上会显示“预警”标识 |
超时处理方式 | 超过工作时间后的处理方式,系统提供了三种方式:自动同意,终止,发送超时提醒。默认“发送超时提醒” |
1.7、流程变量
流程变量的用途之一:通过脚本函数返回指定的用户ID,在后续活动节点使用
- 创建流程变量
- 设计器中添加脚本活动和活动
- 脚本活动中为流程变量绑定脚本函数
//flowGetAuditor
let AbstractTrigger = require('AbstractTrigger');
class MyTrigger extends AbstractTrigger {
execute(context,param){
let userId = JSON.parse(AppContext()).currentUser.id;
return {userId};
}
}
exports({"entryPoint":MyTrigger});
//flowGetArray
let AbstractTrigger = require('AbstractTrigger');
class MyTrigger extends AbstractTrigger {
execute(context,param){
let userId = JSON.parse(AppContext()).currentUser.id;
return [userId];
}
}
exports({"entryPoint":MyTrigger});
- 审批活动节点使用流程变量设置审批人