A Domain is a virtual view, created and stored on the server without modifying the data source. Through a Domain, users see columns that have been joined, filtered, and labeled for their business needs. Security policies limit the data values users can access through a Domain. Domain presents the data in business terms appropriate to your users/audience and can limit the access to data based on the security permissions of the person running the report.
DEFTeam has gone one level ahead and we have given different row limits for each organization or tenant. Let us say when Joe, a user from HR organizations, logs into JasperReports Server then he has access to see only 50 rows of data and when David, a user logs in from SALES organization, he sees 1000 rows of data in an ad-hoc report. Currently, JasperReports Server provides the setting up of max dataset row limit at the server level under the following path:
Manage → Server Settings → Ad Hoc Editor Settings (only admin user can set this limit)
It is a common setting across multiple tenants. When the admin user sets this limit, the limit is applicable to every tenant. Let us take an example. We have put a 200000 dataset row limit and you can see in the image given below.
DEFTeam has implemented a workaround where the admin user sets the dataset row limit (in the .XML file) for each user of every tenant and our customized code reads and assigns the dataset row limit as specified by the admin. Now, when any user logs into Jasper Server, customized JSP file will read the dataset row limit configuration file and assign the dataset row limit for the logged-in user. If any user tries to view more rows of data the system will give the “System row limit exceeded: 20” error as shown in the image below. With this workaround, all changes take place without restarting the JasperReports Server or its services.
There are various advantages of implementing the above functionality in Jasper. These are: