侧边栏壁纸
  • 累计撰写 83 篇文章
  • 累计创建 87 个标签
  • 累计收到 9 条评论

目 录CONTENT

文章目录

Flowable-UI最新版6.7.0入门篇之踩坑记录

汤圆学Java
2021-12-24 / 2 评论 / 0 点赞 / 144 阅读 / 4,498 字
温馨提示:
本文最后更新于 2022-01-05,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

前面我们介绍了,用 Flowable UI 怎么创建一个流程,以及 [Flowable UI 如何启动一个流程](掘金 (juejin.cn));

本节我们就记录一下,在前面的学习中踩的一些坑,以资鼓励。

目录

  1. 决策表的保存按钮为灰色
  2. 编辑序列流的流条件时,有时候会界面卡死
  3. 应用程序发布时,报错提示无法解析扩展组件
  4. 执行脚本任务时,报错提示 "计算juel脚本出错"
  5. 执行脚本任务时,报错提示 “混淆的方法解析,无法解析dayBetween(null,null)”
  6. cmd命令行启动 Flowable UI后,命令行界面卡住,程序没有启动起来
  7. 保存表单(或者其他模块)时,鼠标从右往左划一下任意一个编辑框,保存对话框就会消失
  8. 还是保存相关,不算是一个坑,但是也很坑

正文

1. 决策表的保存按钮为灰色

这个让一般人觉得再正常不过的事情,但是在我这里却浪费了好长时间,如下所示:都是灰色的

image-20211104160607841

  • 原因分析:是因为决策表key的命名问题

    决策表key的命名,不能纯数字,必须有英文或者下划线,否则无法保存;

    这个也是在 Flowable 官网看人家的例子才发现的,Flowable官网介绍

  • 解决办法:决策表key命名时,需加英文或下划线,不能纯数字

吐槽一下:有个疑问,就是我创建决策表的时候,用数字命名决策表的key是没问题的,但是到了保存的时候却保存不了,这算不算是一个bug呢?

其他的模块比如表单、流程,都不存在这个问题(即可以用数字命名key)

2. 编辑序列流的流条件时,有时候会界面卡死

序列流就是流程中的连线箭头,流条件就是序列流往下执行的条件,如下所示:

image-20211104161339568

点击流条件,会进入到下面的条件编辑界面:

image-20211104161452391

此时,有可能点击哪里都无效,界面卡死;

  • 原因分析:暂时未知
  • 解决办法:刷新后,再次编辑就可以了

Tips:所以这里有一条很善意的忠告,时不时地去左上角点击一下 保存 按钮

3. 应用程序发布时,报错提示无法解析扩展组件

报错内容为:Cannot resolve the name 'extension' to a(n) 'element declaration' component.

这个问题还是比较莫名其妙的,最后通过网上查才知道,原来是目录有中文导致的。。。

  • 原因分析:Flowable UI 项目部署的目录包含中文
  • 解决:不要包含中文

Tips: 所以这里又有一条忠告,千万不要把任何项目部署在中文目录下

4. 执行脚本任务时,报错提示 "计算juel脚本出错"

在启动流程后,进行脚本任务计算的时候,后台报错提示:计算juel脚本出错

详细的错误描述如下:

Error evaluating juel script: "org.joda.time.Days days=
org.joda.time.Days.daysBetween(vacationstartingfrom, vacationuntil);
execution.setVariable("amountOfVacationDays", days.getDays());" of activity id: sid-6880B1A3-B43A-4E77-AF22-090258640D94 of process definition id: a1:2:37543631-3aff-11ec-
a55f-0021ccd8e547

从报错可以看到,说是计算juel脚本时出错了,可是我们并没有使用juel脚本啊

  • 原因分析:是因为创建 脚本任务时,如果未指定 脚本的格式,那么就会使用了默认的格式 juel
  • 解决:编辑流程,更新脚本任务的脚本格式为 groovy,如下所示:

image-20211104162539785

