search cancel

UIM/CABI - Scheduled dashboards to pdf files, show the graph layout but the data section displays as "Loading.."


Article ID: 75006


Updated On:


DX Unified Infrastructure Management (Nimsoft / UIM)


Scheduled dashboards to pdf files, show the graph layout but the data section displays as "Loading.." 

Depending on the circumstances, a given graphical element (such as a chart, a map, or a widget) in a report can be rendered in two ways:

• When run directly in the web UI, the browser itself renders the chart.
• When scheduled to run later or run in the background, an internal engine renders the chart.

By default, JasperReports Server's internal JavaScript engine is Rhino, which is an excellent solution for most cases; most JasperReports Server users can accept this default. However, you may want to investigate other engines if you encounter any of the following issues when scheduling chart-based reports or running them in the background:

• Poor performance when generating complex charts or charts that contain large volumes of data.
• Out of memory messages.
• Incorrect scaling when certain Pro Chart reports are printed.
• Results that don't match those generated when the report is run directly in the web UI. For example, text elements incorrectly sized or placed.

An alternative engine is provided in our installers; PhantomJS executes JavaScript when generating graphical reports that are run in the background or scheduled. PhantomJS is a headless WebKit with JavaScript API. To use PhantomJS when JasperReports Server is installed from the WAR file, download the correct version for your environment from PhantomJS and install it on the computer hosting JasperReports Server. For installation instructions, refer to the documentation provided with PhantomJS.

Once PhantomJS is installed, point JasperReports Server to its location. You can configure several processes to use PhantomJS: HighCharts generation, Pro Charts generation (including Pro Widgets and Pro Maps), and exporting dashboards.

More details here, Configuring a JavaScript Engine for Graphical Report Rendering - 


Environment details: 
- UIM 8.51 
- cabi probe (bundled) v3.20 
- robot v7.80 (where cabi is running) 
- uim_cabi_health_report_pack v1.20 
- uim_core_dashboard_pack v2.40 
- uim_unified_report_pack v1.02 
- ump_cabi v3.20



See the following article for steps on installing phantom.js: UIM/CABI, Export Dashboards to PDF files, appear blank as an empty document -

1. Stop the CABI robot service. 

2. Take a backup of the \Nimsoft\probes\service\wasp\webapps\cabijs\WEB-INF\classes\ file. 

3. Once a backup file has been created, modify the file and add the following properties: 

- com.jaspersoft.jasperreports.fusion.phantomjs.executable.timeout=600000
- com.jaspersoft.jasperreports.highcharts.phantomjs.executable.timeout=600000

Example of where to add those lines: 

# highcharts: phantomjs's executable absolute path

# fusioncharts: phantomjs's executable absolute path

*NOTE: The value 600000 is milliseconds*

4. Save the file.

5. Restart the CABI Robot Service and wait for all probes to turn green (get port and pid) 

6. Re-test generating a scheduled report.