【已下架插件文档】流程引擎插件

楼主
一头扎进书堆儿里的萌崽~

该插件目前已下架帆软市场,本文档仅提供给历史使用了该插件的客户,帆软目前不再提供该插件的任何获取渠道。

 

1. 版本

  报表服务器版本 JAR包   流程插件版本   JDK
 11.0 2020/11/08及以上 V2.0.8及以上

JDK 1.8 且小版本需在 JDK8u102 以上

2. 描述

流程引擎插件适用于偶发的,由具体人员主动发起的任务流程,支持灵活审批和动态流转,可以支撑一般的办公场景。

  • 流程图绘制:拖拽控件可视化编辑,BPMN2.0 规范

  • 流程执行:发起流程、从模板发起、定时发起

  • 流程监控:独立的待办、已办页面、审批前撤回

  • 分支结构支三种网关:互斥、并行、包容

  • 条件流转:可灵活调整流程方向

  • 会签转办:可自由设置节点处理人

而上报适用于由管理员(领导层)发起的,低级别人员填写,逐级审批,规则,周期固定的任务流程。

3. 插件安装

 

3.1 获取插件

插件无法在设计器内,以及设计器附带启动的工程中安装使用,需要独立部署,推荐使用 Tomcat 容器。

Tomcat 服务器部署好后,以管理员身份登录决策平台,在 管理系统>插件管理 下搜索「流程插件」安装;

或者前往帆软市场下载「流程插件」进行插件包本地安装,安装过程详细点击 服务器插件管理

插件目前维护中,暂不支持直接从帆软市场下载,但不影响老版本用户的更新升级。

3.2 初始配置

3.2.1 配置引擎外部数据库

1)成功安装流程引擎插件后刷新决策系统,会发现 管理系统 下多了一个 流程插件 按钮,具体情况如下图所示:

2)流程引擎需要依赖外部数据库使用。插件下载完成后,请根据实际情况配置外部数据库连接和账户密码。

点击保存按钮。

若想确保数据库配置信息的正确性,建议先把相同的配置信息在 FineReport 设计器里连接一下,确认可连接成功后再点击保存按钮,在弹出的对话框中点击确定

注1:搭配外置数据库:目前支持Mysql、SQL Server、Oracle。

注2:如果后期数据库迁移需要调整数据连接,也可以在此处修改,重启后即可生效(无需再进行下一步)。

注3:初次安装并配置数据库信息后需重启tomcat,重启后会初始化数据库信息。

此时查看刚刚配置的数据库,发现在手动重启容器的过程中,原本为空的数据库中出现了流程引擎插件自动创建的数据表。

3.2.2 挂载引擎页面

点击管理系统>目录管理,新建一个目录,选中该目录,在该目录中点击添加链接会弹出对话框,在链接路径中输入以下表格中所提供的链接,即在 「webroot」 (替换为实际的工程名)后加上对应的路径,下面的列表展示了插件提供的所有链接及对应的页面说明。

新建流程的链接为: /webroot/decision/tw/workflow/pc/build

流程引擎插件共提供六个链接

注:「webroot」为 Tomcat独立部署 时实际工程名。

下表为PC端流程引擎插件所提供的所有链接结尾:

名称 链接(结尾请注意大小写和扩展名)     说明  
创建流程图

/webroot/decision/tw/workflow/pc/create

管理员端:流程图绘制器页面,可以制作新的流程模型
部署列表

/webroot/decision/tw/workflow/pc/deploy

管理员端:对流程模型进行相关操作,比如部署/删除等
所有流程列表

/webroot/decision/tw/workflow/pc/control

管理员端:对正在执行或已经结束的流程进行管理,包括详情查看和删除

新建流程

/webroot/decision/tw/workflow/pc/build

用户端:展示所有可以发起的流程,点击连接立即发起

待办 

/webroot/decision/tw/workflow/pc/deal

用户端:所有尚未结束的流程中停留在该用户节点的列表
已办 

/webroot/decision/tw/workflow/pc/history

用户端:该用户发起的所有当前节点不是本人的流程

下表为移动端流程引擎插件所提供的所有链接结尾(支持配置到 FineMobile、企业微信、钉钉):

名称 链接(结尾请注意大小写和扩展名)     说明  

新建流程

/webroot/decision/tw/workflow/mobile/build

用户端:展示所有可以发起的流程,点击连接立即发起

待办 

/webroot/decision/tw/workflow/mobile/deal

用户端:所有尚未结束的流程中停留在该用户节点的列表
已办 

/webroot/decision/tw/workflow/mobile/history

