历史版本20 :填报调试插件 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本最低JAR 包版本要求插件版本
11.02022-01-11(11.0.2)
2.0.1

1.2 应用场景

适用场景:提交数据与预期不符、提交报错、提交慢

在制作填报模板时,模板结构和数据库表结构往往是不完全一样的,且提交时根据填报属性的不同设置也会呈现不同的提交结果,所以经常会出现提交结果和预期的不一致的情况。

在排查此类问题时,由于所见非所得,往往会花上比较多的时间。填报调试插件可以将一部分的后台计算结果转化为前端可视化的数据,也可以查看数据库配置情况和提交过程日志,让用户能在制作模板的时候清晰地看到过程和结果,方便出问题时排查。

1.3 功能描述

主要功能

1)根据填报设置查看数据在提交时的状态,并针对可能出现问题的数据进行提示

2)查看提交过程和结果的日志信息

3)查看数据库常见配置信息

4)支持导出提交日志,后续可发送给技术支持排查问题

当前限制

1)不支持「决策报表」和「移动端」

2)不支持「内置sql」中设置的「提交事件」

3)数据详情页不支持展示「未修改不更新」设置的结果

4)不支持IE内核浏览器

5)需要展示工具栏才会弹出调试对话框

6)启用调试对话框时,不支持同时再打开其他对话框

7)调试对话框不支持跟随网页大小自适应

8)不支持和「定制展示列插件」共用


2. 插件介绍编辑

2.1 插件安装

点击下载插件:填报调试插件

设计器插件安装方法请参见:设计器插件管理

服务器安装插件方法请参见:服务器插件管理

2.2 进入调试模式

1)根据业务需求设置好对应的填报属性。

注:模式如有则必须设置,否则可能会出现调试界面读取不到数据表配置的问题。

2)在模板填报预览的url后面加上参数&debug=true进入填报调试预览界面。

3)进入界面后,右下角会自动显示调试对话框,也可以通过工具栏的按钮来打开调试对话框。

注:如未显示调试窗口,或者页面报错,可以排查是否因为1.3功能描述里的当前限制因素。

2.3 查看数据详情

1)在调试对话框中点击「数据详情」页,在提交列表中选择需要查看的提交设置,并点击刷新按钮。

2)数据详情页可以看到的信息有:数据库字段类型和长度限制;填报属性字段配置;数据在入库前的值。

3)当在页面上插入,更新或者删除数据后,可以点击调试对话框里的刷新按钮,来查看本次操作后的数据计算结果。有变化的数据会呈现绿色字体,其数据所在行的背景色会变为蓝色。

数据状态列会呈现该条数据的状态,一共三种:默认、修改和删除。默认状态即初始化状态,代表未对该数据做过操作;修改状态包括了更新和插入行并填写两种动作;删除状态则代表该数据从页面上被删除了。

注:由于插件的计算时机在提交前,而数据要和数据库交互后才能知道是插入还是更新,所以插件无法区分更新和插入,统一标记为修改状态。

4)是否支持提交功能可用于测试当前设置的数据库是否支持填报,该功能还在测试阶段,会在后续版本上线。

2.4 查看调试日志

1)在调试对话框中点击「调试日志」页,在提交后,该页可以查看提交过程的所有信息,以及相关的数据库配置信息。调试日志支持导出和导入,在无法独立解决问题的情况下,可以导出该日志,发送给技术支持协助分析处理。

2)在完成提交后,「调试日志」页会展示出本次提交过程的信息。在主页面上,每一个提交都会包括2条信息:数据过滤结果和数据提交结果。

3)点击过滤结果,在「详细信息」页可以查看本次过滤的详细信息。

4)点击提交结果,在「详细信息」页可以查看本次提交的数据库配置信息、填报属性配置信息、入库语句和入库结果。

提交类型commitType的种类有:DbIntelligence(智能提交)、DbDelete(删除提交)、DbInsert(插入提交)、DbUpdate(更新提交)。

「执行日志」页可以查看该提交执行的sql模板,以及每个过程的耗时。

如果平台日志等级为debug,则还可以看到每个提交的具体sql语句,方便排查数据问题。

注:在解决完问题后,需要将日志等级改回原有等级,避免出现debug级别下日志输出太多造成工程负荷提升的问题。


3. 效果演示编辑

1.gif


4.填报调试思路编辑

当出现提交数据与预期不符、提交报错、提交慢这三种类型的问题时,可以按照以下思路来排查。

4.1 提交数据与预期不符

1)使用填报调试,点击提交后,查看「调试日志」页展示的数据过滤后的条数,以及增删改的条数,判断问题是出在哪个阶段。

2)如果是过滤阶段的问题,可以查看过滤详情,找到条数出现异常的具体阶段,检查相关设置。

3)如果是提交阶段的问题,可以将日志等级设置为debug,然后查看提交执行日志,从具体sql语句中查找出现异常的数据。

注:在解决完问题后,需要将日志等级改回原有等级,避免出现debug级别下日志输出太多造成工程负荷提升的问题。

如果无法将日志等级设置为debug来排查,也可以在数据详情界面查看数据入库前的值,确定是否在计算数据时出现了问题。

4)如果提交详情页面出现了下面的数据主键重复提示,则大概率会导致提交数据缺失或者异常的问题,需要检查是否主键设置错误,或者数据存在重复。

4.2 提交报错

1)在填报常见报错代码文档中搜索是否有类似报错,如果未找到,也可以百度查询报错信息。

2)可以将日志等级设置为debug,然后查看提交执行日志,从执行的最后一句sql语句中分析异常原因。也可以直接复制该sql语句到数据库执行测试。

注:在解决完问题后,需要将日志等级改回原有等级,避免出现debug级别下日志输出太多造成工程负荷提升的问题。

3)如果无法将日志等级设置为debug来排查,也可以使用二分法,对模板填报属性进行删减,定位到具体是哪一个字段的什么数据出现了问题。

4.3 提交慢

1)使用填报调试,点击提交后,查看调试日志」页展示的数据过滤和数据提交阶段的耗时,确认问题出在哪个阶段。

2)如果是过滤阶段的问题,可以查看过滤详情中数据计算和数据过滤的时间。如果是计算慢则可以查看填报属性中设置的公式是否存在性能问题,例如取数函数(sql、value、ds1.select);如果是过滤慢,则可以查看提交条件的设置,是否存在性能问题。

3)如果是提交阶段的问题,可以查看执行日志,确认问题出在删除、更新、插入的哪些阶段。如果是更新或者删除阶段慢,可以尝试在数据库增加该表的索引来提高填报性能。

4)如果以上步骤无法解决提交慢的问题,可以参考填报常见性能问题文档做进一步排查。


5. 注意事项编辑

1)now(),uuid()等会不断变化的公式,且勾选了「填报/分析时,保留公式用于计算」时,每次刷新调试对话框,该公式的结果都会被标记为绿色的修改状态。

2)被「提交条件」过滤掉的数据不会出现在调试对话框中。比如设置提交条件为产品ID=1时,结果如下:

3)主键字段会统一靠前展示

4)模板存在笛卡尔积时,会有如下报错。

5)在调试对话框中刷新数据后,页面上的数据修改状态(红色小三角)会清空。

6)数据在调试对话框中的展示顺序和最终入库后的顺序不保证一致。

7)调试对话框每次刷新后,绿色标记展示的都是当次操作后的结果,所以如果连续刷新2次,就不会有绿色的状态显示了。