智能规则表达式配置 & 依赖校验模拟引擎
| seq | 启用 | 目标 targetParam | 类型 | 源字段 sourceParams 逗号分隔 |
表达式 expression | 条件 condition 空=无条件 |
覆盖 | 操作 |
|---|
点 "预检" 校验语法与字段。
点 "模拟执行" 运行逻辑与数据改写对比。
| 类别 | 语法与常用白名单函数 |
|---|---|
| 算术 | + - * /(+ 任一边字符串为拼接) |
| 比较 | > < >= <= == !=(==/!= 对 null 友好) |
| 逻辑 | && || !(短路逻辑) |
| 三元 | cond ? a : b(不短路,两分支都求值) |
| 聚合 | SUM(path) AVG(path) COUNT(path) MIN(path) MAX(path) |
| 数学 | ROUND(x,n) ABS CEIL FLOOR MAX2 MIN2 MOD POW DIV(x,y,scale) |
| 字符串 | LEN UPPER LOWER TRIM CONTAINS STARTSWITH ENDSWITH SUBSTR REPLACE CONCAT INDEXOF LPAD RPAD REPEAT REVERSE SPLITAT REGEXMATCH |
| 条件/空值 | IF CASE COALESCE NVL ISNULL ISBLANK ISPRESENT IN BETWEEN(IF/CASE/COALESCE/NVL 短路) |
| 类型 | TONUM TOSTR GUID |
| 列函数 | JOINCOL(path,sep) COUNTDISTINCT(path) |
| 日期 | NOW TODAY CURYEAR CURMONTH CURDAY YEAR MONTH DAY FORMATDATE ADDDAYS DATEDIFF WEEKDAY MONTHSTART MONTHEND QUARTER AGE |
| 查库 | BDTRANS(entity,matchField,field) 编码翻译·查无保持原值【推荐】;BDGET BDGETM BDGETNAME BDGETORSELF;匹配值/fallbackField 加不加引号均可(本地模拟返回空串) |
| 变量 | 直接写字段路径:amount / expenseentry.qty(取首行);分录逐行时写字段名 |
| 配置项 | 详细说明与规范 |
|---|---|
| 用法 | 类型选 SCRIPT,expression 写 LifeScript 脚本,return 值写入目标字段;条件仍用表达式语法 |
| 变量 | 报文字段平铺为变量(billno、customerno…);分录为数组:entryentity[0]["qty"];分录逐行规则时为行+头合并变量。 基础资料字段是对象:传 xxx_number 会被平台折叠为 xxx:{"number":...},读取用 xxx["number"],写回返回 {"number":code} 且 targetParam 填 xxx(不带后缀) |
| 查库函数 | BDGET(entity,ret,field,val) BDGETM BDGETNAME BDTRANS(entity,matchField,value)(BDTRANS 查无返回 value 本身) |
| 平台函数 | 须先用 use 导入:use DB; → queryOne(routeKey,ksql,params) queryList update execute executeBatch;use MS; → invokeService invokeBosService invokeBizService;use JSON; → toJSONString parseObject parseArray |
| 语法限制 | var 声明;list[i] / map["key"] / .length;无 else if(嵌套 if 替代);三元须加括号;不支持匿名内部类 |
| 主动报错 | ex(code, message) 中断保存,code/message 随 API 错误响应返回调用方(其余异常被吞掉不阻断) |
| 快捷键 | 功能说明 |
|---|---|
Ctrl / Cmd + S | 更新生成 JSON 并保存本地草稿 |
Ctrl / Cmd + Enter | 在表达式/脚本弹窗中确认保存 |
Esc | 关闭弹窗 / 关闭补全提示下拉框 |
ArrowUp / ArrowDown | 在自动补全提示框中上下切换选中项 |
Tab / Enter | 确认选择当前补全项 |