5. 执行脚本任务时,报错提示 “混淆的方法解析,无法解析dayBetween(null,null)”

在启动流程后,进行脚本任务计算的时候,后台报错提示如下:

groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method org.joda.time.Days#daysBetween.

Cannot resolve which method to invoke for [null, null] due to overlapping prototypes between:
  • 原因分析:这个问题比较简单,就是我们在请求表单中没有传入日期数据,就直接提交了,导致后台不知道该用哪个重载方法
  • 解决办法:在请求表单中设置请求日期为必填,这样就可以提早发现问题,不用等到后台报错才知道错误

步骤如下:

  1. 先编辑表单,如下所示,将日期字段设置为必填

image-20211104163142219

  1. 然后重新发布应用程序(参考[上一节:Flowable UI 如何启动流程](掘金 (juejin.cn)))
  2. 此时我们再发起流程,执行任务,会发现日期不填写,就无法提交

image-20211104163158911

6. cmd命令行启动 Flowable UI后,命令行界面卡住,程序没有启动起来

这个问题比较隐晦,不太容易发现,我是在启动之后,等了一会,去访问界面发现无响应,才去看的命令行输出,发现没有输出最后面的日志,比如启动花了多长时间,监听的端口等等,如下所示:

image-20211104163649859

如果你的在cmd命令行启动后,也是没有显示上图所示的日志,那么就是命令行卡住了

  • 原因分析:cmd默认开启"快速编辑模式",当鼠标点击cmd的任意区域时,就自动进入编辑模式,此时输出会被阻塞;这种现象也称之为假死现象

  • 解决办法:有两种

      1. 临时补救:在cmd命令行界面,按一下回车,可以看到打印了最后几行日志,此时界面可以访问了
      2. 彻底解决:cmd属性-》属性-》选项-》取消勾选"快速编辑模式"和"插入模式",如下所示:这里我用的powershell,跟cmd是一样的

      image-20211104163903057

但是按照上图进行配置后,命令行界面无法通过回车定位到最后一行,也不能用鼠标滚轮进行上下滚动,只能通过右侧的滑动条进行上下滑动(不过这个应该关系不大,因为基本不怎么看日志,只有报错了看下)

7. 保存表单(或者其他模块)时,鼠标从右往左划一下任意一个编辑框,保存对话框就会消失

这个问题说实话,真的很难受,对于我这种喜欢用鼠标全选编辑内容的人来说;

比如下图,我在保存表单对话框中,想要改掉表单的名称,我习惯性地会用鼠标在表单名称的编辑框中,从右往左拉进行全选;

结果拉到头部时,整个对话框就消失了(难受)

image-20211104164523505

  • 原因分析:可能是监测到鼠标焦点,在对话框之外进行了点击操作(这里它应该监测的是划拉操作),导致对话框自动消失
  • 解决办法:改掉自己用鼠标划拉的习惯,直接双击全选,或者键盘Delete删除

在写这篇文章的时候,我还在不停地划拉

8. 还是保存相关,不算是一个坑,但是也很坑

因为 Flowable UI 没有自动保存,而且各种误操作很容易导致界面返回或者退出(比如你编辑一个流程,做了好多内容,结果一不小心,点了右上角的X号或者网页不小心关闭,就全部没了)

它这里的X号会直接关闭,没有什么贴心的提示;

所以建议养成 时不时点一下左上角保存图标的好习惯;

就比如我们每次看别人写的文章,都会习惯性地点个赞再走。

总结

上面的问题,有的很容易发现,有的不容易发现;

像中文目录那个,如果网上找不到答案,可能要很久才会解决。。。

所以下面列出几个习惯,仅供参考:

  1. 任何程序都不要部署在中文目录下
  2. 前后端交互时,必填的数据,前后端都需要做校验
  3. 养成手动保存的好习惯

当然,肯定还有其他坑,不过我这边目前接触的不多,发现的就这些,大家有的可以下面留言,一起讨论

0

评论区