填报表提交数据后不能正确入库问题排查


问题现象


在 WEB 端修改数据并提交入库,前台提示“保存成功”,但是数据库中并没有对应修改后的数据。

imagepng

或者前台直接报错,比如 xx 字段不存在:

imagepng

排查过程


填报表设置主要有三部分的设置,当填报结果是错误的时候,我们着重从这三部分去排查,基本可以定位到原因。

1.填报数据采集(单元格设置)

润乾报表填报有自己独特的采集规则,核心设置在填报表右侧单元格属性中的“字段名称”,具体采集规则可以查看:

http://d.raqsoft.com.cn:6999/report/input/caijiguize.html

采集后的结果是类似数据库表的一个结构,包含:对象名称、字段名称、数据。如下图所示:

imagepng

这一部分主要确定采集规则识别后的对象结构是否正确,比如出现多个同名对象或者对象结构不对的情况都是异常的。

2.来源脚本

来源脚本的作用是确定填报表呈现的初始数据。

不管来源脚本的配置方式是多源 SQL 还是脚本、dfx 文件,最终返回的结果是要对应填报表呈现页面的数据结果集。

一般来讲,这一部分的问题在于对象名称是否和填报表单元格配置的一致。

比如上述截图中填报表需要 employee 对象,那么可以通过编辑来源脚本来对这个对象做初始化:

imagepng

得到的 employee 结果为:

imagepng

那么就是和填报页面一致的,WEB 页面就可以把这个结果集呈现出来:

imagepng

3.去向脚本

去向脚本是处理入库操作的核心配置,大部分填报入库结果不对的因素是这一部分配置不正确。

3.1 多源 SQL

imagepng

多源 SQL 方式下,主要检查表达式以及主键的设置,这两部分决定了更新值以及更新方式。

3.2 脚本 /DFX 文件

imagepng

上图中是脚本配置方式,核心是 update() 函数的配置。

当入库结果不对时,着重检查这部分:

3.2.1 对象获取是否正确

在脚本中可以输出对象,例如 B1 中 >output(employee) 在控制台 /log 日志文件中可以查看输出的内容,检查获取到的字段结构、数据是否正确。

PS:其他一些相关变量或者计算后的结果也可以通过 output 或者 debug 函数输出确定结果是否正确。

3.2.2 字段更新表达式是否正确

update 函数中更新字段的语法是:表字段名称: 更新值, 表字段名称: 更新值。

默认当两者一致时,可以省略更新值的配置,也就会看到示例中简化后的写法:

A1.update@k(employee:employee_old, 雇员, 雇员 ID, 名字, 职务, 出生日期, 雇用日期, 地址, 邮政编码, 照片, 图片名; 雇员 ID)

这里就只写了字段名称,因为更新值也是相同的名称。

当只有个别字段的更新值不对,其他字段更新值正确时,检查下这里的配置是否正确。

3.2.3 主键设置是否合理

update 函数中分号后面配置的是主键字段,当更新入库的方式不对时,除了要检查第一步中的更新对象是否获取正确,也要确认主键设置是否合理。

比如:应该执行 insert 更新操作,实际却执行的是 update,且检查对象获取正确,那么此时就需要确认主键是否设置合理。

3.2.4update 函数选项使用是否正确

当更新的数据库表中有自增字段时,一般就会用到 @1 选项,而需要特定方式更新时,则可以通过选项指定更新方式,不指定更新方式时,默认是智能更新,也就是会根据 update 函数配置判断新旧对象的数据差异,把差异数据更新入库。

3.2.5 其他

当检查以上四点后还是存在入库结果不对的情况时,检查下差异数据和更新表之间的关系。

比如:按照新旧对象的差异数据应该是要执行 update 操作,但是要更新的物理表里并没有对应主键值的数据记录,那么就会无法执行更新,库表也就还是原来的数据。

此时,要去核查业务需求,再次确认 update() 函数的配置。

总结


填报表制作前需要先明确业务需求,然后捋出来对应要操作的表和对象。

根据填报表绘制后识别出来的对象结构,去配置数据处理中的来源脚本和去向脚本。当制作完成测试时出现填报异常时,要学会增加相关的输出信息去协助定位原因。

如仍无法判断原因,请联系技术人员协助处理:

企业 QQ:800025723

企业微信:RUNQIAN_RAQSOFT

PS:一定要理解数据采集规则以及 update() 函数的使用,这两点是填报表绘制且测试顺利的前提。

以下是广告时间

对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅



嗯,还不太了解好多乾?
猛戳这里
玩转好多乾