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 user from HR organizations logs into Jasperserver then he has access to see only 50 rows of data and when David user logs in from SALES organization he sees 1000 rows of data in an ad-hoc report. Currently, Jasperserver provides the setting up of max Dataset row limit at server level under 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 admin user set this limit, the limit is applicable to every Tenant. Let us take an example. We have put 200000 dataset row limit and you can see in the image given below.
DEFTeam has implemented a workaround where in admin user sets dataset row limit (in .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 JasperServer or its services.
There are various advantages of implementing the above functionality in Jasper. These are:
1. More detailed security. We can authorize each user with specific limits.
2. Admin user can set dataset row limit for any user of any Tenant/organization.
3. Dataset row limit for each Tenant can be achieved without applying security file to a domain.