流程插件

  • 文档创建者:susie
  • 编辑次数:37次
  • 最近更新:Carly 于 2021-02-20
  • 1. 版本

      报表服务器版本JAR包  流程插件版本  JDK
     10.0  2018-12-27及以上V1.0.8  1.8

    2. 描述

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

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

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

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

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

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

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

    222

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

    3. 插件安装

    3.1 获取插件

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

    Tomcat 服务器部署好后,以管理员身份登录决策平台,在 管理系统>插件管理 下搜索「流程引擎」安装;或者前往 帆软市场 下载「流程引擎」进行插件包本地安装,安装过程详细点击 服务器插件管理。流程引擎插件将会从合作伙伴的服务器上下载程序文件,解压并释放到 FineReport 中对应的目录,请保持外网访问。

    注:若在本地设计器内直接安装流程引擎插件,将会出现如下所示的报错:

    22.png

    3.2 初始配置

    3.2.1 配置引擎外部数据库

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

    如果「下载服务」下的按钮灰化并显示「文件下载中」的话,请等待插件更新数据。

    6.png

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

    2.png

    点击保存按钮。

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

    11.png

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

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

    3)保存数据库配置成功后,系统会弹出顶部提示,先不要重启容器,点击「安装服务」下的安装服务按钮,在弹出的对话框中点击确认。

    12.png

    等待安装完成顶部出现类似提示信息后,手动重启容器,启动完成后以管理员身份登录决策系统,此时在管理系统>系统管理>流程引擎 页面可发现,安装服务下的按钮已变为「服务已安装」,且为灰色禁用状态。

    13.png

    注:初次安装重启后自动创建相关表结构。

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

    14.png

    3.2.2 挂载引擎页面

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

    31.png

    创建流程图的链接为:http://localhost:8080/webroot/processDiagram/create

    流程引擎插件共提供六个链接,其中每个链接的「链接路径」格式为:http://localhost:8080/webroot/具体链接结尾

    注:「8080」为实际端口号,「webroot」为 Tomcat独立部署 时实际工程名。

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

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

    /processDiagram/create

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

    /static/jsp/adminjsp/proDeployInfo.jsp

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

    /static/jsp/adminjsp/control.jsp

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

    新建流程

    /static/jsp/frontEnd/startProcess.jsp

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

    待办 

    /static/jsp/frontEnd/daibanTask.jsp

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

    /static/jsp/frontEnd/selHisProcess.jsp

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

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

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

    新建流程

    /static/jsp/mobile/workflowListMobile.jsp 

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

    待办 

    /static/jsp/mobile/daibanListMobile.jsp

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

    /static/jsp/mobile/yibanListMobile.jsp

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

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

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

    3.3 插件更新

    每当合作伙伴更新功能时,流程引擎插件将会提升一次版本号,这样用户将会收到更新提示。升级流程引擎插件将会从合作伙伴的服务器下载最新的程序文件,请保持外网访问。用户需要进入“流程引擎”界面,等待下载完成后点击第三项的“安装服务”按钮,等待重启提示出现后重启容器即可,插件将会自动覆盖相应的文件以实现更新。

    3.4 删除插件

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

    4. 创建第一个流程

    4.1 流程绘制界面介绍

    1) 布局和按钮

    44.png

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

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

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

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

    2)节点说明

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

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

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

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

    4.2 简单的一级和多级审批

    4.2.1 开始节点

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

    2.png

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

    1.gif

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

    3.png

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

    32.png

    4.2.2 用户任务

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

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

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

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

    4.gif

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

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

    5.png

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

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

    6.png

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

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

    21.gif

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

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

    01.gif

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

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

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

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

    4.2.3 退回

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

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

    02.png

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

    04.png

    4.2.4 按钮名称

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

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

    11.png
    4.2.5 结束节点

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

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

    12.gif

    4.3 节点自动流转

    1) 一般自动流转

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

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

    06.png

    2)二次默认通过

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

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

    08.png

    4.4 指定处理人的流程

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

    09.png

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

    4.5 候选、会签与转办

    4.5.1 候选(抢占式办理)

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

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

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

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

    33.gif

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

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

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

    111.png

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

    112.png

    4.5.4 转办——移交处理人

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

    11.png

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

    4.6.1 互斥网关

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

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

    1570612446364583.png

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

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

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

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

    117.png

    4.6.2 并行网关

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

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

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


    图片3.png

    4.6.3 包容性网关

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

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



    图片4.png

    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 流程分类管理

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

    126.png

    5.2 部署流程模型

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

    128.png

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

    129.png

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

    133.gif

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

    150.png

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

    152.png

    6. 流程执行与监控

    6.1 发起流程

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

    160.png

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

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

    还可以在其他普通的模板中发起一个流程,只需要写简单的 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 待办系统消息提醒

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

    170.png

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

    1.png

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

    64.png

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

    323.png

    6.2.2 待办页面

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

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

    170.png

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

    6.2.3 已申请和已办理

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

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

    8.png

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

    172.png

    6.3 撤回和保存

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

    178.png

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

    180.png

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

    181.png

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

    190.png

    185.png

    6.4 审批意见

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

    193.png

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

    200.png

    6.5 流程图

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

    6.6 管理员管控流程执行

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

    199.png

    7. 注意事项

    7.1 注意事项一

    描述:流程引擎都安装后,添加了创建流程图页面 processDiagram/create出现空白,如下图所示:

    2.jpg

    原因:用户部署之后改了工程名,把 webroot 改成了其他名字。

    解决方案:请在 webroot\editor-app 下找到 app-cfg.js 文件,如图所示编辑箭头指向的文字,把 webroot 改为正确的工程名。然后清除浏览器缓存,刷新页面就可以了。

    解决方案.png

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

    附件列表


    主题: 数据决策系统
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!