宏天低代码 (EIP8):Groovy 动态脚本实战,表单前置 / 后置脚本配置详解

前言

宏天 EIP8 低代码平台中,Groovy 动态脚本是提升表单灵活性、减少硬编码的核心能力。尤其在表单保存场景中,通过前置 / 后置 Groovy 脚本实现字段自动赋值,是新手最常用、最易上手的实战场景。本文以「订单数值字段赋值」为例,手把手教你配置前置 / 后置脚本,全程示例简单易懂,零基础也能学会。

一、核心概念

在开始配置前,先明确两个核心概念(以表单为例):

  • 前置 Groovy 脚本 :表单「保存按钮」点击后、数据真正提交到数据库之前执行,常用于数据校验、字段赋值(优先处理核心字段)。
  • 后置 Groovy 脚本 :表单数据成功保存到数据库之后执行,常用于依赖已保存数据的字段赋值、调用外部接口、日志记录等。
  • 宏天 EIP8 内置 Groovy 引擎,支持标准 Groovy 语法,可直接调用平台内置 API 操作表单字段。

二、实战场景:订单字段赋值

场景需求

  • 前置脚本:表单保存前,给订单主表的 orderId(订单 ID)、totalAmount(订单总金额)字段赋予固定值,覆盖原有数值。
  • 后置脚本:表单保存后,通过 SQL 语句更新 W_Order 表的 f_customerId(客户 ID)字段为指定值。

三、 Groovy 脚本配置(表单保存前赋值)

步骤 1:表单列表配置
  1. 登录宏天 EIP8 平台,打开需要配置的表单列表(如「订单管理」)。
  2. 进入「表单列表配置界面」页面,找到表单设置(不同模块入口略有差异,核心是找到「Groovy脚本配置」)。
步骤 2:编写前置赋值脚本

以下是给「订单金额(orderAmount)」赋值的最简示例,直接复制即可使用:

// 获取订单主表字段的数值 def orderId = boData.getByKey("orderId") def totalAmount = boData.getByKey("totalAmount") // 实现保存时,给订单主表字段 orderID和totalAmount赋予固定的数值 1000,覆盖原有数值 boData.set("orderId", "前置脚本赋值NEW_ORDER_ID") boData.set("totalAmount", 1000.00)

步骤 3:编写后置置赋值脚本

以下是给「订单金额(orderAmount)」赋值的最简示例,直接复制即可使用:

// 实现表单保存后,使用sql语句去更新customerId 客户ID的值,改为后置脚本赋值AA,表名是W_Order import com.hotent.base.manager.CommonManager import com.hotent.base.util.AppUtil def commonManager = AppUtil.getBean(CommonManager.class) def exeSql = "UPDATE W_Order SET f_customerId = '后置脚本执行成功赋值AA' " commonManager.execute(exeSql)

核心说明

boData:宏天 EIP8 内置的业务对象操作对象,必须保留,用于获取 / 设置订单主表字段值。

boData.getByKey("字段名"):获取表单原有字段值。

boData.set("字段名", 值):给字段赋值,会覆盖原有值,注意值的类型要和字段类型匹配。

try-catch:新手必加,脚本语法错误时会输出日志,方便定位问题。

四、配置验证

脚本配置完成后,按以下步骤验证是否生效:

  1. 保存表单设计,回到表单填报页面,随意填写基础信息(不填 orderId、totalAmount)。
  2. 点击「保存」按钮,提交表单。
  3. 验证结果:前置脚本:查看订单详情,orderId 显示「前置脚本赋值 NEW_ORDER_ID」,totalAmount 显示 1000.00(覆盖原有值)。后置脚本:查询数据库 W_Order 表,f_customerId 字段值变为「后置脚本执行成功赋值 AA」。

总结

  1. 宏天 低代码(EIP8) 中,前置脚本用 boData.set() 给订单主表字段赋值,无需手动保存;后置脚本可通过 CommonManager 执行 SQL,满足自定义更新需求。
  2. 核心语法:boData.getByKey/set() 操作字段、AppUtil.getBean(CommonManager.class) 获取 SQL 执行器、commonManager.execute() 执行 SQL。
  3. 新手写脚本必加 try-catch 和日志输出,便于调试定位问题。
相关推荐
UXbot5 小时前
APP原型生成工具测评
android·前端·人工智能·低代码·ios·开发·app原型
低代码布道师6 小时前
微搭低代码MBA培训管理系统14——搭建公海池
低代码
搭贝6 小时前
河南爱彼爱和新材料 | 打造低成本高敏捷数字化转型的“河南标杆“
大数据·低代码·制造业
低代码布道师1 天前
微搭低代码MBA培训管理系统14——线索跟进
低代码
IT研究所1 天前
从工单到智能分析:AIGC运维助手应用价值
大数据·运维·数据库·人工智能·科技·低代码·自动化
液态不合群1 天前
Java低代码平台工作流引擎设计与实现:从人工审批到智能自动化
java·低代码·状态模式·工作流
码上解惑1 天前
基于 Spring AI Alibaba ReactAgent 辅助低代码表单设计的实现原理与实操步骤
人工智能·spring·低代码·ai
阴阳怪气乌托邦2 天前
请注意!AI低代码正在干掉传统开发
人工智能·低代码·工作流引擎
决斗小饼干2 天前
还在硬编码决策逻辑?JNPF决策流正在干掉大批“手工审批”
低代码·工作流引擎