Installation and Deployment for BIRT portlet for Liferay Applications
This write up includes information about:
[1] BIRT Server Setup
[2] Configure Liferay DXP Portlet
[3] Configure BIRT Report Portlet
[4] BIRT IPC sender Sample Portlet
[5] Application Developer
[1] BIRT Server Setup
Download BIRT runtime engine using the following link:
http://download.eclipse.org/birt/downloads/build.php?build=R-R1-4.6.0-201606072112
->Create a directory BIRT_HOME/reports
->Unzip the bundle under it where you will find the folder BIRT_HOME/reports/birt-runtime-4_6_0
->Create the following folders under it
1) BIRT_HOME/reports/logs
2) BIRT_HOME/reports/reportDesigns
3) BIRT_HOME/tmp
->Download Spring MVC bundle containing BIRT rest services from
https://github.com/Azilen/BIRT-Reporting-Liferay-Module/tree/master/BirtReport
->Update the application, properties and files with your system paths for the all variables such as:
1) reportEngine= xxx/yyy/BIRT_HOME/reports/birt-runtime-4_6_0/ReportEngine
2) reportDesignHome= xxx/yyy/BIRT_HOME/reports/reportDesigns/
3) logPath= xxx/yyy/BIRT_HOME/reports/birt-runtime-4_6_0/logs
4) outPath= xxx/yyy/BIRT_HOME/tmp
run: mvn Install command at root project folder and it will create war into the target folder copy. Deploy war into tomcat server running other than 8080, the default Liferay server port
[2] Configure Liferay DXP portlet
Download BIRT DXP portlet from
https://github.com/Azilen/BIRT-Reporting-Liferay-Module/tree/master/birt-report
The BIRT DXP portlet having portlet.properties file, update the parameter named birtServerUrl as
http://localhost:9090/BirtReport
where you have deployed Spring MVC bundle.
->Deploy the BIRT DXP portlet in Liferay DXP that includes another two portlets
1) BIRT Report portlet
2) BIRT IPC sender portlet
[3] Configure BIRT Report Portlet
->Find portlet.properties file, update the parameter named birtServerUrl where you have deployed Spring MVC bundle
->Find the selection box at Configuration page for selection of relevant reports. To change the report respective report parameters and query setting need to changes.
->The parameters available for selection use either configuration property or IPC values. You can set IPC render parameter and those Values can be used in the report Portlet
If Static parameter is selected, it will use configuration value
If IPC parameter is selected, it would get parameters values from IPC sender portlet
[4] BIRT IPC sender Sample Portlet (Reference How to send parameter through IPC)
It is the main page where we set and send parameters through IPC. Those parameters will be consumed by the main report portlet. For example,
->One parameter is ParamName where one should pass the comma separated parameter names only for those parameters, which are selected as IPC Parameter in report configuration page
->Second parameter is ParamValue where one should pass the comma separated parameter value for those parameters which are selected as IPC Parameter in report configuration page.
paramName: FirstName,LastName
paramValue: Virendra,Limbad
[5] Application Developer
Developer should create a portlet and pass the required parameter as defined above. If the report configuration set as startDate and endDate as IPCParam in main configuration then he should add
"javax.portlet.supported-public-render-parameter=paramName",
"javax.portlet.supported-public-render-parameter=paramValue"
For example, in property parameters for @component annotation in the portlet class file as IPC sender parameters and create an action method to save these parameters from jsp and save these parameter method should have something like this
actionResponse.setRenderParameter("paramName", paramName); actionResponse.setRenderParameter("paramValue", paramValue);
Pattern would be like this
actionResponse.setRenderParameter(“paramName”,”startDate,endDate”);
actionResponse.setRenderParameter("paramValue", “01/01/2016,02/02/2017”);
Main report portlet will be rendered using IPC parameter in portlet. This means main report portlet will not fetch values from configuration. It will fetch values from renderParameters from paramName and paramValue parameters