* 描述问题
整数类型的字段,使用聚合查询节点时,SUM求和的值若是NULL,不会自动转为0
* 运行环境
- NocoBase 版本:v1.6.0-beta.15
- 数据库种类与版本: MySQL 8.4.3
- 操作系统: Windows
- 部署方式: Docker
- Docker 镜像版本:nocobase/nocobase@sha256:f1541b7a3fa6de47fc69773f89e2ff00a07dd93cea7b3454d65facbfe613230c
- NodeJS 版本:
如何重现
搜到之前有人反馈这个问题,详见 https://forum.nocobase.com/t/null/1105
【聚合查询】节点 null 值的处理
建立产品表:{ID, 产品名称,. …}
建立出入库记录表:{产品ID,出入库类型(单选),出入库数量(整数)}
配置好关系,产品表1→N出入库记录表
新增出入库记录
产品ID=1, 出入库类型=入库, 出入库数量=5
工作流大概流程是:【聚合查询】SUM求和总入库数量 → 【聚合查询】SUM求和总出库数量 → 【运算】总入库数量减总出库数量
当产品只有入库记录,没有出库记录时,工作流在执行到“SUM求和总出库数量”时,由于没有出库记录,求和结果是NULL,而不是0,工作流报错:
Unexpected type of argument in function round (expected: number or Complex or BigNumber or Fraction or Array or Matrix or DenseMatrix or SparseMatrix or string or boolean, actual: null, index: 0
个人测试:NOCOBASE v1.6.0-beta.15 求和结果NULL值能够自动转为0,更新至v1.6.0-beta.19时,求和结果是NULL
已经在官网申请demo测试这一工作流,详见 https://a_wni3204xewu.v7.demo-cn.nocobase.com/admin/y43821k5dzm
苹果2只有入库记录,
触发 工作流#34【库存计算】执行历史ID 68 出错
预期行为
整数类型的字段,求和时若是NULL,自动转为0