用户端:该用户发起的所有当前节点不是本人的流程

注1:本插件需要依赖报表决策平台,暂时不能独立连接使用或直接嵌入其他系统。

注2:请用管理员身份登录 Tomcat 部署成功的决策平台,将这六个链接添加到目录下使用。

注3:不支持移动端提交流程

 

3.3 插件更新

每当合作伙伴更新功能时,流程引擎插件将会提升一次版本号,这样用户将会收到更新提示。

 

3.4 删除插件

删除流程引擎插件将会自动清除流程程序文件,请在删除插件后重启容器。请注意您的流程数据库不会被清除。

4. 创建第一个流程

 

4.1 流程绘制界面介绍

1) 布局和按钮

工具栏:提供了保存撤销,剪切复制等基本功能,并支持对齐放大等美观功能。

节点区:提供了事件,任务,网关等流程元素。

画布区:将节点拖拽到画布,再加上连接线构成最终的流程图。

属性栏:点击画布中的具体节点或连接线,此处会出现对应的属性配置项。

2)节点说明

插件当前版本支持三种类型的节点:事件任务网关

事件:用来表明流程的生命周期中发生了什么事。在 BPMN2 规范中,事件总是画成一个圆圈。

Gateway:是 BPMN2 规范中的流程定义元素,中文可称为「网关」,「决策」,「判断」。网关用来控制流程的执行流向,当在拆分路径时产生令牌,在合并路径时消费令牌。

任务:是业务流程定义的核心元素,中文可称为「活动」,「节点」,「步骤」。一个活动可以是流程中一个基本处理单元。

 

4.2 简单的一级和多级审批

4.2.1 开始节点

流程总是需要一个开始节点,在简单的一级和多级审批中,采用「开始事件」作为开始节点。将节点区中的「开始事件」拖拽到画布区中,如下图所示:

观察下方的属性栏,「名称」一栏可以为当前节点添加备注,点击「请填写」,将自动展开一个文本框,支持键入中文,文本框中输入的内容会展现在画布区该节点的周围,如下图所示:

绝大部分节点元素和连接线都支持添加名称,名称显示的位置略有不同,如下图所示:

节点名称会出现在「任务列表」中标明流程当前的状态,如果没有配置名称,就会出现如下图所示的提醒:



4.2.2 用户任务

用户任务是最为常用的流程节点,用来表示业务流程中由人参与完成的工作。当引擎处理到该节点时,给指定的用户(参与者)或者一组用户(如部门、角色)创建待处理的任务项,等待用户的处理。在当前的流程绘制器中,除了手动拖拽用户任务节点到画布之外,还有一种方式创建用户任务。

首先选中之前创建的开始节点,然后在其附近出现的快捷工具箱中点击用户任务的小 ICON,如下图所示,即可生成用户任务并自动与开始节点相连接。

如果采用直接拖拽的形式添加了用户任务,还需要为两个节点之间添加连接线:按住下图所示的连接线标志,拖拽到用户任务节点上,直到节点周围出现绿色标记松开鼠标,即可创建连接线。

在复杂的流程结构中,经常会出现需要手工操作连接线的情况。鼠标移动到连接线上,连接线两端会出现可以操作的绿色原点,按住绿点不放拖拽到其他节点可以让连接线连接的对象改变。

用户任务的属性部分比较复杂,这里只介绍基础的审批过程中会用到的一些。

首先是「分配用户」,分配用户指的是该用户任务节点需要谁来完成,点击「添加办理人」后的请选择办理人会弹出一个分配用户的对话框。

在办理人中可以添加用户名以指定流转到对应的用户(比如 Lily)。

注:开始节点后紧跟的第一个用户任务节点, 是发起人节点,必须要填写一个公式,该公式要求指定一个变量名来保存发起人用户名信息,公式语法:${变量名称} 例如 ${people},如下图所示:

如果第一个节点没有放置参数${people},将导致后续流程部署后创建流程为空白,不能出现发起流程。

这个变量可以利用到后面的流程中,比如再新建一个用户任务节点,给新节点分配用户的时候,依然填写 ${people},这样就建立了一个自己审核自己的流程。

当然通常情况下,需要设置一个不一样的人员来审核发起人提交的信息。除了直接填写一个 Lily,还可以在下面的用户树当中选择。

如果流程中需要多个节点,添加多个用户任务并指定相应的审核人员即可。在这里我们用两个审核节点做为示范。

其次是「表单编号属性」,表单编号实际上就是每个节点所要挂载的 cpt 路径,点击后面的请填写会弹出对话框,打开一个文件树,用户选择对应的模板即可。

