全部文档
文档中心工作流使用手册节点流程服务单人任务

单人任务

单人任务在流程中是最主要的人工任务处理节点,它会在流程流转到它的时候生成一个任务实例,指派策略中配置的所有人均可以去认领并且完成该任务。

单人任务多人任务的主要区别就在与任务生成和指派

  • 单人任务无论配置多少候选人,最终都只会生成一个任务,所有人均可以看到该任务,一旦任务被一个人认领,则其他人都将看不到这个任务;任务一旦被完成,则当前节点执行结束

  • 多人任务,配置多少个指派人,就会生成多少个任务,每个指派人都会在我的任务中看到只属于自己的任务;节点是否执行结束取决于多人任务配置的完成策略

展示名称区别于名称,是任务类的节点独有的,是任务实例展示的任务名称


支持插入变量,因此您可以配置一些动态的展示名称:


使用效果如下:

示例:一个请假审批节点 流程启动参数中可以配置两个启动参数:type(请假类型)、staff(员工) 此处展示名称配置时插入变量,插入作为启动参数传入的两个变量:${wfi!staff}${wfi!type}请假审批 流程执行时候,会根据启动参数动态生成对应的流程实例名称,当启动流程时传入启动参数{type:“事假”;staff:“聪聪”}时,生成一条流程实例,名称为:聪聪的事假请假审批

任务类的节点独有,用来标识该任务节点的相对优先级。



工作流不会针对不同优先级的任务做特殊处理,如果您有一些基于优先级的特殊需求,可以通过传递任务的优先级变量${acp!priority}进行实现。

需要注意:变量${acp!priority}中对应的变量值不是【高、中、低】,而是依次对应为【100、50、0】。

任务类的节点独有,可配置任务的到期时间;


支持根据基准时间+偏移时间计算出到期时间基准时间支持JS表达式,偏移时间支持以分钟、小时、天、周为单位;


目前到期策略本身并不会对任务数据产生影响,只会表现在过期状态字段上,但是基于生成的变量${acp!due_time}您可以做一些自定义的操作。

示例:您可以在任务监听中进行配置,当任务到期后启动一个子工作流,为某个人发送提醒消息,以实现催办。

配置任务实例创建之后,用户可以对该任务进行的操作,这些动作会以按钮的形式展示在**任务处理**页面


  • 名称:操作按钮最终的显示名称

  • 按钮样式:可选择按钮显示样式

  • 执行逻辑:该动作会执行的逻辑

  • 展示时机:按钮可显示的时机,根据任务状态(进行中/完成后/···)和用户身份(候选人/执行人/···)共同确定是否可查看当前配置的按钮

执行逻辑即该动作实际会执行的逻辑。

基于常用场景,已包装好提交/同意/拒绝动作,执行逻辑为点击后则完成当前节点。


关联配置:

  • 附件选项:完成任务时是否可以上传附件

  • 输出结果:可以配置完成任务时的输出结果

    • 任务结束之后,单人任务会基于用户选择的操作创建一个变量${acr$outcome}

    • 您可以将该局部变量映射到全局变量后,在后续节点进行判断/记录

效果为:点击后可选择转办的用户并添加备注,当前任务仍在进行中,只是执行人更改。


关联配置:

  • 转办范围:目前不限范围

点击后,待办页面中该任务实例会从【待认领的任务】移动到【我的任务】,任务的执行人更新为当前用户


点击后,待办页面中该任务实例会从【我的任务】移动到【待认领的任务】,任务的执行人更新为空


同《全局配置》章节中的【流程动作-流程撤回】。


点击后向可撤回节点发送撤回消息,可撤回节点收到消息后中断并执行该节点配置在订阅撤回的关联事件。

关联配置:

  • 可撤回节点:选择发送撤回消息的目标节点,只允许选择已经配置【订阅撤回】事件监听的任务节点

  • 执行条件:配置允许撤回的条件

    • 默认无条件

    • 自定义条件支持多个可撤回节点自由编排:

      • 节点状态为进行中

      • 节点为多人任务的,该多人任务产生的多实例中没有任何一个任务实例被完成

支持完成当前任务后,再跳转至目标节点。


当前任务是被完成而非终止,所以配置在单人任务上的任务完成时监听任务完成时映射都会被触发,任务状态会变为已完成

关联配置:

  • 输出结果:可选本节点内,执行逻辑为【完成任务】的动作的输出结果

  • 跳转范围:

    • 不限范围:则使用时,可选任意节点

    • 设定范围:多选可跳转节点,使用跳转时,可选的节点仅限此处配置的范围内

使用效果:



根据【任务动作】中配置的、执行逻辑为【完成任务】的按钮和对应的输出结果,动态展示:


即最终执行时,是以用户还是用户组为单位进行任务指派。


  • 用户、用户组:此时会将用户组作为指派单位,如果候选人中配置了一个用户组,执行时不会对组进行解析,任务的候选人为该用户组,组内成员均可以看到和执行,任务认领之后会变成具体的人

  • 仅用户:此时不会将用户组作为指派单位,如果候选人中配置了一个用户组,执行时会对组进行解析,任务的候选人为具体用户

任务候选人配置,即哪些人可以看到并执行该任务。



目前支持以下五种配置:

  • 流程发起人:默认配置,会将流程发起人作为任务候选人

  • 指定用户或组:选择具体的用户/用户组

  • 基于角色方案:根据角色方案组件,配置角色/角色组+维度配置,动态计算得到任务的候选人

  • 变量-用户ID:可以通过前置节点计算得到用户ID,实现动态指派

  • 变量-用户组ID:可以通过前置节点计算得到用户组ID,实现动态指派

注意:目前用户组中有企业所有用户/所有用户/空间所有用户配置,为了防止因不小心配置给所有用户创建任务,不管采用上述那种方式配置,我们最终都会过滤这三种用户组

当计算得到候选人为空时,提供的预置处理方式。


  • 作为不可捕获异常抛出:

    • 候选人为空时将在流程监控-异常信息列表中出现一条异常信息,会打断流程执行,流程将不再继续向下执行

    • 如果是通过角色方案等配置导致的候选人为空,可以更改配置后进行重试,将按照新的配置生成对应任务

默认启用,单人任务创建的用户任务默认需要用户认领,但是当任务最终的候选人只有一个人时,可以配置该用户自动认领


即在待办页面中通过点击查看按钮可以跳转查看的页面,一般配置用来进行任务处理


  • 目前待办跳转页面支持页面2.0和UX元素

  • 跳转参数默认添加task_idproc_id,页面2.0和UX元素中可以通过$urlQuery.键引用跳转参数的值

  • 关于工作流和页面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-操作时间

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send