You might have used same dataset more than
once. So for every appearance of corresponding dataset it is calling this api
again and again.
With Regards
Vivek Nath Tiwari
0522 4051203
From:
birt-report-designer-dev-bounces@xxxxxxxxxxx
[mailto:birt-report-designer-dev-bounces@xxxxxxxxxxx] On Behalf Of John, Abhilash
Sent: Monday, June 16, 2008 2:49
PM
To:
birt-report-designer-dev@xxxxxxxxxxx; birt-report-engine-dev@xxxxxxxxxxx
Subject:
[birt-report-designer-dev] Trouble with Scripted data source: JavaAPI getting
invoked multiple times
Hi All,
I am using a scripted datasource to talk to the Hibernate
layer via a Java API. I noticed that the call from the reportengine to the Java
API happens more than once, before the data is displayed completely. This leads
to a performance bottleneck for the reports. Can you please guide me what am I
doing wrong here?
The following is my environment:
birt-runtime-2_3_0
Hibernate 3.2
And here is my code:
<method name="open">
<![CDATA[reportGenerator = new Packages.com.xxx.BirtReportGenerator();
reportData =
reportGenerator.getPublishedApprovals(params["AAA"].value,
params["BBB"].value,params["CCC"].value);
iter = reportData.iterator();]]></method>
<method name="fetch">
<![CDATA[if(!iter.hasNext()){
return
false
}
else{
report
= iter.next();
dataSetRow["analystHeader"]=report.getAnalystHeader();
dataSetRow["securityHeader"]=report.getSecurityHeader();
dataSetRow["sortHeader"]=report.getSortOrder();
dataSetRow["genHeader"]=report.getGenerated();
dataSetRow["expiry"]=report.getPublishedDate();
dataSetRow["security"]=report.getSecurity();
if(report.getDetails()!=null){
detailsIterator
= report.getDetails().iterator();
if(detailsIterator==null||!detailsIterator.hasNext()){
return
false;
}else{
var
detailInfo = detailsIterator.next();
dataSetRow["type"]
= detailInfo[0];
dataSetRow["from"]
= detailInfo[1];
dataSetRow["to"]
= detailInfo[2];
dataSetRow["comments"]
= detailInfo[3];
}
}
return
true;
}]]></method>
<method name="close">
<![CDATA[iter = null;
reportData =null;
reportGenerator =null;]]>
</method>
</script-data-set>
Regards,
Abhilash
John