不同的节点支持挂载不同的模板,比如某些情况下,填报人和审批人需要看到不同的模板,或者需要多个填报人填报不同模板的数据。

注流程引擎提供了一个参数帮助用户主动管理填报上来的数据,即 「requestid」。每当流程执行的时候,都会生成一个唯一的 「requestid」。可以在数据连接中使用这种方式来过滤每条流程所能看到的数据。(具体使用方法详见流程插件示例

例如: select * from qingjia where id ='${requestid}'

注:插件目前只支持挂载 cpt 模板,使用老填报预览,不能使用表单。必须设置模板填报属性,支持数据校验。

4.2.3 退回

既然有审核操作,则会产生「通过」和「退回」两种选项。「通过」则进行正常流转无需其他操作,本插件在用户任务中自带支持退回的功能,不需要画额外的连接线。

点击「审核节点2」,在属性栏中找到「是否能退回」,勾选即可。

这样任务在执行过程中就会出现「退回按钮」,插件支持越级回退,点击的弹出框中可以指定要退回到哪个节点并且可以添加退回备注。

4.2.4 按钮名称

请注意上一节截图中的按钮,提交,保存和驳回,有些时候不能恰当的表述个性化流程中的实际操作,比如「提交」实际上应该是「审核」。

此时就可以在用户任务属性栏中找到「提交按钮名称」和「退回按钮名称」这两项,点击后面的「请填写」会出现类似「名称」的文本框,键入即可替换默认的按钮文字,支持中文。

4.2.5 结束节点

流程有始有终,在两个审核节点之后,如果没有回退,任务就应该结束了,此时如图点击工具箱中的结束事件 ICON 即可自动生成结束事件并与该节点相连接。

当然也可以手动拖拽结束事件到画布中来,并自行添加连接线。如下图所示就是一个完整的二级审批流程。

 

4.3 节点自动流转

1) 一般自动流转

该属性只适应于「添加办理人」栏位中的单任务办理人,「抢占式」与「会签」不适用走到该节点系统会自动办理,但不会触发模板提交事件。

找到用户任务属性栏中的「是否自动流转」勾选即可生效。

2)二次默认通过

通常和退回搭配使用,比如两级审核,第一级已经通过,第二级驳回了申请,跨级回退到了申请人。申请人修改申请后,使用二次默认通过功能,任务就会自动跳过第一级审核人,提高了效率。

在用户任务属性栏中找到「第一次通过,下次默认通过」勾选即可生效。

 

4.4 指定处理人的流程

比如在一个通用的功能迭代任务流程中,任务流转到研发小组长,需要小组长来手动分配具体的研发来开发这个功能,这个人是无法在流程中事先指定的,具有比较高的灵活性。插件支持这种场景。首先我们在研发小组长的节点属性栏中找到「下个任务节点办理人」,在后面的文本框中输入某个单元格值,比如 B8,引擎执行到这里的时候将会解析此节点对应挂载 cpt 模板的 B8 单元格,将 B8 单元格的值保存到引擎中。在设计实践中,通常 B8 单元格会是一个下拉菜单控件,里面包含了研发组员列表。

在后续的研发组员的节点属性栏中找到「添加办理人」,在办理人栏中填入 ${B8} 即可。(类似于开始节点中${people}的变量引用)

目前只支持用单元格控件填报传参,插件目前只能获取到单元格的值

 

4.5 候选、会签与转办

4.5.1 候选(抢占式办理)

在「添加办理人」的时候,我们会发现对话框中还提供了输入「候选人」的地方,这里可以指定多个办理人,每个办理人都可以收到任务,但是只要其中一个完成审批,那么其他人就看不见任务了,相当于组任务。比如财务部门的发票报销审核处理等。这个不同于会签。请注意使用候选功能处理抢占式场景时,保持「办理人」一栏为


4.5.2 会签(多用户同时办理)

有时候一个节点需要多个用户同时确认才能往下流转,会签就提供了这样的功能。首先在节点属性栏中找到「节点类型」一项。引擎提供了两种模式,「parallel」模式表示所有的会签人都能同时收到待办,「sequenial」表示会签人会接连收到待办。

然后,在节点属性栏中找到「添加会签人」属性,点击后面的请填写会弹出添加会签人对话框,在这里可以勾选多个会签用户。

4.5.3 加签——增加会签参与人

在特定流程中的某些审批项可能不仅是办理人可以独立处理的,比如预算审批不仅需要主管领导还需要财务部门负责人,需要灵活指定加签人。

在确认正确选择「节点类型」一项之后,找到「是否加签」一项并勾选。

此时,该节点的流程详情页右下角会增加一个加签的按钮,点击之后会弹出人员选择框,可以添加新的会签人。

4.5.4 转办——移交处理人

有这样的场景:部长有事,某个审批任务可以暂时交由副部长处理。这时候就需要转办功能。在节点属性栏中找到「是否允许转办」属性,勾选即可。流程执行过程中会出现转办按钮,点击会弹出用户列表,选择一个用户即可将任务移交给对方。

 

4.6 三种网关类型(动态流转)

4.6.1 互斥网关

互斥网关定义了一组分支的唯一决策,所有流出的分支被按顺序评估,第一个条件被评估为 True (当多个条件为true时,第一个决策被执行)的分支被执行,并且不再继续评估下面的分支。如果所有分支条件决策都为 False 且该网关定义了一个默认的连线,那么该默认分支将被执行。如果没有可到达的分支,抛出异常,该网关所处的分支被中断,在流程建模设计上应避免这种情况发生。互斥网关有分支和合并两种行为,允许一进一出。

下图给出一个排他网关的示例。网关 A 评估后继三个分支,如果变量 Var1 等于 1 执行 Service1 路径,如果变量 Var1 等于 2 执行 Service3 路径,如果都不通过执行 Service2 路径;如果 Service1 或 Service2 被执行,网关 B 做路径合并,后继 Service4 路径被执行,流程结束;如果Service3 被执行,流程结束。

可以通过拖拽或者点击工具箱 ICON 来创建互斥网关。

选择一条连接线,在下面的属性栏中找到「条件」,即可为该连接线添加判断条件,条件应该是一个输出值为布尔值的帆软公式,例如B8>7   ,引擎将会基于网关前的用户任务挂载的 cpt 模板计算该公式的结果。例如一个请假流程中,如果填报的时长超过一周,就需要人事经理来审批而不仅仅是部门领导。

注1:条件并不是写在网关,而是写在连接线上。

注2:「默认流」功能暂时无效,请勿勾选。

4.6.2 并行网关

并行网关用于无条件的拆分或合并分支,该类网关对连线条件是忽略的。并行网关有分支和合并两种行为,允许多进多出。

下图给出一个并行网关的示例。网关 A 拆分了三个分支,Service1 和 Service2 执行完毕后被网关 B 合并继续执行 Service4;网关 C 等待Service4 和 Service3 执行完毕后,流程结束。

注:引擎执行并行分支时,同一时刻只执行一个路径直至该路径被中断或结束,然后再依次执行完剩余的路径,而不是在同一时刻同时执行 Service1,Service2 和 Service3 路径。



4.6.3 包容性网关

包容网关是排他网关和并行网关的综合体。当进行决策判断时,与排他网关所不同的是,所有条件为 True 的后继分支都会被依次执行,如果所有分支条件决策都为 False 且该网关定义了一个默认的连线,那么该默认分支将被执行。如果没有可到达的分支,抛出异常,该网关所处的分支被中断,在流程设计上应避免这种情况发生。包容网关有分支和合并两种行为,允许多进多出。

下图给出一个包容网关的示例。网关 A 评估后继三个分支,如果变量 str1 等于 a 执行 Service1 路径,如果变量 str2 等于 b 执行 Service2 路径,如果变量 str3 等于 c 执行 Service3 路径;网关 B 做路径合并,流程结束。




4.6.4 最佳实践——巧用 FR 公式灵活流转

还可以利用 FR 公式中丰富的扩展函数来实现更加灵活的流转。

公式 场景

AND(B1>2,C15=10000)  以及类似的逻辑类函数

合并多个条件等

搭配互斥网关的随机函数 RANDBETWEEN(-1,1)=1

随机流转

2008-08-08>TODAY()  等日期时间类函数

在某个特定时间流转到特定人

SQL('dev','select * from ww',1,1)=1 等数据库类函数

访问异构系统数据信息辅助流转

$fine_username='admin'

支持使用参数

4.7 两种定时事件

待补充

 

4.8 服务任务和邮件任务

待补充

5. 部署流程模型

 

5.1 流程分类管理

进入「部署列表」页面,通过设置多个分类方便用户快速找到对应的流程。点击新增按钮可以增加一个分类,在分类名称列中输入类名并点击保存。

 

5.2 部署流程模型

流程图绘制完毕后点击左上角的保存按钮,在弹出的对话框中输入模型的名称,并选择之前在「流程分类管理」里设置好的分类点击保存并退出按钮。

