Calculate report generation time between initialize and afterFactory events
Clement Wong
E mod
If we take a look at the order of events for report generation (http://www.eclipse.org/birt/documentation/integrating/scripting.php), you'll find the following events where we calculate the time between the initialize and the afterFactory events.<br />
<br />
<br />
First, we will save the start time in the initialize event. We first need to detect which phase initialize is called because it's called twice, once for generation and another during rendering.
Second, we will take the time at the afterFactory event. We'll calculate the difference between the end and start time, and save this in a persistent global variable.
Finally, we'll insert a label into the report, and modify its onRender event. We will write out the elapsed time in milliseconds in the label's text.
This report was tested in OS BIRT 3.7.2, and in iHub 16.2.
<br />
<br />
First, we will save the start time in the initialize event. We first need to detect which phase initialize is called because it's called twice, once for generation and another during rendering.
if(reportContext.getTaskType() == Packages.org.eclipse.birt.report.engine.api.IEngineTask.TASK_RUN){ reportContext.setGlobalVariable("startTime", new Date()); }<br />
Second, we will take the time at the afterFactory event. We'll calculate the difference between the end and start time, and save this in a persistent global variable.
var elapsedTime = new Date() - reportContext.getGlobalVariable ("startTime"); reportContext.setPersistentGlobalVariable ("reportRenderTime", elapsedTime.toString()); // This debugging is only available in commercial BIRT // // Messages will appear in the Eclipse > Error Log window // //var logger = java.util.logging.Logger.getLogger("birt.report.logger"); //logger.warning ( elapsedTime ); // Time in milliseconds<br />
Finally, we'll insert a label into the report, and modify its onRender event. We will write out the elapsed time in milliseconds in the label's text.
this.text = 'Report generation time (ms): ' + reportContext.getPersistentGlobalVariable("reportRenderTime");<br />
This report was tested in OS BIRT 3.7.2, and in iHub 16.2.
Warning
No formatter is installed for the format ipb
0
Categories
- All Categories
- 108 Developer Announcements
- 53 Articles
- 106 General Questions
- 145 IM Services
- 43 OpenText Hackathon
- 32 Developer Tools
- 20.6K Analytics
- 4.1K AppWorks
- 8.9K Extended ECM
- 899 Cloud Fax and Notifications
- 77 Digital Asset Management
- 9.3K Documentum
- 29 eDOCS
- 120 Exstream
- 39.8K TeamSite
- 1.7K Web Experience Management