Release Notes for ReportServer 3.1.2

These release notes reflect the changes with respect to ReportServer 3.1.1.

Some Important Features and Noteworthy Improvements for ReportServer RS3.1.2

Allow to disable scheduler by reportserver.properties file

You can now disable the scheduler by setting the following property in your reportserver.properties file:


rs.scheduler.disable = true
This allows you to make sure no scheduler jobs are being executed when starting ReportServer.

Allow linking to URLs from the dynamic lists

ReportServer allows you to link your dynamic lists to a (possibly external) URL. This may be very practical if the link contains additional information of the record clicked on. Useful examples include opening a new report based on a given id (e.g. by httpauthexport), performing a Google search based on a given value, etc. This is achieved in ReportServer by using the metadata datasource. Along with the four columns described in the documentation, the metadata datasource query may contain a fifth column for this purpose. Therefore, the fourth column (default column width in the dynamic list preview) is required in this case although it is normally optional. Its value may be of course NULL if no default width is required. An example query containing the five columns could be:


SELECT column_name, default_alias, description, default_width, 
'linkto|http://URL/reportserver/httpauthexport?&user=myuser&id=20616&format=PDF&p_id=$' + '{value}' as link
FROM METADATA

Note that the string begins with a "linkto|" substring. In this case, ReportServer recognizes the rest of the string as a link. The example link points to a PDF report which expects an "id" parameter. You can use ${value} for passing the value of the cell where the user right-clicked on to your URL. ${value} is being concatenated in the query in order to avoid that ReportServer handles this as a parameter. Also note that in order for the example to work, the user has to right-click a column in the dynamic list preview containing the id to be passed as a parameter to the URL. The context menu will contain a "Link to..." entry which opens a new window containing the URL for the given entry.

Other colum values in the row clicked on can also be referenced in the link. Further, geolocations can also be linked, which jump to the location specified in Google Maps. Refer to the documenation for more details.

Common Table Expressions (CTEs)

Common Table Expressions (CTEs) are now supported in ReportServer. Refer to the following example in MSSQL syntax.


WITH USERS_CTE (username, firstname, lastname)  
AS  (  
SELECT username, firstname, lastname from RS_USER
)  
SELECT * from USERS_CTE

If you write this valid query into your dynamic list's query, you will get an error. This error appears because of the query generated by ReportServer. In order to solve this problem, you can mark the CTE expression as follows.


/*<rs:cte>*/
WITH USERS_CTE (username, firstname, lastname)  
AS  (  
SELECT username, firstname, lastname from RS_USER
)  
/*</rs:cte>*/
SELECT * from USERS_CTE

Changing Query Being Sent to DB

If you need to modify the query before it is being executed, take a look at the net.datenwerke.rs.base.service.dbhelper.hooks.StatementModificationHook.

Using Script and CSV Datasources with Pixel-Perfect Reports: Jasper, BIRT, JXLS

For using script datasources (csv datasources analogously) together with pixel-perfect reports, you need additional minor configuration in the given reports. The configuration is based on the following. The data of script datasources is buffered to internal temporary tables. The query type to be used is


SELECT * FROM _RS_TMP_TABLENAME

where "_RS_TMP_TABLENAME" is a temporary table name assigned by ReportServer. Note that the variable "TMP_TABLENAME" was renamed to "_RS_TMP_TABLENAME", so you have to change your queries accordingly. The following replacements are available:

These replacements can be used in pixel-perfect reports as described in the Scripting Documentation. Further, you can now send arguments to the script datasource analogously as with dynamic lists.

Sending and scheduling reports to FTP Server

With ReportServer 3.1.2 you can send and schedule reports to a FTP server. The configuration of the FTP server can be configured here: /fileserver/etc/exportfilemd/storage.cf


  <ftp disabled="false" supportsScheduling="true">
    <host>ftp.host.net</host>
    <port>21</port>
    <username>rs@host.net</username>
    <password></password>
    <defaultFolder>./</defaultFolder>
  </ftp>

The scheduler notifications can be found here: /fileserver/etc/scheduler/scheduler.cf


  <fileactionFtp disabled="false" html="false">
	     <subject> </subject>
	     <text> </text>
  </fileactionFtp>

New Features, Improvements and Bug Fixes for ReportServer RS3.1.2

