乐趣区

关于workflow:一个不用写代码的案例来看看Flowable到底给我们提供了哪些功能

@[toc]
其实松哥之前曾经写过文章和大家介绍了 flowable-ui 的玩法了,这是官网提供的一个工具,这个工具不仅能够用来绘制流程图,还能够用来部署一个流程利用,通过这个流程利用咱们能够体验一把 flowable 流程引擎到底是干嘛的,解决了咱们的哪些问题,并且这个体验是不须要写代码的,对于一些对 flowable 没有根底的小伙伴而言,我感觉这个很好。

所以明天我想再带大家体验一把 flowable 的性能,可能有小伙伴说,咱们上次不是曾经体验过了么,上次体验的比较简单,没有表单性能,明天我想联合表单性能来和大家捋一捋 flowable-ui 的性能,特地好玩。

1. Flowable-UI

Flowable-UI 说白了就是一堆 Web 利用,提供了四方面的性能:

  • Flowable IDM: 身份治理利用。为所有 Flowable UI 利用提供单点登录认证性能,并且为领有 IDM 管理员权限的用户提供了治理用户、组与权限的性能。
  • Flowable Modeler: 让具备建模权限的用户能够创立流程模型、表单、抉择表与利用定义。
  • Flowable Task: 运行时工作利用,这个提供了启动流程实例、编辑工作表单、实现工作,以及查问流程实例与工作的性能。
  • Flowable Admin: 治理利用。让具备管理员权限的用户能够查问 BPMN、DMN、Form 及 Content 引擎,并提供了许多选项用于批改流程实例、工作、作业等。治理利用通过 REST API 连贯至引擎,并与 Flowable Task 利用及 Flowable REST 利用一起部署。

简略来说:

  • 创立用户、调配角色用 Flowable IDM。
  • 画流程图用户 Flowable Modeler。
  • 测试、体验流程用 Flowable Task。
  • 后盾治理相干的用 Flowable Admin。

2. 装置形式

在之前的版本中,后面说的这几个利用都是不同的 war 包,部署和拜访都十分麻烦,不过当初,官网将之前的 5 个 war 整合成一个了,所以当初拜访就非常容易了。

2.1 运行 war 包

因为这些利用是基于 Spring Boot2.0 开发的,因而也能够间接作为独立利用来间接运行,通过执行 java -jar xxx.war 的形式来启动这些利用。

这个须要大家首先去 GitHub 上下载最新的 Flowable:

下载胜利之后解压,里边有一个 wars 文件夹,该文件夹中就有咱们须要的 war 包,如下:

而后进入到该目录中,执行如下命令启动该 war 文件:

java -jar flowable-ui.war

从启动到日志中咱们就可以看进去这是一个 Spring Boot:

既然是一个 Spring Boot,那么如果又一些参数想改,就能够间接在启动命令中批改,例如默认的端口号是 8080,当初想改为 8088,那么就在启动命令中增加参数 --server.port=8088 即可。

所以间接启动这些利用并不是麻烦事,反而是比较简单的。

2.2 docker 装置

我看了下他这个还反对 Docker 装置,所以我还是用 Docker 吧,更省事,未来不想要了删除也不便(对 Docker 不相熟的小伙伴能够在微信公众号后盾回复 docker,有松哥写的入门教程)。

docker 装置的话,间接如下命令即可:

docker run -d --name flowableui -p 8086:8080 flowable/flowable-ui

没什么特地须要配置的中央,指定一下容器名字和端口映射即可。

2.3 拜访

无论是间接运行还是 Docker 运行,运行胜利之后,浏览器输出 http://localhost: 端口 /flowable-ui 进行拜访,此时会弹出来如下页面:

默认状况下,登录的用户名是 admin,明码是 test,留神别把明码写错了。

登录胜利之后,如果看到如下页面,就示意装置胜利了(一般来说应该不会有装置问题):

装好之后,接下来咱们就来逐渐体验这里的性能,因为之前和小伙伴们讲过这里的大部分性能了,所以明天我次要和大家讲讲这里的身份治理和流程体验性能(因为流程体验中要用到身份治理)。

3. 身份治理(IDM)

身份治理就是用户、用户组的治理,咱们点进到身份治理页面之后,能够看到如下内容:

能够看到,默认只有一个 admin 用户,也就是咱们刚刚登录时候的用户。

3.1 用户治理

接下来点击右边的创立用户按钮,咱们能够创立新的用户进去:

填入用户的根本信息和明码即可。

我一共创立了四个用户,最终后果如下:

3.2 组治理

接下来点击下面的 ,咱们能够创立用户组,这个用户组相当于咱们在 vhr 中所说的角色,给用户分组,相当于给用户调配一个角色。

默认状况下,没有任何组,组是空的:

咱们点击创立组按钮,先来创立一个经理组:

组增加胜利之后,点击增加用户按钮,为用户组中增加用户:

假如 zhangsan 是经理,最终增加后果如下:

利用雷同的形式,我再创立一个主管的组,并为之增加两个用户 lisi 和 wangwu。

3.3 权限管制

咱们后面创立的用户当初是没有任何权限的,例如当初如果应用 zhangsan/123 进行登录,登录胜利后页面是空的,没有任何货色:

所以咱们要为用户增加相应的权限。点击顶部的权限管制一栏,如下:

咱们能够为这五种拜访别离设置对应的用户 / 用户组:

  • 拜访 idm 利用:这个就是拜访身份治理利用,如果用户没有拜访这个的权限,那么用户在登录胜利的后的首页上就看不到身份管理应用程序这个菜单项。
  • 拜访 admin 利用:这个是拜访管理员应用程式,如果没有没有这个的拜访权限,那么用户在登录胜利之后的首页上就看不到管理员应用程式这个菜单项。
  • 拜访 modeler 利用:这个是拜访建模器应用程序,如果没有没有这个的拜访权限,那么用户在登录胜利之后的首页上就看不到建模器应用程序这个菜单项。
  • 拜访 workflow 利用:这个是拜访工作应用程序,如果没有没有这个的拜访权限,那么用户在登录胜利之后的首页上就看不到工作应用程序这个菜单项。
  • 拜访 REST API:这个是指用户通过 REST API 拜访工作流的权限。

以拜访 idm 利用为例,在设置的时候,咱们能够间接设置用户,也能够设置用户组,设置用户组的话,则这个组中的所有用户都能拜访这个菜单项。

我这里设置的是经理和 javaboy 能够拜访所有利用,而主管只能够拜访 workflow 利用。

好啦,筹备工作实现后,接下来咱们就来绘制一个报销的流程图,这个流程图略微简单一些,并且带有表单,这是松哥之前从未写过的内容。

4. 流程图绘制

我先大抵上用文字描述下咱们的报销流程:

  1. 启动一个流程。
  2. 员工填写报销单,而后进行提交。
  3. 如果报销金额小于等于 1000 元,则主管审批,主管审批通过后,流程完结;主管审批回绝,则回到步骤 2 中员工从新填写报销单。
  4. 如果报销金额大于 1000 元,则先由经理进行审批,经理审批通过后,再由 CEO 审批,两者都审批通过,则流程完结;经理和 CEO 任意一个审批不通过,则流程从新回到步骤 2 中。

好啦,这就是咱们一个大抵的流程形容,接下来咱们就在 Flowable-UI 中来绘制这样一个流程图咱们来看下。

首先点击建模器应用程序,咱们开始绘制:

点击右上角创立流程,创立一个流程:

而后就开始绘制。

首先第一步是用户提交报销资料,报销资料须要填写一个表单,所以咱们在上面的属性中,找到表单援用,为这个用户工作设置一个内部表单:

如果有提前绘制好的表单,这里就会显示进去,那么间接援用即可,如果没有提前绘制好的表单,那么大家看到的就如同上图那样。

当初咱们点击新表单,创立一个新表单:

为新表单设置名称、key 等内容:

创立胜利之后,咱们就能够看到表单设计页面了:

右边是表单组件区域,左边是表单绘制区域。思考用户须要提交哪些信息来报销,间接将相应的表单拖过去即可。

其实大家看最下面一栏的顶部菜单,也主动切换到表单菜单了,这也就意味着,当咱们想要创立一个表单的时候,也能够不必从流程绘制那个入口进来,能够间接提前绘制好表单,而后在画流程的时候间接援用即可。

例如我首先拖一个文本框过去,作为用户名,而后点击左边的编辑按钮进行编辑,如下:

有如下属性:

  • 标签:这个文本框未来展现的信息。
  • 笼罩 id:勾上这个,就能够自定义 id 了,否则 id 和标签是一样的。
  • id:这个是这个组件的惟一名称,未来在代码中,如果咱们想要获取这个表单的值,就须要通过这个 id 去拜访。
  • 设置表单是否只读或者必填。
  • 默认值:这个相当于是这个表单的 placeholder。

好了,了解了这个,咱们再来轻易加两个组件,依照雷同的思路进行配置:

报销金额,这是一个小数组件:

报销用处是一个多行文本组件:

最终设计后果如下:

标签前面有一个 * 示意这是一个必填项。

绘制实现后,点击左上角的保留按钮,保留胜利后,会主动回到流程绘制页面。

接下来,咱们还须要设置这个用户工作由谁来解决,如下:

很显著,这个流程是谁发动的,谁就来填写这个表单,所以,配置如下:

好了,这个用户工作就配置实现了,接下来要依据报销金额进行划分了,我一口气画完吧,再来和大家逐渐剖析:

先来看报销金额小于等于 1000 的那条线。