进入「模型列表」页面,找到刚刚保存的流程模型,点击部署按钮,部署成功按钮会变成「已部署」,用户就可以在「新建流程」页面找到刚刚绘制的流程。

还可以为流程模型设置访问权限,即只有选定的人才能发起对应的流程,进入到「部署列表」页面,点击对应模型的设置权限按钮。在弹出的对话框中勾选相应的对象给予流程发起权限,支持选择「部门-岗位-人员」或者「角色-人员」,点击确定即可生效。

为了方便权限的复用和管理,插件提供流程权限导入导出的功能,点击保存权限超链可以将当前的权限用一个别称保存下来。

其他流程导入权限时可以快速应用。

 

6. 流程执行与监控

 

6.1 发起流程

用户进入「新建流程」页面将会看到所有已经部署好的流程,根据流程图保存时选择的分类分开排布。

点击一个流程名称即可发起该流程。进入流程详情页面。

注:如果该流程不被部署,任务是不会真正创建的。

还可以在其他普通的模板中发起一个流程,只需要写简单的 JS 把下面的字符串拼接成 URL 并在新 Tab 页打开即可,注意需要在平台内打开。

JS 写法格式如下:

 

processInfo/authority?depid=depid&proname=encodeURI(name)&processDefinitionID=processDefinitionID&userName=userName

完整的 JS 实例如下:

window.parent.FS.tabPane.addItem({
    title: "技术问题反馈",
    src: "http://localhost:8080/webroot/processInfo/authority?depid=5006&proname=encodeURI(流程图)&processDefinitionID=process:1:5009&userName=admin"
})

JS 发起流程有三个关于流程的参数,参数值可以在流程表 act_re_procdef 里查询到,参数说明如下表所示:

公式   场景  
depid 需要流程部署id
name 流程名称
processDefinitionID 流程定义id

 

6.2 待办和已办

6.2.1 待办系统消息提醒

当某个流程流转到当前用户节点时,会在右下角弹出提醒,提示用户处理特定流程的待办事务,点击处理超链接则可以主动跳转到对应的流程详情页面。

如果当前用户不在线,则在用户下一次登录时弹出提示框。

同其他系统消息类似,还可以在右上角登录用户旁边的铃铛看到消息提醒,点击可以进入对应的流程详情页面。

或者查看全部消息可以在系统消息列表中,看到所有类似的消息提醒。同样,点击后面的「处理」超链接可以直接进入对应的流程详情页面。

6.2.2 待办页面

「待办页面」显示所有尚未结束的流程中停留在该用户节点的列表。包括「待办任务列表」和「待办保存列表」。

点击操作列中的办理可以跳转到对应的任务。

流转回发起人的待办可由发起人自行删除。

6.2.3 已申请和已办理

「已申请」页面显示该用户发起的所有流程,可以执行详情或撤回操作。

「已办理」页面显示当前用户参与过的流程,可以执行详情操作。

「详情」操作将会打开一个类似的流程详情页面,显示流程内容流程图审批意见,但是用户将没有对应的操作权限。

 

6.3 撤回和保存

用户新建流程之后,需要修改,可以在下个环节处理前点击「已办」页面对应流程的撤回按钮。

该操作将会把这个任务恢复到流程发起之初,用户可以在「待办」列表中找到该任务,并重新办理。

原本已办页面中的操作项将会变成「详情」和「删除」,删除操作将会直接关闭这个任务。

此外,某些流程处理环节可能比较复杂,无法一次性完成,所以流程引擎提供了保存的功能来存储当前的工作状态(填报暂存)。点击流程节点任务页面右下角的保存按钮,保存后的流程可以在待办保存列表中找到。

 

 

6.4 审批意见

流程详情页的下方可以提交意见,并添加有关附件,所有环节的意见都会按照顺序显示在下面的批注信息中。

可以在绘制流程图的时候,指定是否需要某个用户任务节点强制填写意见。如果勾选了该项,用户未填意见时系统会弹框提示,流程无法流转。

注:填写的意见数据是存在流程插件配置的数据库中的

 

6.5 流程图

进入流程详情页面,点击流程图,可以看到该流程对应的流程图,并可以直观的看到流程的进展情况。

 

6.6 管理员管控流程执行

进入「所有流程列表」页面,可以看到所有进行中或者已经完成的流程,管理员可以随时删除终止正在运行的流程,或者点击详情链接查看所有流程的具体进展。

到这里流程插件的说明已讲解完毕,具体示例请点击流程插件示例

 

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 1关注人数 1488浏览人数
最后回复于:2024-6-17 09:27

返回顶部 返回列表