工作流插件介绍

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

工作流插件介绍

1 简介

1.1 功能介绍

在流程设计时,如果标准的设置不满足需求,可以给工作流增加扩展插件来实现更加复杂的业务逻辑,工作流的插件场景主要集中在参与人、条件规则、流程控制、节点控制、自动节点


插件支持多种扩展方式,支持Java扩展、Javascript脚本扩展、实体操作扩展等,在不同的场景下支持不同的扩展方式:


  • 参与人插件:只支持Java扩展,javaScript脚本扩展,只能定义一个;

  • 条件规则扩展:只支持Java扩展,javaScript脚本扩展,只能定义一个;

  • 流程控制扩展:可执行Java扩展,javaScript脚本扩展和实体操作,可执行多个业务扩展插件;

  • 节点控制扩展:可执行Java扩展,javaScript脚本和实体操作扩展,可执行多个业务扩展插件;

        1) 节点有多种进入方式,正常进入,驳回进入、跳转进入和计算参与人时,可在不同的细分进入方式时执行不同的插件,比如在驳回时,修改单据状态为审核不通过;

        2) 节点离开时:离开节点时执行某个业务逻辑,如果选择【离开节点时】执行,任意决策项都会执行该插件;

        3) 任务处理时执行:可以根据决策项来定义离开时要执行的业务插件,比如在审核通过后执行什么业务插件,在审核不通过后执行什么业务插件;

        4) 节点记录格式化插件:插件可修改当前节点流转记录描述的文字内容,如添加处理人职位等,在审批记录组件、查看流转图等显示修改的流转记录;工作流将原始信息传递给插件,插件返回修改结果。

  • 自动节点:可执行Java扩展,javaScript脚本扩展和实体操作,可执行多个业务扩展插件。


注意:自BOS_V5.0.002起,javaScript脚本形式插件支持传递插件参数。详见:流程插件支持参数列表

1.2 应用场景

  • 流程运行中,需要改变单据状态。


例如:会审驳回至人工节点,此过程调用撤销操作,把单据状态从“已提交”变为“暂存”;用户在消息中心-已办任务列表(或单据中撤回按钮)中撤回刚刚的撤销操作,任务从人工节点又回到会审节点,此过程调用“已提交”操作,状态从“暂存”变为“已提交”。



  • 工作流服务只负责调用单据中的“操作”,“操作”内容由单据决定;单据的状态有一定的逻辑控制,如果插件的调用逻辑与单据状态逻辑有冲突(eg:一级审批和会审节点都在同意时调用审核通过操作,但单据状态是审核通过时不允许再一次转变为审核通过),会导致插件执行失败,流转日志报“业务逻辑错误”。

1.3 系统路径

【流程服务云】→【工作流服务】→【设计中心/管理中心】→【流程设计/流程管理】→【流程控制】→【流程插件】

【流程服务云】→【工作流服务】→【设计中心/管理中心】→【流程设计/流程管理】→【人工/审批/会审设置】→【插件】

2 主要插件

2.1 工作流插件-Java插件

流程中所有的Java插件都需要实现IWorkflowPlugin接口,可以根据不同的场景调用不同的接口。插件接口中传递的参数AgentExcution为流程执行时的执行实例对象,从其中可以获取到以下信息:


  • getBusinessKey: 获取当前处理的单据ID;

  • getEntityNumber:获取当前处理的单据实体编码;

  • getCurrentTaskId:获取当前工作流任务ID,自动节点、跳过节点等不会产生任务;

  • getProcessDefinitionId:当前单据启动的流程ID;

  • getProcessInstanceId:  当前单据所启动的流程实例ID;

  • getCurrentFlowElement:  当前节点信息,可以获取节点id,编码,名称,某个属性的值;

  • getVariable:获取某个流程变量的值;

  • setVariable:设置某个流程变量的值  ;

  • getCurrentTaskResult:获取当前任务的执行结果,可以获取到决策项编码、名称、类型和审批意见;

  • getStartUserId:流程发起人ID。


2.2 工作流插件-脚本插件

流程中所有的脚本插件和Java插件类似,实现的方法和传递的参数也类似。


  • getBusinessKey: 获取当前处理的单据ID;

  • getEntityNumber:获取当前处理的单据实体编码;

  • getCurrentTaskId:获取当前工作流任务ID,自动节点、跳过节点等不会产生任务;

  • getProcessDefinitionId:当前单据启动的流程ID;

  • getProcessInstanceId:  当前单据所启动的流程实例ID;

  • getCurrentFlowElement:  当前节点信息,可以获取节点id,编码,名称,某个属性的值;

  • getVariable:获取某个流程变量的值;

  • setVariable:设置某个流程变量的值;

  • getCurrentTaskResult:获取当前任务的执行结果,可以获取到决策项编码、名称、类型和审批意见;

  • getStartUserId:流程发起人ID。



2.3 工作流插件-操作

流程中的插件也可以执行单据上的某个操作,对于自动执行节点和进入、离开节点的插件除了需要设置正向执行的插件之外,也需要设置当撤回时执行的撤回插件。



工作流插件介绍

1 简介1.1 功能介绍在流程设计时,如果标准的设置不满足需求,可以给工作流增加扩展插件来实现更加复杂的业务逻辑,工作流的插件场景主要...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息