首先,咱们要为这条线设置条件,也就是流程从互斥网关中进去之后,什么状况下会进入到主管审批这个节点中,选中这条出线,配置流条件,配置如下:

这里的 money 就是咱们刚刚在表单中填写的 money,表单中各个字段的值,都会被映射成为一个流程变量,咱们能够间接拜访。

接下来配置主管审批,首先咱们设置调配用户,即由谁来执行这个用户工作:

咱们设置候选组为主管,也就是所有的主管都能够审批这个节点:

主管审批的时候,无非就是批准或者回绝,通过表单咱们能够定义出批准或者回绝这两个按钮。配置形式如下,首先为主管审批设置表单援用:

给这个新建的表单取一个名字和 id,这个 id 大家要记牢了,未来咱们会用到:

在表单设计的页面,有一个后果选项卡,这个示意表单的输入内容,这个后果选项卡决定了这个表单上的最终按钮,默认状况下,只有一个实现按钮,咱们能够自定义配置:

咱们为这个表单设置批准和回绝两个按钮,形式如下:

这块也有其余设置形式,我就先以这种形式来和大家演示,未来在视频中再来和大家聊一聊其余形式。

表单配置实现后,保留即可,保留之后,就会回到流程绘制页面。

接下来为批准这条出线设置条件:

大家留神这个表单的命名规定,是 form_表单名称_outcome 这个就示意表单的输入后果,也就是咱们刚刚在表单中配置的后果选项卡中的内容:

配置实现后,雷同的形式,将批准改为回绝,再来配置一下回绝那条线。

好啦,下面这条线配置好之后,接下来雷同的形式配置上面大于 1000 的状况,其中经理这个用户工作就由经理这个组来解决,CEO 审批这个用户工作就由指定用户 javaboy 来审批即可,具体细节我就不多说了,都跟下面一样。

绘制实现后,记得点一下左上角的勾,看下流程有没有破绽,如下图:

至此,咱们的流程图就画好了。

一个流程图只能有一个开始,然而能够有多个完结。

5. 创立利用

流程图画好之后,接下来咱们能够下载这个流程图对应的 XML 文件,而后去开发本人的 Java 代码。然而,这不是咱们本文的工作,本文的工作是间接在 Flowable-UI 这个工具中,创立一个利用,而后公布这个流程。

点击下面的应用程序菜单,而后点击右上角的创立应用程序按钮,如下:

接下来能够为你的利用设置图标、主题啥的:

而后点击 编辑蕴含的模型 按钮,为这个利用抉择一个流程:

而后点击左上角的保留按钮,保留并公布这个利用,如下:

公布胜利之后,回到首页,就能够看到这个利用了,如下:

6. 体验报账

接下来咱们就来体验一把这个报账流程,咱们目前的身份是 admin,也就是说 admin 这个用户当初要报账了。

首先点击利用图标,进入到利用中,工作是空的,也就是目前没有 admin 须要审批的工作:

而后咱们点击上方的流程菜单,如下:

首先点击右边的启动流程,而后点击左边的启动流程,流程启动之后,咱们能够点击右上角的显示图按钮,查看流程目前走到哪一步了:

能够看到,流程目前走到用户提交报销资料这一步了:

用户提交报销资料这一步是由流程的发起人实现的,也就是 admin 本人实现,此时咱们回到工作菜单,就能够看到 admin 有须要实现的工作了:

填入报销材料,而后点击实现按钮。

接下来再点击流程菜单,查看流程图,能够看到,此时进入到主管审批这一步了:

依照咱们第 3 大节的配置,lisi 和 wangwu 是主管,所以,咱们先登记登录,而后从新以 lisi 或者 wangwu 的身份登录,假如我这里以 lisi 的身份登录,登录胜利之后,进入到这个利用中,进来之后,首先将筛选规定改为我是其中一个候选人的工作:

而后在工作中就能够看到本人须要解决的工作了:

对于这种候选人或者候选组的工作,须要先点击右上角的认领,而后再解决(如果是间接调配给某一个用户的,就不须要认领了,能够间接解决了),认领之后,就能够抉择批准或者回绝了,如下图:

假如咱们点击回绝按钮,回绝之后,咱们点击流程菜单,查看流程图,如下:

能够看到,流程在进入到主管审批这个节点之后,被回绝了,而后回到了用户提交报销资料这个节点上,当初 admin 要从新登录,登录之后,在本人的工作中又能够看到提交报销资料了,如下:

轻易改一下,而后持续提交。

切换到 wangwu 登录,批准报销,流程完结。

好啦,上面那条超过 1000 块钱的线,小伙伴们能够自行测试,我就不演示啦~

明天这个文章的目标是让大家体验一把流程引擎,看看流程引擎是干嘛的,都有啥性能,松哥在将来的文章中,会逐渐教大家如何用 Spring Boot+Vue 实现这一套性能。

完结撒花~

退出移动版