反饋已提交
網絡繁忙
流程引擎插件适用于偶发的,由具体人员主动发起的任务流程,支持灵活审批和动态流转,可以支撑一般的办公场景。
流程图绘制:拖拽控件可视化编辑,BPMN2.0 规范
流程执行:发起流程、从模板发起、定时发起
流程监控:独立的待办、已办页面、审批前撤回
分支结构支三种网关:互斥、并行、包容
条件流转:可灵活调整流程方向
会签转办:可自由设置节点处理人
而上报适用于由管理员(领导层)发起的,低级别人员填写,逐级审批,规则,周期固定的任务流程。
插件无法在设计器内,以及设计器附带启动的工程中安装使用,需要独立部署,推荐使用 Tomcat 容器。
Tomcat 服务器部署好后,以管理员身份登录决策平台,在 管理系统>插件管理 下搜索「流程引擎」安装;或者前往 帆软市场 下载「流程引擎」进行插件包本地安装,安装过程详细点击 服务器插件管理。流程引擎插件将会从合作伙伴的服务器上下载程序文件,解压并释放到 FineReport 中对应的目录,请保持外网访问。
注:若在本地设计器内直接安装流程引擎插件,将会出现如下所示的报错:
1)成功安装流程引擎插件后刷新决策系统,会发现 管理系统>系统管理 下多了一个 流程引擎 页面,具体情况如下图所示:
如果「下载服务」下的按钮灰化并显示「文件下载中」的话,请等待插件更新数据。
2)流程引擎需要依赖外部数据库使用。插件下载完成后,请根据实际情况配置外部数据库连接和账户密码。
点击保存按钮。
若想确保数据库配置信息的正确性,建议先把相同的配置信息在 FineReport 设计器里连接一下,确认可连接成功后再点击保存按钮,在弹出的对话框中点击确定。
注1:搭配外置数据库:目前支持Mysql、SQL Server、Oracle。
注2:如果后期数据库迁移需要调整数据连接,也可以在此处修改,重启后即可生效(无需再进行下一步)。
3)保存数据库配置成功后,系统会弹出顶部提示,先不要重启容器,点击「安装服务」下的安装服务按钮,在弹出的对话框中点击确认。
等待安装完成顶部出现类似提示信息后,手动重启容器,启动完成后以管理员身份登录决策系统,此时在管理系统>系统管理>流程引擎 页面可发现,安装服务下的按钮已变为「服务已安装」,且为灰色禁用状态。
注:初次安装重启后自动创建相关表结构。
此时查看刚刚配置的数据库,发现在手动重启容器的过程中,原本为空的数据库中出现了流程引擎插件自动创建的数据表。
点击管理系统>目录管理,新建一个目录,选中该目录,在该目录中点击添加链接会弹出对话框,在链接路径中输入以下表格中所提供的链接,即在 「webroot」 (替换为实际的工程名)后加上对应的路径,下面的列表展示了插件提供的所有链接及对应的页面说明。
创建流程图的链接为: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 部署成功的决策平台,将这六个链接添加到目录下使用。
每当合作伙伴更新功能时,流程引擎插件将会提升一次版本号,这样用户将会收到更新提示。升级流程引擎插件将会从合作伙伴的服务器下载最新的程序文件,请保持外网访问。用户需要进入“流程引擎”界面,等待下载完成后点击第三项的“安装服务”按钮,等待重启提示出现后重启容器即可,插件将会自动覆盖相应的文件以实现更新。
删除流程引擎插件将会自动清除流程程序文件,请在删除插件后重启容器。请注意您的流程数据库不会被清除。
1) 布局和按钮
工具栏:提供了保存撤销,剪切复制等基本功能,并支持对齐放大等美观功能。
节点区:提供了事件,任务,网关等流程元素。
画布区:将节点拖拽到画布,再加上连接线构成最终的流程图。
属性栏:点击画布中的具体节点或连接线,此处会出现对应的属性配置项。
2)节点说明
插件当前版本支持三种类型的节点:事件,任务,网关。
事件:用来表明流程的生命周期中发生了什么事。在 BPMN2 规范中,事件总是画成一个圆圈。
Gateway:是 BPMN2 规范中的流程定义元素,中文可称为「网关」,「决策」,「判断」。网关用来控制流程的执行流向,当在拆分路径时产生令牌,在合并路径时消费令牌。
任务:是业务流程定义的核心元素,中文可称为「活动」,「节点」,「步骤」。一个活动可以是流程中一个基本处理单元。
流程总是需要一个开始节点,在简单的一级和多级审批中,采用「开始事件」作为开始节点。将节点区中的「开始事件」拖拽到画布区中,如下图所示:
观察下方的属性栏,「名称」一栏可以为当前节点添加备注,点击「请填写」,将自动展开一个文本框,支持键入中文,文本框中输入的内容会展现在画布区该节点的周围,如下图所示:
绝大部分节点元素和连接线都支持添加名称,名称显示的位置略有不同,如下图所示:
节点名称会出现在「任务列表」中标明流程当前的状态,如果没有配置名称,就会出现如下图所示的提醒:
用户任务是最为常用的流程节点,用来表示业务流程中由人参与完成的工作。当引擎处理到该节点时,给指定的用户(参与者)或者一组用户(如部门、角色)创建待处理的任务项,等待用户的处理。在当前的流程绘制器中,除了手动拖拽用户任务节点到画布之外,还有一种方式创建用户任务。
首先选中之前创建的开始节点,然后在其附近出现的快捷工具箱中点击用户任务的小 ICON,如下图所示,即可生成用户任务并自动与开始节点相连接。
如果采用直接拖拽的形式添加了用户任务,还需要为两个节点之间添加连接线:按住下图所示的连接线标志,拖拽到用户任务节点上,直到节点周围出现绿色标记松开鼠标,即可创建连接线。
在复杂的流程结构中,经常会出现需要手工操作连接线的情况。鼠标移动到连接线上,连接线两端会出现可以操作的绿色原点,按住绿点不放拖拽到其他节点可以让连接线连接的对象改变。
用户任务的属性部分比较复杂,这里只介绍基础的审批过程中会用到的一些。
首先是「分配用户」,分配用户指的是该用户任务节点需要谁来完成,点击「添加办理人」后的请选择办理人会弹出一个分配用户的对话框。
在办理人中可以添加用户名以指定流转到对应的用户(比如 Lily)。
注:开始节点后紧跟的第一个用户任务节点, 是发起人节点,必须要填写一个公式,该公式要求指定一个变量名来保存发起人用户名信息,公式语法:${变量名称} 例如 ${people},如下图所示:
这个变量可以利用到后面的流程中,比如再新建一个用户任务节点,给新节点分配用户的时候,依然填写 ${people},这样就建立了一个自己审核自己的流程。
当然通常情况下,需要设置一个不一样的人员来审核发起人提交的信息。除了直接填写一个 Lily,还可以在下面的用户树当中选择。
如果流程中需要多个节点,添加多个用户任务并指定相应的审核人员即可。在这里我们用两个审核节点做为示范。
其次是「表单编号属性」,表单编号实际上就是每个节点所要挂载的 cpt 路径,点击后面的请填写会弹出对话框,打开一个文件树,用户选择对应的模板即可。
不同的节点支持挂载不同的模板,比如某些情况下,填报人和审批人需要看到不同的模板,或者需要多个填报人填报不同模板的数据。
注流程引擎提供了一个参数帮助用户主动管理填报上来的数据,即 「requestid」。每当流程执行的时候,都会生成一个唯一的 「requestid」。可以在数据连接中使用这种方式来过滤每条流程所能看到的数据。(具体使用方法详见流程插件示例)
例如: select * from qingjia where id ='${requestid}'
注:插件目前只支持挂载 cpt 模板,使用老填报预览,不能使用表单。必须设置模板填报属性,支持数据校验。
既然有审核操作,则会产生「通过」和「退回」两种选项。「通过」则进行正常流转无需其他操作,本插件在用户任务中自带支持退回的功能,不需要画额外的连接线。
点击「审核节点2」,在属性栏中找到「是否能退回」,勾选即可。
这样任务在执行过程中就会出现「退回按钮」,插件支持越级回退,点击的弹出框中可以指定要退回到哪个节点并且可以添加退回备注。
请注意上一节截图中的按钮,提交,保存和驳回,有些时候不能恰当的表述个性化流程中的实际操作,比如「提交」实际上应该是「审核」。
此时就可以在用户任务属性栏中找到「提交按钮名称」和「退回按钮名称」这两项,点击后面的「请填写」会出现类似「名称」的文本框,键入即可替换默认的按钮文字,支持中文。
流程有始有终,在两个审核节点之后,如果没有回退,任务就应该结束了,此时如图点击工具箱中的结束事件 ICON 即可自动生成结束事件并与该节点相连接。
当然也可以手动拖拽结束事件到画布中来,并自行添加连接线。如下图所示就是一个完整的二级审批流程。
1) 一般自动流转
该属性只适应于「添加办理人」栏位中的单任务办理人,「抢占式」与「会签」不适用走到该节点系统会自动办理,但不会触发模板提交事件。
找到用户任务属性栏中的「是否自动流转」勾选即可生效。
2)二次默认通过
通常和退回搭配使用,比如两级审核,第一级已经通过,第二级驳回了申请,跨级回退到了申请人。申请人修改申请后,使用二次默认通过功能,任务就会自动跳过第一级审核人,提高了效率。
在用户任务属性栏中找到「第一次通过,下次默认通过」勾选即可生效。
比如在一个通用的功能迭代任务流程中,任务流转到研发小组长,需要小组长来手动分配具体的研发来开发这个功能,这个人是无法在流程中事先指定的,具有比较高的灵活性。插件支持这种场景。首先我们在研发小组长的节点属性栏中找到「下个任务节点办理人」,在后面的文本框中输入某个单元格值,比如 B8,引擎执行到这里的时候将会解析此节点对应挂载 cpt 模板的 B8 单元格,将 B8 单元格的值保存到引擎中。在设计实践中,通常 B8 单元格会是一个下拉菜单控件,里面包含了研发组员列表。
在后续的研发组员的节点属性栏中找到「添加办理人」,在办理人栏中填入 ${B8} 即可。(类似于开始节点中${people}的变量引用)
在「添加办理人」的时候,我们会发现对话框中还提供了输入「候选人」的地方,这里可以指定多个办理人,每个办理人都可以收到任务,但是只要其中一个完成审批,那么其他人就看不见任务了,相当于组任务。比如财务部门的发票报销审核处理等。这个不同于会签。请注意使用候选功能处理抢占式场景时,保持「办理人」一栏为空。
有时候一个节点需要多个用户同时确认才能往下流转,会签就提供了这样的功能。首先在节点属性栏中找到「节点类型」一项。引擎提供了两种模式,「parallel」模式表示所有的会签人都能同时收到待办,「sequenial」表示会签人会接连收到待办。
然后,在节点属性栏中找到「添加会签人」属性,点击后面的请填写会弹出添加会签人对话框,在这里可以勾选多个会签用户。
在特定流程中的某些审批项可能不仅是办理人可以独立处理的,比如预算审批不仅需要主管领导还需要财务部门负责人,需要灵活指定加签人。
在确认正确选择「节点类型」一项之后,找到「是否加签」一项并勾选。
此时,该节点的流程详情页右下角会增加一个加签的按钮,点击之后会弹出人员选择框,可以添加新的会签人。
有这样的场景:部长有事,某个审批任务可以暂时交由副部长处理。这时候就需要转办功能。在节点属性栏中找到「是否允许转办」属性,勾选即可。流程执行过程中会出现转办按钮,点击会弹出用户列表,选择一个用户即可将任务移交给对方。
互斥网关定义了一组分支的唯一决策,所有流出的分支被按顺序评估,第一个条件被评估为 True (当多个条件为true时,第一个决策被执行)的分支被执行,并且不再继续评估下面的分支。如果所有分支条件决策都为 False 且该网关定义了一个默认的连线,那么该默认分支将被执行。如果没有可到达的分支,抛出异常,该网关所处的分支被中断,在流程建模设计上应避免这种情况发生。互斥网关有分支和合并两种行为,允许一进一出。
下图给出一个排他网关的示例。网关 A 评估后继三个分支,如果变量 Var1 等于 1 执行 Service1 路径,如果变量 Var1 等于 2 执行 Service3 路径,如果都不通过执行 Service2 路径;如果 Service1 或 Service2 被执行,网关 B 做路径合并,后继 Service4 路径被执行,流程结束;如果Service3 被执行,流程结束。
可以通过拖拽或者点击工具箱 ICON 来创建互斥网关。
选择一条连接线,在下面的属性栏中找到「条件」,即可为该连接线添加判断条件,条件应该是一个输出值为布尔值的帆软公式,例如 B8>7 ,引擎将会基于网关前的用户任务挂载的 cpt 模板计算该公式的结果。例如一个请假流程中,如果填报的时长超过一周,就需要人事经理来审批而不仅仅是部门领导。
注1:条件并不是写在网关,而是写在连接线上。
注2:「默认流」功能暂时无效,请勿勾选。
并行网关用于无条件的拆分或合并分支,该类网关对连线条件是忽略的。并行网关有分支和合并两种行为,允许多进多出。
下图给出一个并行网关的示例。网关 A 拆分了三个分支,Service1 和 Service2 执行完毕后被网关 B 合并继续执行 Service4;网关 C 等待Service4 和 Service3 执行完毕后,流程结束。
注:引擎执行并行分支时,同一时刻只执行一个路径直至该路径被中断或结束,然后再依次执行完剩余的路径,而不是在同一时刻同时执行 Service1,Service2 和 Service3 路径。
包容网关是排他网关和并行网关的综合体。当进行决策判断时,与排他网关所不同的是,所有条件为 True 的后继分支都会被依次执行,如果所有分支条件决策都为 False 且该网关定义了一个默认的连线,那么该默认分支将被执行。如果没有可到达的分支,抛出异常,该网关所处的分支被中断,在流程设计上应避免这种情况发生。包容网关有分支和合并两种行为,允许多进多出。
下图给出一个包容网关的示例。网关 A 评估后继三个分支,如果变量 str1 等于 a 执行 Service1 路径,如果变量 str2 等于 b 执行 Service2 路径,如果变量 str3 等于 c 执行 Service3 路径;网关 B 做路径合并,流程结束。
还可以利用 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 两种定时事件
待补充
进入「部署列表」页面,通过设置多个分类方便用户快速找到对应的流程。点击新增按钮可以增加一个分类,在分类名称列中输入类名并点击保存。
流程图绘制完毕后点击左上角的保存按钮,在弹出的对话框中输入模型的名称,并选择之前在「流程分类管理」里设置好的分类点击保存并退出按钮。
进入「模型列表」页面,找到刚刚保存的流程模型,点击部署按钮,部署成功按钮会变成「已部署」,用户就可以在「新建流程」页面找到刚刚绘制的流程。
还可以为流程模型设置访问权限,即只有选定的人才能发起对应的流程,进入到「部署列表」页面,点击对应模型的设置权限按钮。在弹出的对话框中勾选相应的对象给予流程发起权限,支持选择「部门-岗位-人员」或者「角色-人员」,点击确定即可生效。
为了方便权限的复用和管理,插件提供流程权限导入导出的功能,点击保存权限超链可以将当前的权限用一个别称保存下来。
其他流程导入权限时可以快速应用。
用户进入「新建流程」页面将会看到所有已经部署好的流程,根据流程图保存时选择的分类分开排布。
点击一个流程名称即可发起该流程。进入流程详情页面。
注:如果该流程不被部署,任务是不会真正创建的。
还可以在其他普通的模板中发起一个流程,只需要写简单的 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 里查询到,参数说明如下表所示:
当某个流程流转到当前用户节点时,会在右下角弹出提醒,提示用户处理特定流程的待办事务,点击处理超链接则可以主动跳转到对应的流程详情页面。
如果当前用户不在线,则在用户下一次登录时弹出提示框。
同其他系统消息类似,还可以在右上角登录用户旁边的铃铛看到消息提醒,点击可以进入对应的流程详情页面。
或者查看全部消息可以在系统消息列表中,看到所有类似的消息提醒。同样,点击后面的「处理」超链接可以直接进入对应的流程详情页面。
「待办页面」显示所有尚未结束的流程中停留在该用户节点的列表。包括「待办任务列表」和「待办保存列表」。
点击操作列中的办理可以跳转到对应的任务。
流转回发起人的待办可由发起人自行删除。
「已申请」页面显示该用户发起的所有流程,可以执行详情或撤回操作。
「已办理」页面显示当前用户参与过的流程,可以执行详情操作。
「详情」操作将会打开一个类似的流程详情页面,显示流程内容,流程图和审批意见,但是用户将没有对应的操作权限。
用户新建流程之后,需要修改,可以在下个环节处理前点击「已办」页面对应流程的撤回按钮。
该操作将会把这个任务恢复到流程发起之初,用户可以在「待办」列表中找到该任务,并重新办理。
原本已办页面中的操作项将会变成「详情」和「删除」,删除操作将会直接关闭这个任务。
此外,某些流程处理环节可能比较复杂,无法一次性完成,所以流程引擎提供了保存的功能来存储当前的工作状态(填报暂存)。点击流程节点任务页面右下角的保存按钮,保存后的流程可以在待办保存列表中找到。
流程详情页的下方可以提交意见,并添加有关附件,所有环节的意见都会按照顺序显示在下面的批注信息中。
可以在绘制流程图的时候,指定是否需要某个用户任务节点强制填写意见。如果勾选了该项,用户未填意见时系统会弹框提示,流程无法流转。
进入流程详情页面,点击流程图,可以看到该流程对应的流程图,并可以直观的看到流程的进展情况。
进入「所有流程列表」页面,可以看到所有进行中或者已经完成的流程,管理员可以随时删除终止正在运行的流程,或者点击详情链接查看所有流程的具体进展。
描述:流程引擎都安装后,添加了创建流程图页面 processDiagram/create出现空白,如下图所示:
原因:用户部署之后改了工程名,把 webroot 改成了其他名字。
解决方案:请在 webroot\editor-app 下找到 app-cfg.js 文件,如图所示编辑箭头指向的文字,把 webroot 改为正确的工程名。然后清除浏览器缓存,刷新页面就可以了。
到这里流程插件的说明已讲解完毕,具体示例请点击流程插件示例
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