Release Notes for ReportServer 4.6.0

These release notes reflect the changes with respect to ReportServer RS4.5.0-6089.

Some Important Features and Noteworthy Improvements for ReportServer RS4.6.0

SAP HANA support

SAP HANA is a multi-model database that stores data in its memory instead of keeping it on a disk. The column-oriented in-memory database design allows you to run advanced analytics alongside high-speed transactions – in a single system. Why is this so important? Because it lets companies process massive amounts of data with near-zero latency, query data in an instant, and become truly data-driven. By storing data in column-based tables in main memory and bringing online analytical processing (OLAP) and online transactional processing (OLTP) together, SAP HANA is unique – and significantly faster than other database management systems (DBMS) on the market today.

ReportServer supports SAP HANA by its official JDBC driver ngdbc.jar, downloadable from SAP.

AWS Athena

Amazon AWS Athena is an interactive query service that makes it easy to analyze data directly in Amazon Simple Storage Service (Amazon S3) using standard SQL. With a few actions in the AWS Management Console, you can point Athena at your data stored in Amazon S3 and begin using standard SQL to run ad-hoc queries and get results in seconds.

ReportServer supports AWS Athena by its official Simba JDBC driver AthenaJDBC42-VERSION.jar, downloadable from AWS.

YugabyteDB support

YugabyteDB is a high-performance, cloud-native, distributed SQL database that aims to support all PostgreSQL features. It is best suited for cloud-native OLTP (i.e., real-time, business-critical) applications that need absolute data correctness and require at least one of the following: scalability, high tolerance to failures, or globally-distributed deployments.

ReportServer supports YugabyteDB by its official JDBC driver, downloadable from here.

CockroachDB support

CockroachDB is a distributed SQL database built on a transactional and strongly-consistent key-value store. It scales horizontally; survives disk, machine, rack, and even datacenter failures with minimal latency disruption and no manual intervention; supports strongly-consistent ACID transactions; and provides a familiar SQL API for structuring, manipulating, and querying data.

ReportServer supports CockroachDB by the Postgres driver shipped with ReportServer.

Exasol support

Exasol is a parallelized relational database management system (RDBMS) which runs on a cluster of standard computer hardware servers. Following the SPMD model, on each node the identical code is executed simultaneously. The data is stored in a column-oriented way and proprietary in-memory compression methods are used.

ReportServer supports Exasol by its official JDBC driver exasol-jdbc.jar

Incorta support

Incorta is an end-to-end data and analytics platform for acquiring, processing, analyzing and presenting business applications data.

ReportServer supports Incorta by the PostgreSQL driver shipped with ReportServer.

CrateDB support

CrateDB is a distributed SQL database management system that integrates a fully searchable document-oriented data store.

ReportServer supports CrateDB by its official JDBC driver, downloadable from here

Derby support

Apache Derby is an open-source relational database management system (RDBMS) developed by the Apache Software Foundation that can be embedded in Java programs and used for online transaction processing.

ReportServer supports Apache Derby by its official JDBC driver derbyclient.jar, downloadable from here

REST API

ReportServer publishes several REST API endpoints automatically which can be used for accessing given REST services.

These include the following:

Details of specific usage can be found in the Administration Guide.

Remote Servers

ReportServer 4.6.0 introduces a new kind of node called "remote server". This is used to defined remote ReportServer servers, which can be then used to copy external data, e.g. reports or users from another ReportServer installation (e.g. PROD) into your local ReportServer installation (e.g. TEST) (refer to this for more information).

Currently, remote RS REST servers are supported, which use the ReportServer REST API.

The following screenshot shows an example remote RS REST server definition.

Allow to copy remote RS entities to local RS installation

By using the remote RS servers explained here, you can now copy entities from a remote RS server into a local RS installation, e.g. from PROD to TEST, using the "rpull copy" terminal command as shown in the following.

The screenshot below first checks if the copy can be done correctly, then it copies reports (including variants) from the remote PROD server, remote location /reportmanager/myreports to the local location /reportmanager/import:

Allow to render DOT files to SVG

Any DOT file can now be easily rendered into a SVG graph in ReportServer with help of the "dot-renderer" REST service as shown in the following screenshot. The DOT file in the example can be found here.

Allow to export dynamic list prefilter to DOT file

The dynamic list prefilter can now be exported as a DOT file, which can be visualized in any Graphviz tool, including ReportServer, as shown in the following screenshots:

Allow to replace user of all active scheduler jobs

You can now replace an old user with a new user in all owners, executors, scheduled-by and recipients of all active scheduler jobs with "scheduler replaceUser" terminal command as shown below.

Allow to copy all parameter definitions of a report

You can now use the "copy parameterDefinitions" terminal command for copying all parameter definitions of a report as shown in the screenshot below. The command copies all parameter definitions from an origin report to a target report. If the reports are variants, their parent base reports are used. Note that dependencies on other parameters are not copied, so these have to be copied manually.

Note that you can also copy parameter definitions with the "copy" and "paste" context menu items of the parameter management panel as shown below.

Allow to list, add and modify registry entries

The script registry can be modified via the new "registry" terminal commands as shown below.

The registry entries can be listed and completely cleared as shown below.

Individual entries can be removed as shown below.

To add or modify entries you can use the "registry put" terminal command as shown below.

Allow to list, add and modify the properties mapping

The properties mapping can be modified via the new "properties" terminal commands as shown below.

The properties entries can be listed and completely cleared as shown below.

Individual entries can be removed as shown below.

To add or modify entries you can use the "properties put" terminal command as shown below.

Extend "General Info" system console

The "General Info" system console was extended to include more system and usage properties as shown in the screenshot below.

Allow to access datasources by key

Analogously to reports, you can now set a unique key to your datasources and access them by key, e.g. by "net.datenwerke.rs.core.service.datasourcemanager.DatasourceService.getDatasourceByKey(String)".

The same applies to datasinks and remote servers.

Display manual LDAP import results

Executing a manual LDAP import now displays the specific import results as shown in the following screenshot. This allows easier problem debugging.

Allow executing HQL queries

You can now execute HQL (Hibernate Query Language) database queries and displays the results directly in ReportServer as shown in the following screenshot.

Customizing the Logout URL

By default, when a user logs out, the user will be taken back to the original ReportServer login page. In order to change this, you can change the config file located in etc/security/misc.cf within the ReportServer filesystem.

An example of this is shown below.


<logout>
     <url>http://your-reportserver/ReportServer/reportserver/fileServerAccess?path=/resources/public/login.html</url>
</logout>

The example above redirects the user to the given URL instead of the original ReportServer login page.

This is useful when customizing the login page, you can find more details on customizing the login page the Configuration Guide.

The default etc/security/misc.cf configuration file is shown below.

The global search can be now easily accessed via the new admin panel button as shown in the following screenshot.

New Features, Improvements and Bug Fixes for ReportServer RS4.6.0-6090

