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