(此文档仅供参考)
我们在第三方系统中通过集成的方式打开smartbi报表资源进行浏览,或者通过跳转、传值的设置,打开一个新的报表或者刷新报表数据时,一般都会往这个新打开的、刷新的报表上传递参数,设置这个报表上的参数值。
在这些场景中,我们经常会出现因为参数值设置错误,导致报表没有数据或者数据不正确。
那么我们可以通过以下步骤进行检查,确认传递的参数值是否是正确的。
1.要检查参数值传递是否正确,首先我们要获取传递过来的参数的值是什么。在smartbi系统中,下拉框参数等有显示值和真实值的区分。我们可以先在报表上将参数的真实值进行展示。
a.如果是电子表格报表,可以在Excel中编辑该电子表格报表,选择一个多余的单元格。在单元格中引用参数的真实值。如下设置:
保存这些设置,然后重新按照之前打开这些报表的方式,操作一遍。检查传递过来的数据是什么
b.如果是其他类型的报表,请直接参考步骤2,获取sql,查看sql中的参数值是什么
2.通过上述步骤,传递过来了一个参数值。但是你也不知道这个参数值到底是不是正确的。此时可以获取这个报表上的sql,将其拿到数据库中直接执行,就可以验证这个参数值对应的sql的数据是否正确。
(1)首先,请确认打开这个报表的用户的角色中,拥有“定制管理”-》“系统运维”-“查看用户日志”的权限。该设置项在角色的“操作权限”中设置。如果没有,请勾选上
(2)使用管理者账号登录smartbi,先清空smartbi的系统缓存
注销管理者账号
(3)使用用户账号登录系统,打开以下界面,该界面URL为http://ip: port/smartbi/vision/userlogs.jsp
切换到“服务器端”,点击“开始监控”
(4)按照之前的操作步骤,重新操作一次,打开报表浏览
(5)切换到步骤(3)中的界面,可看到smartbi传送到数据库中执行的sql。将该sql拷贝到数据库中执行,确认数据是否正确(注意:如果是电子表格报表,可能有多个数据集执行。一定要找到对应的数据集sql)