RS-6873 New Feature Allow to configure to export NULL values as empty cell or String in dynamic list Excel export
RS-6882 New Feature Replace an old user with a new user in all owners, executors, scheduled-by and recipients of all active scheduler jobs with "scheduler replaceUser" terminal command
RS-6889 New Feature Add script for copying parameter definitions: copyReportParameterDefinitions.groovy
RS-6898 New Feature Add replaceSchedulerUser.groovy example script for replacing an old user with a new user in all owners, executors, scheduled-by and recipients of all active scheduler jobs
RS-6905 New Feature Add "copy parameterDefinitions" terminal command for copying all report parameter definitions from an origin report to a target report
RS-6906 New Feature Allow to copy-paste parameter definitions via context menu
RS-6927 New Feature REST: allow to export reports via "node-exporter" resource
RS-6953 New Feature REST: allow to export users via "node-exporter" resource
RS-6958 New Feature REST: allow to export datasources via "node-exporter" resource
RS-6959 New Feature REST: allow to export datasinks via "node-exporter" resource
RS-6960 New Feature REST: allow to export files via "node-exporter" resource
RS-6961 New Feature REST: allow to export dashboards via "node-exporter" resource
RS-6966 New Feature Add "headless" information to "General info" system console
RS-6969 New Feature Add available font names to "General info" system console
RS-6977 New Feature Allow to add and configure "Remote RS Servers" entities
RS-6981 New Feature Allow to copy remote users to local installation with "importRemoteEntities.groovy" sample script
RS-6982 New Feature Allow to import remote users with "rpull copy" terminal command
RS-6992 New Feature Add user and group statistics to "General info" system console
RS-7003 New Feature Add T_AGG_ORDER JXLS template example
RS-7048 New Feature Add REST URL to "env" terminal command
RS-7049 New Feature Allow to import remote reports with "rpull copy" terminal command
RS-7051 New Feature Allow to import remote report variants with "rpull copy -v" terminal command
RS-7057 New Feature Allow to configure datasource mappings in "main/rssync.cf" and use these in "rpull copy" terminal command
RS-7058 New Feature Allow to configure "rpull copy" mapping priorities
RS-7062 New Feature Allow to list all registry entries with "registry list" terminal command
RS-7066 New Feature Allow to check for import errors with "rpull copy -c" terminal command
RS-7069 New Feature Add "sql2json.groovy" example script to query a database and convert the resulting rows to a JSON
RS-7077 New Feature Add @CommitFlushMode annotation for allowing to change flush mode temporarily to COMMIT flush mode
RS-7079 New Feature Allow to clear all registry entries with "registry clear" terminal command
RS-7080 New Feature Allow to remove a specific registry entry with "registry remove" terminal command
RS-7081 New Feature Allow to check if registry contains an entry with "registry contains" terminal command
RS-7082 New Feature Allow to add and modify a registry entry with "registry put" terminal command
RS-7086 New Feature Allow to list all properties with "properties list" terminal command
RS-7091 New Feature Allow to clear all properties with "properties clear" terminal command
RS-7092 New Feature Allow to remove a specific property with "properties remove" terminal command
RS-7093 New Feature Allow to check if properties map contains an entry with "properties contains" terminal command
RS-7094 New Feature Allow to add and modify a property entry with "properties put" terminal command
RS-7097 New Feature Allow to configure to export NULL values as empty cell or String in dynamic list JSON export
RS-7098 New Feature Allow to configure to export NULL values as empty cell or String in dynamic list JSON (compact) export
RS-7099 New Feature Allow to configure to export NULL values as empty cell or String in dynamic list HTML export
RS-7100 New Feature Allow to configure to export NULL values as empty cell or String in dynamic list PDF export
RS-7101 New Feature Allow to configure to export NULL values as empty cell or String in dynamic list XDOC template export
RS-7102 New Feature Allow to configure to export NULL values as empty cell or String in dynamic list CSV export
RS-7106 New Feature Allow to configure to export NULL values as empty cell or String in dynamic list JXLS template export
RS-7107 New Feature Allow to configure to export NULL values as empty cell or String in dynamic list velocity template export
RS-7108 New Feature Allow to configure to export NULL values as empty cell or String in dynamic list XLST template export
RS-7116 New Feature Add YugabyteDB support
RS-7124 New Feature Add CockroachDB support
RS-7126 New Feature Add SAP HANA support
RS-7128 New Feature Add Exasol support
RS-7130 New Feature Add Incorta support
RS-7132 New Feature Allow to import remote files with "rpull copy" terminal command
RS-7137 New Feature Allow to import remote datasources with "rpull copy" terminal command
RS-7139 New Feature Allow to import remote dashboards with "rpull copy" terminal command
RS-7140 New Feature Allow to import remote datasinks with "rpull copy" terminal command
RS-7145 New Feature Allow to access datasources by key
RS-7146 New Feature Allow to access datasinks by key
RS-7148 New Feature Add REST URL to "General Info" system console
RS-7149 New Feature Add REST URL to error log when report execution throws an exception
RS-7150 New Feature Show base report count in "env" terminal command
RS-7151 New Feature Show base report count in "General Info" system panel
RS-7152 New Feature Show variant count in "env" terminal command
RS-7153 New Feature Show variant count in "General Info" system panel
RS-7158 New Feature Allow to query all installed report variants types
RS-7159 New Feature Show specific report count in "env" terminal command
RS-7160 New Feature Show specific report variant count in "env" terminal command
RS-7161 New Feature Show specific report count in "General Info" system panel
RS-7162 New Feature Show specific report variant count in "General Info" system panel
RS-7172 New Feature Add JsonService for easy JSON object conversion
RS-7232 New Feature Add CrateDB support
RS-7233 New Feature Add AWS Athena support
RS-7234 New Feature Add Derby support
RS-7255 New Feature Allow to access remote RS servers by key
RS-7256 New Feature Use "Remote RS Servers" in "rpull copy" terminal command
RS-7257 New Feature Allow to import and export remote RS servers
RS-7258 New Feature REST: allow to export remote servers via "node-exporter" resource
RS-7260 New Feature Allow to duplicate remote RS servers
RS-7262 New Feature Display datasink statistics in "env" terminal command and "General info" system console
RS-7265 New Feature Display remote server statistics in "env" terminal command and "General info" system console
RS-7284 New Feature Allow to export dynamic list prefilter to DOT file
RS-7285 New Feature Display dynamic list template statistics in "env" terminal command and "General info" system console
RS-7287 New Feature Allow to execute HQL queries with "hql" terminal command
RS-7296 New Feature Add JQuery example for customizing login page to GitHub rs-samples
RS-7297 New Feature Add simple example for customizing login page to GitHub rs-samples
RS-7301 New Feature Add remote servers to virtual file system
RS-7302 New Feature Allow to import remote remote servers with "rpull copy" terminal command
RS-7305 New Feature "rpull copy" terminal command should check if elements contain keys and if the keys do not exist in the local system
RS-7307 New Feature Use key-based datasource mapping in rssync.cf configuration file
RS-7308 New Feature Allow to test remote RS REST servers
RS-7337 New Feature Add global constants to "General info" system console
RS-7338 New Feature Add scheduler statistics to "General info" system console
RS-7339 New Feature Add TeamSpace statistics to "General info" system console
RS-7341 New Feature Add file system usage statistics" to "General info" system console
RS-7344 New Feature Add relational database usage statistics to "General info" system console
RS-7346 New Feature REST: Allow to render DOT files in virtual filesystem to SVG
RS-7366 New Feature Add user variable statistics to "General info" system console
RS-7370 New Feature Add DOT_SVG_scriptreport.groovy example to show how to render and display a DOT file to SVG as a script report
RS-7373 New Feature Allow to export dynamic list prefilter to SVG graph
RS-7377 New Feature Allow to render DOT to text-based formats and binary-based formats
RS-7379 New Feature Add "Global search" button to "Admin panel" system console
RS-7386 New Feature Add folder count in "General info" system console
RS-7388 New Feature Add datasource usage statistics to "General info" system console
RS-6379 Improvement Add "apikey" to default user property list in UI
RS-6903 Improvement Improve string representation of some entities
RS-6907 Improvement Replace cleanDuplicated() with ClonePostProcessor
RS-6925 Improvement Refactor "copyTableContents" terminal command into "copy tableContents" terminal command
RS-6941 Improvement Add icons to "copy" and "paste" context menu
RS-6954 Improvement REST: return internal server error on "node-exporter" error
RS-6955 Improvement REST: check read permissions on "node-exporter" node
RS-6956 Improvement REST: return unauthorized status on authentication error and internal server error on other cases
RS-7054 Improvement "rpull copy" terminal command should use COMMIT flush mode
RS-7055 Improvement Add output information to "rpull copy" terminal command
RS-7056 Improvement Add duration to "copy tableContents" terminal command
RS-7060 Improvement Better date formatting in datasinks
RS-7061 Improvement Add output details to "rpull copy" terminal command
RS-7064 Improvement "rpull copy" terminal command should throw exception if datasource mapping is not possible
RS-7104 Improvement Change default export NULL values as empty cell in dynamic list export
RS-7117 Improvement Sort relational datasource types in alphabetical order
RS-7135 Improvement Importer should use @CommitFlushMode annotation
RS-7165 Improvement Refactor general info module to use hooks and maps
RS-7175 Improvement Add key to default and demo datasources and datasinks
RS-7177 Improvement Support datasource keys in "default datasource" configuration of datasources.cf configuration file
RS-7180 Improvement Show ID in existing key error messages
RS-7182 Improvement Refactor database datasource naming and driver settings
RS-7208 Improvement Display manual "ldapimport" terminal command results
RS-7215 Improvement Datasource and datasink tests should show root error message in message box
RS-7241 Improvement Better error message when ldapimport fails because of invalid number of nodes
RS-7254 Improvement Show correct icons for remote RS servers
RS-7271 Improvement Refactor remote RS servers out of remote servers packages
RS-7280 Improvement Refactor usage statistics into blocks
RS-7288 Improvement Better string representation of report properties
RS-7311 Improvement Refactor "Remote RS Server" to "Remote RS REST Server"
RS-7316 Improvement Allow to use "rpull copy" terminal command into non-empty directories
RS-7317 Improvement REST: Better error messages for "node-exporter"
RS-7328 Improvement Use key instead of name in internaldb.cf configuration file
RS-7332 Improvement Check remote RS REST URL for empty URL or empty protocol
RS-7353 Improvement Add graphviz-java-0.18.1.jar dependency
RS-7354 Improvement Add graphviz-java-all-j2v8-0.18.1.jar dependency
RS-7355 Improvement Add j2v8_linux_x86_64-4.6.0.jar dependency
RS-7356 Improvement Add j2v8_macosx_x86_64-4.6.0.jar dependency
RS-7357 Improvement Add j2v8_win32_x86_64-4.6.0.jar dependency
RS-7358 Improvement Add j2v8_win32_x86-4.6.0.jar dependency
RS-7359 Improvement Add viz.js-graphviz-java-2.1.3.jar dependency
RS-7360 Improvement Add batik-codec-1.16.jar dependency
RS-7361 Improvement Add jersey-media-multipart-2.37.jar dependency
RS-7362 Improvement Add mimepull-1.9.13.jar dependency
RS-7369 Improvement Use datasink keys in datasinks.cf configuration file
RS-7384 Improvement Allow to resize SVG prefilter window
RS-7103 Bug Removing column format is not resetting "export NULL as String" setting
RS-7109 Bug Conversion error in dynamic list template export
RS-7270 Bug Datasink/datasource/remote server-import is not handling existing key correctly
RS-7276 Bug Search is not showing correct texts for remote servers
RS-7278 Bug General info system console is throwing exception
RS-7279 Bug "env" terminal command is throwing exception if datasource's JDBC properties are empty
RS-7289 Bug "hql" terminal command is only working if results are entities
RS-7290 Bug getDatasourceByKey(), getDatasinkByKey(), getRemoteServerByKey() are always returning null
RS-7303 Bug "rpull copy" terminal command is not working if path contains spaces
RS-7304 Bug Missing method exception when rssync.cf is not found
RS-7312 Bug "rpull copy" terminal command is not working for single objects
RS-7318 Bug "rpull copy" terminal command tries to import unrelated users
RS-7326 Bug "rpull copy" terminal command is not working for single users
RS-7363 Bug Dynamic list prefilter DOT export is showing status window multiple times
RS-7415 Bug "properties clear" terminal command is not working correctly