The following workflow will introduce you to the key features and functionality of Jaspersoft’s flagship product, JasperReports Server, and allow you to see and interact with many of the features as part of your evaluation process.
The Jaspersoft BI Suite provides benefits to both business and IT audiences which enables self service BI for organizations of all sizes. The key benefits of the BI platform are:
The integrated end-to-end BI suite provides shared services, such as security, a repository, metadata, scheduling, and distribution of information. The heart of the Jaspersoft BI Suite is JasperReports Server.
The Jaspersoft BI Suite consists of five different components, which are listed below:
For those interested in embedding or integrating specific functions of the BI server within an application, or customizing Jaspersoft, you can do so in a variety of ways:
Jaspersoft offers several installation options. The easiest path is to download and install a bundled installation package. Our bundled installers are strongly encouraged for first-time evaluations, as they are easy to provision and de-provision and do not interfere with existing systems or processes.
Installing JasperReports Server is a simple process:
Take a free Online Learning Portal course:
For additional information, see the JasperReports Server Installation Guide also found in the
<JasperReports Server install root>/docs directory of your installation.
Jaspersoft Studio is the report developer tool for JasperReports. It simplifies the process of creating the JRXML files that describe the report queries and layout while exposing the most powerful capabilities of JasperReports. Jaspersoft Studio can be used to develop and test reports on your local desktop as well as connect to JasperReports Server to deploy reports or to browse and interact with existing reports within the JasperReports Server repository.
As part of your evaluation, we will introduce you to Jaspersoft Studio. We recommend that you install Jaspersoft Studio on your local desktop as part of your evaluation. If you installed JasperReports Server locally you must also chose to download and install Jaspersoft Studio as well.
To learn how to interact with your data, see the video below:
The following are some important initial configurations for your evaluation of JasperReports Server.
Proper configuration of your JVM is an important step to ensure performance and scalability of any JAVA application, including JasperReports Server.
Many of the JVM settings will be set appropriately by the installer, however it is recommended that you review the settings and adjust the memory allocation to your JVM according to your own needs and available resources. When choosing your memory allocation settings, you should consider the following:
A minimum heap allocation (-Xms) of 512 MB and a maximum heap allocation (-Xmx) of 1024 MB is recommended for evaluation purposes. For production purposes, it is recommended that you consider a higher allocation. In most cases, a maximum heap allocation between 4 GB and 8 GB has been sufficient for larger production implementations, but this can vary between implementation profiles.
To check your Java JVM settings refer to Section 6.2 of the JasperReports Server Installation Guide, "Setting Java JVM Options for Application Servers."
The scheduling functionality of JasperReports Server leverages the quartz framework to schedule the execution and delivery of reports via email. The email can include either a link to the report output within the JasperReports Server repository and/or an attachment of the actual report output. You will need to ensure that the appropriate configuration settings are set to ensure that:
See the following write-up on configuring the report scheduler for additional information and instructions: Configuring the JasperReports Server Report Scheduler.
JasperReports Server redistributes a Postgres database driver. If you need to connect to another database, you will need to acquire the appropriate driver and add it the application server's classpath.
The Jaspersoft Community Wiki page, Connecting JasperReports Server to your Database, particularly the section: JDBC Database Drivers, has download links to many of the various JDBC connectors provided by Database vendors.
You may need to check with your DBA to ensure you are using the correct driver.
JasperReports Server can use a JDBC or JNDI connector as the connection point to your dataset. In many cases, a JDBC connection is acceptable and can be configured without an application restart, however a JNDI connection provides more control over connection pooling and other scalability aspects around database connectivity. Setting up a JNDI connection (for use in defining a JNDI data source within the application) will vary depending on your chosen application server.
For additional information on setting up and troubleshooting a JNDI connection in Apache Tomcat, refer to the JasperReports Server Administrator Guide, JNDI Issues on Apache Tomcat. For other application servers, refer to the documentation provided by the application server vendor.
Configuring and connecting to your data is a critical first step with Jaspersoft Studio. The following steps will help you with this process.
Jaspersoft Studio connects to data through a data adapter. A data adapter is an XML file that contains information about where your data is located. It includes information such as a URL, user, password, paths, etc. A data adapter does not contain any data itself, the data is located in the JRDataSource.
Data adapters are used to:
See how to connect Jaspersoft Studio using the JDBC data adapter as well as other connection types such as Hibernate, Hadoop, MongoDB, XML, CSV, and custom data sources.
Jaspersoft Studio includes a JasperReports Server plug-in that provides the capability to browse the JasperReports Server repository and deploy reports to the server. You will need to configure the plug-in to connect to your JasperReports Server repository. See the Jaspersoft Studio User Guide and the “Connecting Jaspersoft Studio to JasperReports Server,” for additional information on configuring the plug-in to connect to your installation of JasperReports Server.
Complete start/stop instructions for JasperReports Server can be found in the JasperReports Server Installation Guide, “Starting and Stopping JasperReports Server.”
JasperReports Server has several default users that can be used to access the application, including a site-wide administrative user (superuser), an organization administrative user (jasperadmin), a sample end user (joeuser), and a user to demonstrate the ability to set a dashboard as the default landing page (demo). For information on accessing JasperReports Server, see the JasperReports Server Installation Guide, “Logging into JasperReports Server.”
Before working with your own data, watch this 4-minute product overview to learn the core capabilities of Jaspersoft including building and interacting with reports, dashboards, and analytic views.
There are two primary data source types for connecting to a SQL based database that we will focus on for evaluation purposes: A JDBC connection and a JNDI connection.
During the install and configuration steps, we showed how to set up a JNDI resource within the Tomcat application server. This resource will be referenced when setting up a JNDI data source connection. To define a JNDI data source connection within JasperReports Server, refer to the JasperReports Server Administration Guide, “JNDI Data Sources.”
To create a JDBC Data Source, you must have deployed the appropriate JDBC driver as outlined previously. Defining a JDBC Data Source is similar to how we defined the JNDI Data Source, refer to the JasperReports Server Administration Guide, “JDBC Data Sources.”
Domains are used to create representations of your data to match the business or object model your end users understand. They create a layer of abstraction between the user creating reports and the database with predefined joins, labels, etc. to make it easier for users to understand and create reports. Domains also add an additional layer of security to the data, creating the ability to create row and column-level security based on the user profile.
Learn and see the advantages of Domains in this short tutorial.
You can create a domain using the domain designer within the JasperReports Server interface. Refer to the JasperReports Server User Guide, “Creating Domains,” for details on domains and how to create your first domain.
Topics represent predefined queries and filters associated with a data source from which ad hoc reports can be created. They are typically created through Jaspersoft Studio by an administrator and deployed to the server for end-user convenience. Topics can also be saved from a Domain within the server as an intermediate step during the ad hoc report creation process.
Creating a topic in Jaspersoft Studio is similar to creating a report. Simply create a report with a query and filters, deploy it to the server in a Topics folder and associate it with a data source. Your users will be able to leverage this predefined set of data to create their next ad hoc report.
For additional information, see:
JasperReports Server gives end users the ability to analyze data using chart visualizations or tabular views against predefined topics, domains, or OLAP connections. The primary tool used to analyze data is the Ad Hoc designer. To get started, click on the Create>Ad Hoc View menu item and follow the workflow. The following tutorial shows an example of connecting to and analyzing data using JasperReports Server.
JasperReports Server offers tools for non-technical or BI administrators to build their own reports against a predefined topic, domain, or OLAP connection. This tutorial will show how to view, interact with, and define reports using the Ad Hoc Designer.
For more information on ad-hoc reporting refer to Section 4 on the following page: http://www.jaspersoft.com/olp/using-js-bi.
NOTE: If you're trying to build more advanced reports that are highly formatted, designed for print layout, or simply require more advanced report concepts, check out the "Creating a Report with Jaspersoft Studio" section below.
JasperReports Server allows end users to quickly create dashboards containing multiple reports from the repository along with external content. With dashboards, they will be able to create a single, comprehensive view of key business metrics for managers and executives. The tutorial below shows an end user building and interacting with a dashboard.
For more information on dashboards refer to Section 2 on the following page: http://www.jaspersoft.com/olp/using-js-bi.
Jaspersoft Studio is a powerful tool for creating custom reports leveraging the full power of the JasperReports reporting engine. To create your first report using Jaspersoft Studio check out our simple tutorial or read the chapter, "Creating a New Report" in the Jaspersoft Studio User Guide.
To learn more about Jaspersoft Studio, check out the tutorial series on our community site.
NOTE: we recommend using the JasperReports Server plug-in within Jaspersoft Studio to open and view sample reports within JasperReports Server. By viewing these reports, and possibly copying and modifying them on your own, you will have a better understanding of the capabilities of Jaspersoft Studio for report development.
Input Controls, or filters, are user interface components that provide end users with the ability to limit or select specific data to report on and analyze. By tying input controls to parameters defined within the report, JasperReports Server provides end users with the ability to modify the report query at run time.
Cascading Input Controls provide the ability for end users to select related report filtering options by limiting the available options within input controls based on the value(s) selected in a preceding input control. For example, a report may be filterable based on global regions, countries, states/provinces and cities. With cascading input controls, the available countries can be limited by the global region selected, the states/provinces can be limited by the countries selected, and so on.
A sample report using cascading input controls, named “Cascading multi select example report”, can be found within the Reports/Samples folder of the default organization if you installed the sample data within your implementation.
For convenience, end users can label and save a set of report options or input control selections that are commonly used for a report. By doing so, this saved option set can be used later to run the report based on a predefined set of filter options.
To save a set of report options:
Once you have saved a set of report options, the Input Controls dialogue for the report will include a “Use saved values” dropdown at the top that can be used to re-select these options for future report executions. In addition, within the repository viewer, the report will have an expandable list of saved options listed so that the saved options can be selected directly from the repository browser.
A sample report with saved options, named “Customers by State Report”, can be found in the Supermart Demo/Supermart Public folder of the default organization if you installed the sample data within your implementation.
Within JasperReports Server, a report developed using Jaspersoft Studio can leverage hyperlinks to enable the ability to drill from one report to a more detailed view of data making up a summary value within the report. For example, you may have a pie chart that shows the percent of total sales by region and each section of the pie chart could link to a second report showing the sales detail for that particular region.
Watch the video on how to interact with the sample data:
JasperReports Server provides a scheduling and distribution capability. Based on a set frequency or date, reports can be automatically executed and saved into the repository for future viewing. Email notifications can also be defined with the report schedule to notify individuals of the report’s availability either with a link back to the repository location or with the physical attachment of the report output to the email.
To schedule a report for future execution:
JasperReports Server supports use across multiple organizations or customers in a multi-tenant environment, maintaining security of reports and data between users from different organizations or customers. Each organization can have their own administrators, user roles, UI themes, data source definitions, and reports. Users will only have access to resources defined within their organization or published in the Public portion of the repository tree. JasperReports Server has a single standard organization by default called “organization_1”.
Setting up a new organization is a simple process:
The new organization now exists within your implementation. The superuser or the organization admin user(jasperadmin) can use the Manage>Users menu to set up users within the organization. Once you have defined a second organization within your implementation, the login screen for JasperReports Server will e xpose an additional organization field to specify the organization alias or organization id associated with the user that is logging into the system. Once a user has successfully logged in, the organization information will be stored in a browser cookie and will not be requested again unless the cookie is cleared or the user login is unsuccessful. Additionally, you can provide your users with a URL that specifies the organization so that they will not be asked for their organization id.
JasperReports Server leverages user roles to establish permissions over repository objects and folders. There are several roles defined already within the standard installation of JasperReports Server.
The following outlines how you can define your own user roles:
A user can have multiple user roles. The following are the steps to add a role to a user:
Users and roles can be granted specific permissions to folders and resources within the JasperReports Server repository. Access rights include options such as execute only, read, write, etc. to allow users or groups of users to view reports, execute against specific datasources, and create/deploy reports of their own. In order to set permissions, simply right click on the resource and select the permissions option. Permissions granted to parent folders are inherited by child folders unless set explicitly otherwise.
Data level security is a pretty common requirement in order to be able to present the appropriate slice of data to a particular user based on their profile. This is possible within JasperReports Server using domains. After an initial domain has been built to describe your data, an xml file with a certain schema can be designed where Groovy expressions can be used to secure both rows and columns in your data and domain.
Let’s look at an example of row level security :
<securityDefinition xmlns="http://www.jaspersoft.com/2007/SL/XMLSchema" version="1.0" itemGroupDefaultAccess="granted"> <resourceAccessGrants> <resourceAccessGrantList id="JoinTree_1_resource_access_grant" label="aLabel" resourceId="JoinTree_1"> <resourceAccessGrants> <resourceAccessGrant id="JoinTree_1_ROLE_USER_TENANTID_row_grant"> <principalExpression> authentication.getPrincipal().tenantId != null </principalExpression> <filterExpression> table.tenantcolumn == groovy('authentication.principal.tenantId.toUpperCase()') or ERSI_ESTIMATE.OPERATORCODE == groovy('authentication.principal.tenantId.toUpperCase()') </filterExpression> </resourceAccessGrant> </resourceAccessGrants> </resourceAccessGrantList> </resourceAccessGrants> </securityDefinition>
Let’s breakdown the steps to achieving this:
Column level security is similar except for the fact that itemGroupAccessGrants and itemGroupAccessGrantLists are used to secure the "items" (columns) that you have defined in the domain. Once the security file has been defined it is uploaded and attached to the domain and will take effect when the data and domain are accessed through JasperReports Server. It is highly recommended that the documentation be referenced in order to understand what id’s to use for each access grant.
If you are developing a product or managing an environment in which you want to integrate or embed BI, JasperReports Server provides several interfaces to allow you to do so quickly and easily. When integrating JasperReports Server into your environment or application, you will want to integrate two key areas: authentication and user interface.
We will introduce you to the Single Sign-On capabilities of JasperReports Server that will enable you to integrate with your chosen authentication mechanism. We will then introduce you to a few options for developing the integration between the user interface of your application and JasperReports Server
Implementing this mechanism results in a user being able to log into JasperReports Server based on a shared login mechanism and Id. Common external authentication mechanisms include LDAP, CAS, or SiteMinder. As an example, we will discuss integrating JasperReports Server with LDAP.
Configuring LDAP for JasperReports Server requires knowledge of your LDAP structure and system administration access to the server on which JasperReports Server is installed. Listed below are the high level steps involving modifications to the applicationContext-security.xml file within your JasperReports Server implementation:
There are 2 constructor arguments for this bean that must be configured; the first is the BindAuthenticator which handles binding and authenticating with ldap and the second is the ldapAuthoritiesPopulator which handles searching for a user roles and assigning them to the user for use within JasperReports Server.
The following video describes the integration between an Open LDAP server and JasperReports Server.
Integrating with other mechanisms such as Active Directory would involve a similar process.
For more information on Single Sign-On integration please refer to the JasperReports Server External Authentication Cookbook.
The JasperReports Server application can be customized to match the look and feel of another application and allow for rebranding of user interface. This is accomplished through the use of CSS based themes, which allow for a set of changes to be packaged together in one view. Themes are stored in the repository and are part of the user interface framework within JasperReports Server that provides for separation of structure, presentation, and events.
See the video below for an example of a theme and other examples of UI customization.
Reports and dashboards can be called via HTTP and embedded into other application using iFrames. There are a few different objectives that can be accomplished using this mechanism which are listed below. This is not an exhaustive list but a starting point for you to get an idea of what’s possible.
The video below covers an example of embedding a report into a web page using iFrames.
The SOAP & REST Web Services APIs allows for different components of the JasperReports Server application to be integrated into other applications via Web Service calls by the hosting application. This includes the repository services, scheduling services, domain services and administrative services. Web Services requests are authenticated using Spring Security and can be configured to use HTTPS.
See the video below for an example of a Java application that utilizes Web Services to provide JasperReports Server functionality in that application.
Many people choose to run their reporting and analytics on a database other than their operational data store, such as a data warehouse or secondary data mart. This is why we offer Jaspersoft ETL, a powerful data integration platform for data architects and ETL developers. It provides the ability to extract and transform data from multiple sources and store it into a single database. With hundreds of components and connectors, Jaspersoft ETL provides the ability to pull data from almost any database, file format, or Big Data source and transform and load it into an integrated database for reporting and analytical purposes.
See the video below for an introduction to Jaspersoft ETL.
Once you have installed JasperReports Server, a full set of standard documentation can be found in the
<JasperReports Server Install Root>/docs directory. You can also find all of our Documentation on-line at our Community Website.
JasperReports Server includes the option to install Sample Data and Reports. In addition, there are several sample reports, web services samples, etc. available in the
<jasperreports install server>ireport/demo/samples as well as the
<jasperreports install root server>/samples directory. Many of these samples are documented online:
With over 230,000 community members, the Jaspersoft community provides a place to interact with other Jaspersoft developers, administrators, and users. The Jaspersoft community is an invaluable resource for finding answers to common questions as well as those questions related to specific use cases you may be trying to address. Each core project has its own set of forums and wiki documentation. To access the Jaspersoft community site, go to http://community.jaspersoft.com/ .