其实之前宋哥写过一篇文章,介绍了flowable-ui的玩法。这是政府提供的工具。这个工具不仅可以用来画流程图,还可以用来部署流程应用。通过有了这个流程应用,我们可以体验到可流动的流程引擎是做什么的,解决了什么问题,而且这种体验不需要写代码。对于一些没有flowable基础的小伙伴来说,我觉得这个还是很有用的。好的。所以今天想带大家再次体验一下flowable的功能。有的朋友可能会说,我们上次不是经历过吗?上次的体验比较简单,没有表单功能。今天想结合表单功能给大家分享一下flowable-ui的功能,很好玩。1.Flowable-UIFlowable-UI简单来说就是一堆web应用,提供四种功能:FlowableIDM:身份管理应用。为所有FlowableUI应用程序提供单点登录认证,并为具有IDM管理员权限的用户提供管理用户、组和权限的能力。FlowableModeler:允许具有建模权限的用户创建流程模型、表单、选择器和应用程序定义。FlowableTask:运行时任务应用,提供启动流程实例、编辑任务表单、完成任务、查询流程实例和任务等功能。FlowableAdmin:管理应用程序。允许具有管理员权限的用户查询BPMN、DMN、表单和内容引擎,并提供许多用于修改流程实例、任务、作业等的选项。管理应用程序通过RESTAPI连接到引擎,并与FlowableTask应用程序一起部署和FlowableREST应用程序。简单地说:创建用户,使用FlowableIDM分配角色。使用FlowableModeler绘制流程图。使用FlowableTask进行测试和体验流程。使用FlowableAdmin进行后台管理。2.安装方式在之前的版本中,上述应用都是不同的war包,部署和访问起来非常麻烦,但是现在,官方已经将之前的5个war合二为一了,所以现在访问就可以了好简单。2.1运行war包由于这些应用是基于SpringBoot2.0开发的,所以也可以直接作为独立的应用运行,执行java-jarxxx.war即可启动这些应用。这就需要大家先去GitHub上下载最新的Flowable:下载成功后,解压,里面有一个wars文件夹,里面有我们需要的war包,如下:然后进入该目录执行如下命令即可启动War文件:java-jarflowable-ui.war我们从启动到日志可以看出这是一个SpringBoot:既然是SpringBoot,如果要更改一些参数,直接在里面修改即可启动命令。比如默认的端口号是8080,现在想改成8088,那么只要在启动命令中加上参数--server.port=8088即可。所以直接启动这些应用程序并不麻烦,而且很简单。2.2docker安装看到也支持Docker安装,就用Docker吧,比较方便,以后不要了也可以删掉(不熟悉Docker的朋友可以回复docker微信后台♂有松哥写的入门教程)。docker安装只需使用以下命令:dockerrun-d--nameflowableui-p8086:8080flowable/flowable-ui没有什么特别要配置的,只需要指定容器名称和端口映射即可。2.3访问不管是直接运行还是用Docker运行,运行成功后,在浏览器中输入http://localhost:port/flowable-ui访问,此时会弹出如下页面:默认情况下,登录用户名为admin,密码为test,注意不要写错密码。登录成功后,如果看到如下页面,则表示安装成功(一般来说,应该不会出现安装问题):安装完成后,我们来一步步体验这里的功能,因为我已经和之前小伙伴们这里的功能大部分都没有了,所以今天在这里主要跟大家说一下身份管理和流程体验功能(因为流程体验中用到了身份管理)。3.身份管理(IDM)身份管理是对用户和用户组的管理。我们点击身份管理页面后,可以看到如下内容:可以看到,默认只有一个admin用户,也就是我们刚才登录的用户。3.1用户管理接下来点击左侧的创建用户按钮,我们可以创建一个新用户:填写用户的基本信息和密码。我一共创建了四个用户,最后的效果如下:3.2群组管理接下来点击上面的群组,我们可以创建一个用户群组,这个用户群组就相当于我们在vhr中说的角色,对用户进行分组就是相当于给用户分配了一个角色。默认没有组,组为空:我们点击CreateGroup按钮,先创建一个manager组:组添加成功后,点击AddUser按钮,将用户添加到用户组中:假设zhangsan是一个manager,最后添加结果如下:用同样的方法,我再新建一个supervisor组,添加两个用户lisi和wangwu。3.3权限控制我们前面创建的用户没有任何权限。比如现在用zhangsan/123登录,登录成功后页面是空的,什么也没有:所以我们需要给用户添加相应的权限。点击顶部的权限控制栏,如下:我们可以为这五种访问权限设置对应的用户/用户组:访问idm应用:这是访问身份管理应用。如果用户无权访问此权限,则用户已成功登录。IdentityManagementApps菜单项在的主页上不可见。访问管理员应用程序:这是访问管理员应用程序。如果没有这个访问权限,用户登录成功后,在首页是看不到管理员应用的菜单项的。访问建模器应用程序:这是访问建模器应用程序。如果您没有此访??问权限,则用户在成功登录后将不会在主页上看到建模器应用程序菜单项。访问工作流应用程序:这是访问任务应用程序。如果您没有此访??问权限,则用户在登录成功后将不会在首页看到任务申请菜单项。访问RESTAPI:这是指用户通过RESTAPI访问工作流的权限。以访问idm应用为例。在设置的时候,我们可以直接设置用户或者设置用户组。如果设置了用户组,则该组中的所有用户都可以访问该菜单项。我这里设置的是manager和javaboy可以访问所有的应用,而supervisor只能访问workflow应用。好了,准备工作完成后,我们来画一个报销流程图。这个流程图稍微复杂一点,有表格。这是宋歌从来没有写过的。4、流程图绘制我用文字大概描述一下我们的报销流程:开始一个流程。员工填写报销单,然后提交。报销金额小于或等于1000元的,主管审批。主管批准后,流程结束;如果主管批准并拒绝,则返回步骤2,员工重新填写报销单。如果报销金额大于1000元,则先由经理审批,经经理批准后,再由CEO审批。如果两者都被批准,则该过程结束;如果经理或CEO没有通过批准,则流程返回步骤2中间。好了,这就是我们的大致流程描述,接下来我们会在Flowable-UI中画出这样一个流程图,一起来看看吧。首先点击modeler应用,我们开始绘图:点击右上角的createprocess,创建一个process:然后开始绘图。首先,第一步是用户提交报销材料。报销材料需要填写一个表格,所以我们在下面的属性中找到表格引用,为这个用户任务设置一个外部表格:如果有预先画好的表格,会在这里显示出来,那你直接引用即可。如果没有事先画好的表格,那么你看到的就是上图这样的。现在我们点击新建表单,创建一个新表单:为新表单设置名称、键等:创建成功后,我们可以看到表单设计页面:左边是表单组件区,右边是表格绘图区。想想用户报销需要提交什么信息,把相应的表格拖过去就好了。其实如果看top栏的topmenu,会自动切换到form菜单,也就是说我们要创建form的时候,可以提前画好,不用从流程画的入口进入Form,然后在画流程的时候直接引用它。比如我先拖一个文本框作为用户名过来,然后点击右边的编辑按钮进行编辑,如下:它有如下属性:Label:这个文本框以后要显示的信息。Overrideid:勾选这个,可以自定义id,否则id和label是一样的。id:这是该组件的唯一名称。以后如果我们想在代码中获取这个表单的值,就需要通过这个id来访问。设置表单是只读的还是必填的。默认值:这相当于此表单的占位符。好了,明白了这些,我们再随机添加两个组件,同样配置:报销金额,为小数部分:报销目的为多行文本组件:最终设计结果如下:有标签后的*表示这是必填字段。绘制完成后,点击左上角的保存按钮。保存成功后,会自动返回工艺图页面。接下来我们还需要设置这个用户任务由谁来处理,如下:很明显,谁发起这个流程,谁就填写这个表单,所以配置如下:OK,这个用户任务配置完成,接下来,我们要分根据报销金额。我一口气画出来,接下来跟大家一步步分析:首先我们来看报销金额小于等于1000的那一行,首先我们要给这个设置条件line,也就是进程从互斥网关出来后,什么情况下会进入监管审批节点,选择这条出线,配置流量条件,配置如下:这里money就是我们刚才填的money在表单中,表单中每个字段的值都会被映射成一个流程变量,我们可以直接访问这个流程变量。接下来,配置主管批准。首先,我们设置assigneduser,即谁来执行这个用户任务:我们设置candidategroup为supervisor,即所有supervisor都可以批准这个节点:supervisor批准时,无非就是同意或者拒绝。通过表单,我们可以定义同意或拒绝两个按钮。配置方法如下。首先,设置主管批准的表单参考:为新创建的表单指定名称和ID。大家应该记住这个id。我们以后会用到:在表单设计页面,有一个结果标签,这个表示表单的输出内容。此结果选项卡决定此表单上的最终按钮。默认情况下,只有一个完成按钮。我们可以自定义配置:我们给这个表单设置两个按钮,同意和拒绝,如下:设置blocks还有其他的方式,我先给大家介绍一下,其他的方式我会在后面和大家说未来的视频。表单配置完成后,保存即可。保存后,会返回到工艺图页面。接下来设置同意这一行的条件:大家注意这个表单的命名规则,是form_formname_outcome,表示表单的输出结果,也就是我们刚才在表单中配置的resulttab里面的内容:Configuration完成后,同法更改同意拒绝,然后配置拒绝行。好了,上面这行配置完成后,按照人数大于1000的情况同样配置下面的,其中,经理用户任务由经理组处理,CEO审批用户任务由指定用户javaboy,我就不细说了,都和上面一样。画完之后记得点左上角的勾,看看流程有没有漏洞,如下图:至此,我们的流程图就画好了。流程图只能有一个起点,但可以有多个终点。5.创建应用程序流程图画好之后,我们可以下载这个流程图对应的XML文件,然后开发自己的Java代码。然而,这不是我们在本文中的工作。本文的工作是直接在Flowable-UI工具中创建应用,然后发布流程。点击上面的应用菜单,然后点击右上角的CreateApplication按钮,如下:接下来可以为你的应用设置图标,主题等:然后点击EditIncludedModel按钮,为此选择一个进程申请:然后点击左上角的保存按钮,保存并发布这个申请,如下:发布成功后,返回首页,可以看到申请,如下:6.体验报销接下来,让我们体验一下报销流程。我们目前用户的身份是admin,也就是说现在需要用户admin来报销账号。首先点击应用图标进入应用,任务为空,即目前没有需要管理员审批的任务:然后我们点击最上面的流程菜单,如下:首先点击开始左边的流程,然后点击右边的启动流程,流程启动后,我们可以点击右上角的显示按钮,查看流程进行到哪一步了:可以看到,流程已经进行到步骤用户提交报销材料的地方:用户提交报销材料的步骤由流程发起者完成,即管理员自行完成。这时我们回到任务菜单,可以看到admin有待完成的任务:填写报销信息,然后点击完成按钮。接下来,点击流程菜单查看流程图。可以看到是时候进入supervisor审批的步骤了:根据我们在第3节的配置,lisi和wangwu是supervisor,所以我们先注销再登录,然后再以lisi登录或者以wangwu登录.假设我在这里以lisi身份登录。登录成功后,我进入这个应用程序。进入后,先把筛选规则改成我是候选人之一的任务:然后在任务中,可以看到现在有需要处理的任务:对于这类候选人或候选人组的任务,需要先点击右上角的Claim,然后进行处理(如果是直接分配给某个用户,则不需要claim,可以直接处理claim之后,可以选择同意或者拒绝,如下图所示:假设我们点击拒绝按钮,拒绝后,我们点击流程菜单,查看流程图,如下:可以看到,流程进入主管审批节点,被拒绝,以及然后回到用户提交报销材料的节点,现在admin需要重新登录,登录后可以在自己的任务中看到提交报销材料,如下:随便改一下,然后继续提交。切换到网屋登录,同意报销ent,流程结束。嗯,下面那条1000多块的线路,大家可以自己测试一下,我就不演示了~今天这篇文章的目的就是让大家体验一下流程引擎,看看流程引擎是干什么的。有哪些功能?松哥会在以后的文章中逐步教大家如何用SpringBoot+Vue实现这套功能。
