单人任务:无论配置多少候选人,最终都只会生成一个任务,所有人均可以看到该任务,一旦任务被一个人认领,则其他人都将看不到这个任务;任务一旦被完成,则当前节点执行结束
多人任务:配置多少个指派人,就会生成多少个任务,每个指派人都会在我的任务中看到只属于自己的任务;节点是否执行结束取决于多人任务配置的完成策略
展示名称
区别于名称
,是任务类的节点独有的,是任务实例展示的任务名称
。
示例:一个请假审批节点
type(请假类型)
、staff(员工)
${wfi!staff}
的${wfi!type}
请假审批{type:“事假”;staff:“聪聪”}
时,则生成一条流程实例,名称为:聪聪的事假请假审批
任务类的节点独有,用来标识该任务节点的相对优先级。
${acp!priority}
进行实现。${acp!priority}
中对应的变量值不是【高、中、低】,而是依次对应为【100、50、0】。
任务类的节点独有,可配置任务的到期时间;
基准时间+偏移时间
计算出到期时间
,基准时间
支持JS表达式,偏移时间
支持以分钟、小时、天、周
为单位;${acp!due_time}
您可以做一些自定义的操作。配置任务实例创建之后,用户可以对该任务进行的操作,这些动作会以按钮的形式展示在任务处理
页面
名称:操作按钮最终的显示名称
按钮样式:可选择按钮显示样式
执行逻辑:该动作会执行的逻辑
展示时机:按钮可显示的时机,根据任务状态(进行中/完成后/···)和用户身份(候选人/执行人/···)共同确定是否可查看当前配置的按钮
执行逻辑即该动作实际会执行的逻辑。单人任务节点支持的执行逻辑如下:
基于常用场景,已包装好提交/同意/拒绝
动作,执行逻辑为点击后则完成当前节点。
附件选项:完成任务时是否可以上传附件
输出结果:可以配置完成任务时的输出结果
任务结束之后,单人任务会基于用户选择的操作创建一个变量${acr$outcome}
您可以将该局部变量映射到全局变量后,在后续节点进行判断/记录
效果为:点击后可选择转办的用户并添加备注,当前任务仍在进行中,只是执行人更改。
转办范围:目前不限范围
点击后,待办页面中该任务实例会从【待认领的任务】移动到【我的任务】,任务的执行人更新为当前用户
点击后,待办页面中该任务实例会从【我的任务】移动到【待认领的任务】,任务的执行人更新为空
同《全局配置》章节中的【流程动作-流程撤回】。
可撤回节点
发送撤回消息,可撤回节点
收到消息后中断并执行该节点配置在订阅撤回
的关联事件。可撤回节点:选择发送撤回消息的目标节点,只允许选择已经配置【订阅撤回】事件监听的任务节点
执行条件:配置允许撤回的条件
默认无条件
自定义条件支持多个可撤回节点自由编排:
节点状态为进行中
节点为多人任务
的,该多人任务产生的多实例中没有任何一个任务实例被完成
支持完成当前任务后,再跳转至目标节点。
任务完成时监听
、任务完成时映射
都会被触发,任务状态会变为已完成
。输出结果:可选本节点内,执行逻辑为【完成任务】的动作的输出结果
跳转范围:
不限范围:则使用时,可选任意节点
设定范围:多选可跳转节点
,使用跳转时,可选的节点仅限此处配置的范围内
跳转的使用效果:
根据【任务动作】中配置的、执行逻辑为【完成任务】的按钮和对应的输出结果,动态展示:
即最终执行时,是以用户还是用户组为单位进行任务指派。
用户、用户组:此时会将用户组作为指派单位,如果候选人中配置了一个用户组,执行时不会对组进行解析,任务的候选人为该用户组,组内成员均可以看到和执行,任务认领之后会变成具体的人
仅用户:此时不会将用户组作为指派单位,如果候选人中配置了一个用户组,执行时会对组进行解析,任务的候选人为具体用户
任务候选人配置,即哪些人可以看到并执行该任务。
目前支持以下几种配置方式:
流程发起人:默认配置,会直接将流程发起人作为任务候选人 -
指定用户或组:选择具体的用户/用户组 -
表达式-用户ID:用JS表达式输入用户ID,实现动态指派 -
表达式-用户组ID:类似表达式-用户ID
,用JS表达式输入用户组ID,实现动态指派
-
基于角色方案:选择角色方案组件,配置角色/角色组+维度,动态计算得到任务的候选人 -
基于用户对象:选择一个基础对象(通常是本工作流关注的业务对象),并对其进行过滤(只能根据业务主键进行过滤),选择作为候选人的用户属性,该属性必须是用户类型 -
基于用户组对象:类似基于用户对象
,只是最终选择作为候选人的属性需要是用户组类型
-
注意:目前用户组中有企业所有用户/所有用户/空间所有用户配置,为了防止因不小心配置给所有用户创建任务,不管采用上述那种方式配置,我们最终都会过滤这三种用户组
当计算得到的候选人为空时,提供的预置处理方式,目前支持:
作为不可捕获异常抛出:
候选人为空时将在流程监控-异常信息列表中出现一条异常信息,会打断流程执行,流程将不再继续向下执行
如果是通过角色方案等配置导致的候选人为空,可以更改配置后进行重试,将按照新的配置生成对应任务
默认启用,单人任务创建的用户任务默认需要用户认领,但是当任务最终的候选人只有一个人时,可以配置该用户自动认领、
即在待办页面中通过点击查看
按钮可以跳转查看的页面,一般配置用来进行任务处理
目前待办跳转页面支持页面2.0
和UX
元素,建议使用UX
元素
跳转参数默认添加task_id
和proc_id
,页面2.0
和UX
可以通过$urlQuery.键
引用跳转参数的值(UX
还支持直接通过变量值引用)
关于工作流和页面2.0、UX的数据交互方式,详见关联元素配置中的【工作流与页面2.0的关联配置说明】和【工作流与UX的关联配置说明】章节
常见的关联元素配置(以UX为例):
对于一些简单的任务,不需要跳转待办界面进行任务处理,可以配置允许快速完成
,勾选后支持直接在待办页面上完成任务:
待办页面对应任务上将出现快速处理
按钮
勾选任务后支持批量处理
处理的逻辑仅限于完成任务
,其他执行逻辑(例如转办、加签等)需要进入待办跳转界面处理
同《全局配置》章节中的【流程监听】,任务监听用以监听当任务实例到达某些节点时,执行对应的监听动作。
启动工作流。流程启动参数支持以下类型的赋值:
表达式:支持当前节点(acp$)
、全局变量(wfv$)
、启动参数(wfi$)
、工作流实例(wfp$)
、工作流(wf$)
变量
任务开始后,支持在任务上创建多个监听动作,以实现一些不影响当前流程执行的逻辑。
基于此配置,您可以实现以下需求:
任务开始向任务执行人发送提醒消息
任务到期后每12小时,向任务执行人发送催办提醒消息
点击添加可添加一条任务监听,支持添加多条
可以配置监听动作的执行时间
首次激活时间:基准时间+偏移时间
即首次执行监听动作的时间
基准时间可以配置表达式或者静态值
例:您可以配置任务开始时间${acp!start_time}
或者任务截止时间${acp!due_time}
作为基准时间
偏移时间用来辅助您实现更复杂的激活时间设置,如您需要在任务到期两小时后执行某个监听(入发送通知),您可以配置基准时间为${acp!due_time}
,偏移时间为2小时,支持的偏移时间单位有分钟/小时/天/周
重复激活:支持您对于一个监听事件多次重复执行
可指定重复间隔,如每12小时重复执行一次,支持的间隔时间单位有分钟/小时/天/周
最多激活次数/最晚激活时间:为了避免由于误配置导致多次重复执行,我们提供了该配置,用来定义监听动作的执行上限,达到最多激活次数/最晚激活时间,不再执行监听事件
默认最多激活次数的上限为100次,即对于同一个监听动作,我们最多只会重复100次
激活条件:后续将支持在激活时进行条件判断,只有在特定条件下才允许执行,目前始终激活
启动工作流:支持您启动一个额外的动作流
通过此配置,您可以启动一个与当前工作流执行无关的流程,用来发送消息、执行脚本或其他行为
流程启动参数支持表达式类型的赋值:支持当前节点(acp$)
、全局变量(wfv$)
、启动参数(wfi$)
、工作流实例(wfp$)
、工作流(wf$)
变量
发送消息:向目标流程发送指定消息,消息的定义详见《消息》章节
完成当前任务:支持到期自动完成
完成任务的操作用户为指派的任务执行人,若指派的执行人单位为用户组,则以组的名义完成任务,操作人为“任务监听-计时执行”
若指派的执行人为空,当前仅支持不完成,等待用户处理
完成当前任务的输出结果,可选本节点内,执行逻辑为【完成任务】的动作的输出结果,默认选择approve
任务备注支持静态值和表达式
静态值:默认超时自动完成
表达式:支持当前节点(acp$)
、全局变量(wfv$)
、启动参数(wfi$)
、工作流实例(wfp$)
、工作流(wf$)
变量
效果:
当任务发生指派行为时(转办、转派、认领、取消认领),可以创建多个监听动作,启动一个与当前工作流执行无关的流程。
表达式:支持当前节点(acp$)
、全局变量(wfv$)
、启动参数(wfi$)
、工作流实例(wfp$)
、工作流(wf$)
变量
当任务完成时,可以通过任务完成时的监听额外执行一些事情,比如修改业务数据状态/记录日志等。
删除历史已完成和终止的任务实例:审批中驳回修改的场景,会创建新的提交任务实例,产生冗余的被驳回的历史任务实例,可以开启此配置以保留最新一次的提交任务,但相关流程记录不会被清除。
执行逻辑:执行动作支持启动工作流,流程启动参数支持以下类型的赋值:
表达式:支持当前节点(acr$)
、当前节点(acp$)
、全局变量(wfv$)
、启动参数(wfi$)
、工作流实例(wfp$)
、工作流(wf$)
变量
事件监听是唯一可以在任务运行中,从外部干预任务节点的方式,目前有两种配置通用消息和订阅撤回
目标节点:每一个事件监听需要配置一个目标输出节点,标识订阅到对应事件后的后续执行逻辑
配置事件监听之后,需要在画布上为当前的事件监听配置一个输出节点,然后在配置项中选择此输出节点,进行匹配
事件名称:有多个事件监听时,可以用来进行用途区分
订阅消息:可以选择一个全局设置的消息事件进行订阅,当订阅的消息被接收时,执行关联的目标节点(消息事件如何定义,见《消息》章节)
中断当前活动:开启后,当接收到订阅的消息时,会直接中断当前节点,执行事件订阅的目标节点
不开启时,则不会影响当前节点执行
开启后,若中断节点,节点中正在运行的任务会直接变更为 **【已终止】 **状态
事件结束时映射:执行当前事件监听后,可进行数据映射操作,赋值类型包括:
静态值
表达式:支持当前节点(acp$)
、全局变量(wfv$)
、启动参数(wfi$)
、工作流实例(wfp$)
、工作流(wf$)
变量
消息参数:订阅消息的消息属性,可选与全局变量数据类型相同的参数
静态值
表达式:支持当前节点(acp$)
、全局变量(wfv$)
、启动参数(wfi$)
、工作流实例(wfp$)
、工作流(wf$)
变量
执行信息:source_node_code-操作节点编码
、operator_id-操作人
、operate_time-操作时间
回到顶部
咨询热线