低代码开发用Groovy脚本自定义函数,提升业务处理能力

  • 时间:2025-11-21 22:53 作者: 来源: 阅读:0
  • 扫一扫,手机访问
摘要:目前平台里可以自己写函数,把那些平台自带算不来的业务逻辑接上去,直接在表单、规则、服务编排里用。用完不用再找开发改系统,也不用天天催厂商,这一点对业务人来说挺实在的。这话一句话把好处说清了,接下来讲讲怎么玩,怎么做稳当点,不踩雷。简单来说,你在表单里想把某个字段自动算出来,就把那段计算逻辑写成一个函数,保存到系统里,更新缓存后就能在公式里选用了。举个常见的例子,预算里“预计金额”字段,往往就是单价

目前平台里可以自己写函数,把那些平台自带算不来的业务逻辑接上去,直接在表单、规则、服务编排里用。用完不用再找开发改系统,也不用天天催厂商,这一点对业务人来说挺实在的。

低代码开发用Groovy脚本自定义函数,提升业务处理能力

这话一句话把好处说清了,接下来讲讲怎么玩,怎么做稳当点,不踩雷。简单来说,你在表单里想把某个字段自动算出来,就把那段计算逻辑写成一个函数,保存到系统里,更新缓存后就能在公式里选用了。举个常见的例子,预算里“预计金额”字段,往往就是单价乘数量,这个乘法就能写成一个函数,字段绑定它,表单里一填单价和数量,金额就自动冒出来,不用人去算也不易出错。

底层实现上,平台里函数是用groovy写的,groovy能直接拿Java类库来用,这点很方便。你有现成的工具类,直接import进来复用,复杂的校验、格式化、数值运算啥的,别在函数体里把所有逻辑堆一堆,能复用就复用,既干净又稳当。

低代码开发用Groovy脚本自定义函数,提升业务处理能力

函数在系统里有固定的存储位置,数据库库名是 jvs-design,表名是 jvs_function_base。每条函数记录里要填一堆字段,得按规矩来填,系统才认。常见字段和含义说清楚点:name是函数名,得和你在代码里定义的方法名一模一样;type决定函数在界面里归哪类分组;info是说明,右侧协助区会展示,提议写点HTML或文字,解释参数和返回值,别偷懒;param_count是参数个数,要和函数体里声明的参数数一致;dynamic_param表明是否支持可变参数,0代表固定参数(那param_count不能是0),1代表动态参数(这时把param_count写成0);enable_cache一般设成1,表明走缓存;jvs_param_type提议都写any,传值不会被平台类型校验卡住。

参数数量和可变参数这块常有疑惑,举两个常见场景比较好理解。普通函数需要固定两个参数,那就把param_count写成2,dynamic_param写0。另一种场景是求和、拼接这种,不知道会传几个值的,就把param_count设为0,dynamic_param改成1,函数体里用可变参数去处理,灵活又好用。

低代码开发用Groovy脚本自定义函数,提升业务处理能力

写完函数保存后,有个关键步骤不能忘:去“运维设置”里点一次更新缓存,让新加的函数被系统加载。许多人卡壳就是忘了这步,公式编辑里找半天找不到新函数,实则就是没刷新缓存。这一步别省。

函数体能写纯groovy代码,也能在开头import你需要的工具类。举几个例子更直观。做个截取字符串的简单示例,可以写成:def LEFT_STR(s, n) { return s.take(n) }。再列如想用已有工具类判断两个对象是否相等,可以import
cn.hutool.core.util.ObjectUtil,然后写:def EQ_OBJ(a, b) { return ObjectUtil.equals(a, b) }。工具类能让逻辑清楚、健壮,尤其是已有库里有常用判断、格式化、数值计算这些,复用率高,写起来省心省力。

低代码开发用Groovy脚本自定义函数,提升业务处理能力

再举个动态参数的实用例子,做个通用求和函数,能接任意个数的值,并把字符串类型转换成数值再相加。代码思路是:import
cn.hutool.core.util.NumberUtil;def SUM_ALL(...items) { Number total = 0; for (int i = 0; i < items.size(); i++) { if (items[i] instanceof String) { items[i] = NumberUtil.parseNumber(items[i]); } total = NumberUtil.add((Number) items[i], (Number) total); } return total; }。把它保存后,param_count写0,dynamic_param设1,就能在公式里传任意数量的参数进来求和。

使用时还有些容易忽略的小细节,常常导致出错的几点要记牢:函数名在平台里要唯一,而且代码里的方法名要和name字段完全匹配,名字错一个字母就报错;参数类型提议都用any,避免运行时被平台类型检查给卡住;写info说明最好把入参和返回值写清楚,能省去同事问来问去的麻烦;enable_cache大多数场景设1有利于性能,但如果你的函数依赖外部频繁变化的状态,缓存可能造成数据滞后,这种情况要思考不走缓存或设计合理的失效策略。

低代码开发用Groovy脚本自定义函数,提升业务处理能力

常见错误还包括忘了import工具类、函数名字拼错、param_count写错、或者没更新缓存。碰到错误时看日志一般能定位问题,对照方法名、参数个数和类型,基本能把问题找出来。调试时提议先在本地把逻辑用groovy或Java工具类写好并测试通过,再把代码粘到平台里,这样能少走弯路。

最后给点实操上的提议,方便上手:开发过程中把常用工具函数抽成一个库,测试好后在函数里直接调用;写函数描述时把示例写清楚,告知别人怎么传参、会返回什么类型;新加函数后记得去“运维设置”刷新缓存;如果函数依赖外部资源或状态频繁变动,思考把enable_cache改成不走缓存或设计缓存失效逻辑。平台上有在线demo可以试,地址是 https://app.bctools.cn,底层框架是开源的,源码放在 Gitee,路径是
https://gitee.com/software-minister/jvs,想深入了解加载、缓存和调用链路的原理,去看源码会更清楚。

低代码开发用Groovy脚本自定义函数,提升业务处理能力

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】UV vs pyenv:谁才是更强的 Python 管理工具?(2025-11-21 23:07)
【系统环境|】7种 Python 虚拟环境工具全面对比:新手应该选择哪种(2025-11-21 23:06)
【系统环境|】Python pyQt5 适于新手上路(第一篇 环境和配置)(2025-11-21 23:06)
【系统环境|】pyhon基础-(一)开发环境搭建(2025-11-21 23:05)
【系统环境|】Markdown简洁高效的文本标记语言,技术人的写作利器之扩展语法(2025-11-21 23:05)
【系统环境|】html开发笔记06- 字体标签和文字标签(2025-11-21 23:04)
【系统环境|】jQuery HTML代码/文本(2025-11-21 23:04)
【系统环境|】QT5.9.9生成并调用自己的DLL(2025-11-21 23:03)
【系统环境|】C#调用C++常用的两种方式(2025-11-21 23:03)
【系统环境|】科普 | 聊聊COD吃鸡之余,发现个强力清理注册表软件(2025-11-21 23:02)
手机二维码手机访问领取大礼包
返回顶部