@[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:

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

下载成功之后解压,里面有一个 wars 文件夹,该文件夹中就有咱们需求的 war 包,如下:

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

然后进入到该目录中,履行如下指令发动该 war 文件:

java -jar flowable-ui.war

从发动到日志中咱们就能够看出来这是一个 Spring Boot:

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

既然是一个 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

没什么特别需求装备的地方,指定一下容器姓名和端口映射即可。

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

2.3 拜访

无论是直接运转仍是 Docker 运转,运转成功之后,浏览器输入 http://localhost:端口/flowable-ui 进行拜访,此刻会弹出来如下页面:

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

默许状况下,登录的用户名是 admin,暗码是 test,留意别把暗码写错了。

登录成功之后,假如看到如下页面,就表明装置成功了(一般来说应该不会有装置问题):

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

装好之后,接下来咱们就来逐渐体会这儿的功用,由于之前和小伙伴们讲过这儿的大部分功用了,所以今日我主要和咱们讲讲这儿的身份办理和流程体会功用(由于流程体会中要用到身份办理)。

3. 身份办理(IDM)

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

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

能够看到,默许只有一个 admin 用户,也便是咱们刚刚登录时分的用户。

3.1 用户办理

接下来点击左面的创立用户按钮,咱们能够创立新的用户出来:

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

填入用户的基本信息和暗码即可。

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

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

3.2 组办理

接下来点击上面的,咱们能够创立用户组,这个用户组适当于咱们在 vhr 中所说的人物,给用户分组,适当于给用户分配一个人物。

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

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

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

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

组增加成功之后,点击增加用户按钮,为用户组中增加用户:

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

假定 zhangsan 是司理,终究增加成果如下:

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

使用相同的方法,我再创立一个主管的组,并为之增加两个用户 lisi 和 wangwu。

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

3.3 权限操控

咱们前面创立的用户现在是没有任何权限的,例如现在假如使用 zhangsan/123 进行登录,登录成功后页面是空的,没有任何东西:

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

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

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

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

  • 拜访 idm 使用:这个便是拜访身份办理使用,假如用户没有拜访这个的权限,那么用户在登录成功的后的主页上就看不到身份办理使用程序这个菜单项。
  • 拜访 admin 使用:这个是拜访办理员使用程式,假如没有没有这个的拜访权限,那么用户在登录成功之后的主页上就看不到办理员使用程式这个菜单项。
  • 拜访 modeler 使用:这个是拜访建模器使用程序,假如没有没有这个的拜访权限,那么用户在登录成功之后的主页上就看不到建模器使用程序这个菜单项。
  • 拜访 workflow 使用:这个是拜访使命使用程序,假如没有没有这个的拜访权限,那么用户在登录成功之后的主页上就看不到使命使用程序这个菜单项。
  • 拜访 REST API:这个是指用户经过 REST API 拜访工作流的权限。

以拜访 idm 使用为例,在设置的时分,咱们能够直接设置用户,也能够设置用户组,设置用户组的话,则这个组中的一切用户都能拜访这个菜单项。

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

我这儿设置的是司理和 javaboy 能够拜访一切使用,而主管只能够拜访 workflow 使用。

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

好啦,准备工作结束后,接下来咱们就来制作一个报销的流程图,这个流程图稍微复杂一些,而且带有表单,这是松哥之前从未写过的内容。

4. 流程图制作

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

  1. 发动一个流程。
  2. 职工填写报销单,然后进行提交。
  3. 假如报销金额小于等于 1000 元,则主管批阅,主管批阅经往后,流程完毕;主管批阅回绝,则回到步骤 2 中职工从头填写报销单。
  4. 假如报销金额大于 1000 元,则先由司理进行批阅,司理批阅经往后,再由 CEO 批阅,两者都批阅经过,则流程完毕;司理和 CEO 任意一个批阅不经过,则流程从头回到步骤 2 中。

好啦,这便是咱们一个大致的流程描述,接下来咱们就在 Flowable-UI 中来制作这样一个流程图咱们来看下。

首要点击建模器使用程序,咱们开端制作:

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

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

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

然后就开端制作。

首要第一步是用户提交报销资料,报销资料需求填写一个表单,所以咱们在下面的特点中,找到表单引证,为这个用户使命设置一个外部表单:

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

假如有提早制作好的表单,这儿就会显现出来,那么直接引证即可,假如没有提早制作好的表单,那么咱们看到的就如同上图那样。

现在咱们点击新表单,创立一个新表单:

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

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

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

创立成功之后,咱们就能够看到表单规划页面了:

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

左面是表单组件区域,右边是表单制作区域。思考用户需求提交哪些信息来报销,直接将相应的表单拖过来即可。

其实咱们看最上面一栏的顶部菜单,也主动切换到表单菜单了,这也就意味着,当咱们想要创立一个表单的时分,也能够不必从流程制作那个入口进来,能够直接提早制作好表单,然后在画流程的时分直接引证即可。

例如我首要拖一个文本框过来,作为用户名,然后点击右边的修正按钮进行修正,如下:

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

有如下特点:

  • 标签:这个文本框将来展现的信息。
  • 掩盖 id:勾上这个,就能够自界说 id 了,不然 id 和标签是相同的。
  • id:这个是这个组件的唯一称号,将来在代码中,假如咱们想要获取这个表单的值,就需求经过这个 id 去拜访。
  • 设置表单是否只读或许必填。
  • 默许值:这个适当所以这个表单的 placeholder。

好了,理解了这个,咱们再来随意加两个组件,依照相同的思路进行装备:

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

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

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

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

终究规划成果如下:

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

标签后边有一个 * 表明这是一个必填项。

制作结束后,点击左上角的保存按钮,保存成功后,会主动回到流程制作页面。

接下来,咱们还需求设置这个用户使命由谁来处理,如下:

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

很明显,这个流程是谁发起的,谁就来填写这个表单,所以,装备如下:

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

好了,这个用户使命就装备结束了,接下来要根据报销金额进行划分了,我一口气画完吧,再来和咱们逐渐剖析:

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

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

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

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

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

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

接下来装备主管批阅,首要咱们设置分配用户,即由谁来履行这个用户使命:

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

咱们设置候选组为主管,也便是一切的主管都能够批阅这个节点:

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

主管批阅的时分,无非便是赞同或许回绝,经过表单咱们能够界说出赞同或许回绝这两个按钮。装备方法如下,首要为主管批阅设置表单引证:

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

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

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

在表单规划的页面,有一个成果选项卡,这个表明表单的输出内容,这个成果选项卡决议了这个表单上的终究按钮,默许状况下,只有一个结束按钮,咱们能够自界说装备:

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

咱们为这个表单设置赞同和回绝两个按钮,方法如下:

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

这块也有其他设置方法,我就先以这种方法来和咱们演示,将来在视频中再来和咱们聊一聊其他方法。

表单装备结束后,保存即可,保存之后,就会回到流程制作页面。

接下来为赞同这条出线设置条件:

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

咱们留意这个表单的命名规矩,是 form_表单称号_outcome 这个就表明表单的输出成果,也便是咱们刚刚在表单中装备的成果选项卡中的内容:

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

装备结束后,相同的方法,将赞同改为回绝,再来装备一下回绝那条线。

好啦,上面这条线装备好之后,接下来相同的方法装备下面大于 1000 的状况,其间司理这个用户使命就由司理这个组来处理,CEO 批阅这个用户使命就由指定用户 javaboy 来批阅即可,详细细节我就不多说了,都跟上面相同。

制作结束后,记得点一下左上角的勾,看下流程有没有缝隙,如下图:

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

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

一个流程图只能有一个开端,可是能够有多个完毕。

5. 创立使用

流程图画好之后,接下来咱们能够下载这个流程图对应的 XML 文件,然后去开发自己的 Java 代码。可是,这不是咱们本文的工作,本文的工作是直接在 Flowable-UI 这个东西中,创立一个使用,然后发布这个流程。

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

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

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

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

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

然后点击修正包括的模型按钮,为这个使用选择一个流程:

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

然后点击左上角的保存按钮,保存并发布这个使用,如下:

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

发布成功之后,回到主页,就能够看到这个使用了,如下:

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

6. 体会报账

接下来咱们就来体会一把这个报账流程,咱们现在的身份是 admin,也便是说 admin 这个用户现在要报账了。

首要点击使用图标,进入到使用中,使命是空的,也便是现在没有 admin 需求批阅的使命:

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

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

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

首要点击左面的发动流程,然后点击右边的发动流程,流程发动之后,咱们能够点击右上角的显现图按钮,查看流程现在走到哪一步了:

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

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

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

用户提交报销资料这一步是由流程的发起人结束的,也便是 admin 自己结束,此刻咱们回到使命菜单,就能够看到 admin 有需求结束的使命了:

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

填入报销资料,然后点击结束按钮。

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

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

依照咱们第 3 小节的装备,lisi 和 wangwu 是主管,所以,咱们先刊出登录,然后从头以 lisi 或许 wangwu 的身份登录,假定我这儿以 lisi 的身份登录,登录成功之后,进入到这个使用中,进来之后,首要将筛选规矩改为我是其间一个候选人的使命:

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

然后在使命中就能够看到自己需求处理的使命了:

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

关于这种候选人或许候选组的使命,需求先点击右上角的招领,然后再处理(假如是直接分配给某一个用户的,就不需求招领了,能够直接处理了),招领之后,就能够选择赞同或许回绝了,如下图:

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

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

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

能够看到,流程在进入到主管批阅这个节点之后,被回绝了,然后回到了用户提交报销资料这个节点上,现在 admin 要从头登录,登录之后,在自己的使命中又能够看到提交报销资料了,如下:

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

随意改一下,然后继续提交。

切换到 wangwu 登录,赞同报销,流程完毕。

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

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

今日这个文章的目的是让咱们体会一把流程引擎,看看流程引擎是干嘛的,都有啥功用,松哥在未来的文章中,会逐渐教咱们如何用 Spring Boot+Vue 实现这一套功用。

结束撒花~