RS-3786 New Feature Scheduler can be disabled by reportserver.properties file setting: rs.scheduler.disable = true
RS-3795 New Feature Allow setting standard column width for the dynamic list preview in the report datasource metadata
RS-3900 New Feature Allow linking to Google Maps from the dynamic lists based on geolocation data
RS-3901 New Feature Allow linking to URLs from the dynamic lists
RS-3903 New Feature Allow referencing other column values while linking to URLs from the dynamic lists
RS-3919 New Feature Add parameter dadget to dashboard library
RS-3936 New Feature Add TeamSpace list to report documentation
RS-3939 New Feature Allow to use script arguments in script datasources of JXLS reports
RS-3943 New Feature Add scheduler information to report documentation
RS-3957 New Feature Add list of report variants to report documentation
RS-3966 New Feature Allow to use script arguments in script datasources of Jasper reports
RS-3978 New Feature Allow to use script arguments in script datasources of BIRT reports
RS-4003 New Feature Allow to send reports via FTP
RS-4006 New Feature Allow to configure default FTP folder in storage.cf configuration file
RS-4011 New Feature Allow to schedule reports via FTP
RS-4014 New Feature Allow to disable sending reports via FTP
RS-4015 New Feature Allow to disable scheduling reports via FTP
RS-4017 New Feature Allow to configure FTP scheduler notifications
RS-4020 New Feature Allow to include "executor" and "scheduledBy" in scheduler notifications
RS-2406 Improvement Provide StatementModificationHook which allows to adapt dynamic list's query before its execution
RS-2407 Improvement Allow Dynamic Lists to handle CTEs
RS-3898 Improvement Add scripting and scheduler disabling configuration to reportserver.properties file skeleton
RS-3910 Improvement When submitting values in a parameter dadget, only refresh the dadgets that use the given parameters
RS-3920 Improvement Rename Dadget Library to Dashboard Library
RS-3925 Improvement Remove unnecessary freemarker-2.3.20.jar library
RS-3926 Improvement Remove unnecessary oro-2.0.8.jar library
RS-3927 Improvement Remove unnecessary stax-ex-1.7.jar library
RS-3928 Improvement Remove unnecessary saaj-api-1.3.4.jar library
RS-3929 Improvement Remove unnecessary kxml2-2.3.0.jar library
RS-3934 Improvement Add base report ID to report documentation
RS-3937 Improvement Show only TeamSpaces the user has right on in report documentation
RS-3942 Improvement Add column description to scheduling report information object
RS-3948 Improvement Extend scheduling service to allow fetching list of jobs of current user
RS-3950 Improvement Include server-side formatting helper
RS-3961 Improvement Allow to set different datasource selection trees for each report type form
RS-3970 Improvement Rename variable "TMP_TABLENAME" to "_RS_TMP_TABLENAME"
RS-3971 Improvement Rename variable "query" to "_RS_QUERY"
RS-3981 Improvement Show only Mondrian datasources in Saiku report form's datasource selection window
RS-3982 Improvement Remove Mondrian datasources from dynamic list, Jasper, BIRT, Crystal and JXLS report forms' datasource selection windows
RS-4007 Improvement transformAndKeepCallback in column width methods
RS-3590 Bug Moving / renaming variants per terminal "mv" command is not working
RS-3909 Bug No dadget write permissions should be necessary for using parameter dadget
RS-3914 Bug "Import dashboard" dialog should only show dashboard elements
RS-3915 Bug Dragging invalid objects should not be allowed in tree selection popup analogously as double-clicking them
RS-3916 Bug Error message when importing more than one dashboard
RS-3918 Bug Tree selection popup should remove DOM handlers when hiding
RS-3946 Bug Permission checks on report's scheduler job list are not sufficient in some cases
RS-3952 Bug New lines are not displayed correctly in report documentation
RS-3967 Bug Jasper reports are not working together with script datasources if the database cache setting of the script datasource is 0
RS-3973 Bug BIRT reports are not working together with script datasources if the database cache setting of the script datasource is 0
RS-3997 Bug Some Saiku reports produce a stack overflow error because of Hibernate deep unproxy
RS-3999 Bug Incorrect report documentation's logo example in theme.cf configuration file
RS-4016 Bug Executing scheduler jobs is possible in some cases even though owners do not have rights on the report
RS-4018 Bug User Variables tab is not being kept open when switching users
RS-4019 Bug Selecting FTP default folder is not working when editing FTP scheduling jobs