...
一般报表比较复杂,组件数量较多,或筛选器的选中值非常多时,会导致pagestate很大。这种情况比较明显的特征是只有部分复杂的仪表盘导出异常,简单的仪表盘是能够成功导出的。部分复杂的仪表盘导出异常,简单的仪表盘是能够成功导出的。
可以新建一个比较简单的仪表盘,比如只有一个组件(富文本 、柱图等)来测试导出功能,如果这个简单的仪表盘可以正常导出,而复杂的仪表盘无法正常导出,则可以判断是pagestate很大导致的,可以通过放开请求体大小的限制解决,具体步骤如下:来测试导出功能,如果这个简单的仪表盘可以正常导出,而复杂的仪表盘无法正常导出,则可以判断是pagestate很大导致的,可以通过放开请求体大小的限制解决,具体步骤:在smartbi服务器tomcat的server.xml配置 maxPostSize = '-1' 。;如果有用到我们的proxy,也需要在proxy的tomcat服务器上配置 maxPostSize = '-1',同理其他代理如nginx等也是需要同样的操作,这样做的原因是为了放开请求体大小限制
...
4)出现finish,说明仪表盘已加载完成,将进行截图,接着就是png rendered: 3456ms,说明已经截图完毕,并且从打开仪表盘到截图完毕花了3456毫秒
3.1 常见的异常日志
1)出现以下报错信息1)超时导致报错
代码块 | ||
---|---|---|
| ||
Session closed. Most likely the page has been closed. error (Runtime.callFunctionOn): Target closed. |
页面一直没有出现加载完成的标志db-page__page-loaded
,
直到5分钟后超时,浏览器关闭,导出引擎日志就会显示以下报错。
2)单个组件导出错误出现
2、
代码块 |
---|
Node is either not visible or not an HTMLElement |
这种常见于单个组件的导出,单个组件导出逻辑是先打开整个仪表盘,然后定位到导出的组件元素,再进行截图,如果定位不到该组件,就会报以上错误。
如果是没有宏的情况下报这类问题则大部分是bug,产品的逻辑没有处理好,但如果是宏隐藏了某个组件,某个操作后又显示该组件进行导出时,这类问题导出引擎无法执行那个特定动作,去触发组件显示,所以无法正常导出,需要针对具体场景,通过其他方式规避
...