页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

一般报表比较复杂,组件数量较多,或筛选器的选中值非常多时,会导致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)超时导致报错

代码块
languagejava
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,产品的逻辑没有处理好,但如果是宏隐藏了某个组件,某个操作后又显示该组件进行导出时,这类问题导出引擎无法执行那个特定动作,去触发组件显示,所以无法正常导出,需要针对具体场景,通过其他方式规避

...