Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » BIRT » Joint data set does not invoke DataSourceEventHandler(DataSourceEventHandler.beforeOpen method is not executed with joint data set)
Joint data set does not invoke DataSourceEventHandler [message #519472] Mon, 08 March 2010 22:38 Go to next message
John Sipher is currently offline John SipherFriend
Messages: 8
Registered: March 2010
Junior Member
I have a DataSourceEventHandler with a beforeOpen() method that updates the connection properties (user and password) to point to a specific schema depending on the value of a request parameter. This works fine as long as the report uses only one table. Reports that use a joint data set to join two or more tables fail because the DataSourceEventHandler is never invoked.

I've run this in debug with break points set in the event handler's beforeOpen method and on the JDBC driver's connect method. The stack looks like this when it works correctly (single table).

DataSourceEventHandler.beforeOpen(IDataSourceInstance, IReportContext) line: 32	
DataSourceScriptExecutor.handleBeforeOpen(IDataSourceInstanceHandle) line: 87	
OdaDataSourceRuntime(DataSourceRuntime).beforeOpen() line: 245	
PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).dataSourceBeforeOpen() line: 184	
PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).openDataSource() line: 386	
PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).prepareExecution(IBaseQueryResults, Scriptable) line: 315	


When using a joint data set the stack looks like this when it hits the driver's connect method (the event handler's breakpoint is skipped)

Driver.connect(String, Properties) line: 175	
JDBCDriverManager$WrappedDriver.connect(String, Properties) line: 1162	
DriverManager.getConnection(String, Properties, ClassLoader) line: 582	
DriverManager.getConnection(String, Properties) line: 154	
JDBCDriverManager.doConnect(String, String, String, Properties, Collection<String>) line: 251	
JDBCDriverManager.getConnection(String, String, String, Properties, Collection<String>) line: 212	
Connection.connectByUrl(String, Properties) line: 234	
Connection.open(Properties) line: 160	
OdaConnection.open(Properties) line: 238	
ConnectionManager.openConnection(String, Properties, Map) line: 180	
DataSource.newConnection() line: 193	
DataSource.open() line: 181	
OdaDataSourceRuntime(DataSourceRuntime).openOdiDataSource(IDataSource) line: 209	
PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).openDataSource() line: 396	
PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).prepareExecution(IBaseQueryResults, Scriptable) line: 315	


The stack above that point is the same in both cases.

The data source looks like this:
<oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc" name="WMDataSource" id="5">
    <property name="eventHandlerClass">com.infor.wm.reports.birtviewer.DataSourceEventHandler</property>
    <property name="odaDriverClass">net.sourceforge.jtds.jdbc.Driver</property>
    <property name="odaURL">jdbc:jtds:sqlserver://localhost:1433/WMPRD;useLOBs=false</property>
    <property name="odaUser">******</property>
    <encrypted-property name="odaPassword" encryptionID="base64">******</encrypted-property>
</oda-data-source>

Re: Joint data set does not invoke DataSourceEventHandler [message #519615 is a reply to message #519472] Tue, 09 March 2010 13:49 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

John,

Can you try this in script like the attached example?
Also please log a bug for this.

Jason

<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.20"
id="1">
<property name="createdBy">Eclipse BIRT Designer Version
2.5.1.v20090903 Build &lt;2.5.1.v20090917-1447></property>
<property name="units">in</property>
<property name="iconFile">/templates/blank_report.gif</property>
<property name="bidiLayoutOrientation">ltr</property>
<data-sources>
<oda-data-source
extensionID="org.eclipse.birt.report.data.oda.jdbc" name="Data Source"
id="7">
<text-property name="displayName"></text-property>
<property
name="odaDriverClass">org.eclipse.birt.report.data.oda.sampledb.Driver </property>
<property name="odaURL">jdbc:classicmodels:sampledb</property>
<property name="odaUser">ClassicModels</property>
</oda-data-source>
</data-sources>
<data-sets>
<oda-data-set
extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet "
name="Data Set" id="8">
<list-property name="columnHints">
<structure>
<property name="columnName">ORDERNUMBER</property>
<text-property
name="displayName">ORDERNUMBER</text-property>
</structure>
<structure>
<property name="columnName">PRODUCTCODE</property>
<text-property
name="displayName">PRODUCTCODE</text-property>
</structure>
<structure>
<property name="columnName">QUANTITYORDERED</property>
<text-property
name="displayName">QUANTITYORDERED</text-property>
</structure>
<structure>
<property name="columnName">PRICEEACH</property>
<text-property
name="displayName">PRICEEACH</text-property>
</structure>
<structure>
<property name="columnName">ORDERLINENUMBER</property>
<text-property
name="displayName">ORDERLINENUMBER</text-property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTCODE</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYORDERED</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">PRICEEACH</property>
<property name="dataType">float</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">ORDERLINENUMBER</property>
<property name="dataType">integer</property>
</structure>
</list-property>
</structure>
<method name="beforeOpen"><![CDATA[this.queryText = "select
* from orderdetails where ordernumber = 10104";]]></method>
<property name="dataSource">Data Source</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="nativeName">ORDERNUMBER</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTCODE</property>
<property name="nativeName">PRODUCTCODE</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYORDERED</property>
<property name="nativeName">QUANTITYORDERED</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">PRICEEACH</property>
<property name="nativeName">PRICEEACH</property>
<property name="dataType">float</property>
<property name="nativeDataType">8</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">ORDERLINENUMBER</property>
<property name="nativeName">ORDERLINENUMBER</property>
<property name="dataType">integer</property>
<property name="nativeDataType">5</property>
</structure>
</list-property>
<xml-property name="queryText"><![CDATA[select *
from orderdetails where ordernumber = 10101]]></xml-property>
<xml-property name="designerValues"><![CDATA[<?xml
version="1.0" encoding="UTF-8"?>
<model:DesignValues
xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design"
xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
<Version>1.0</Version>
<design:ResultSets derivedMetaData="true">
<design:resultSetDefinitions>
<design:resultSetColumns>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>ORDERNUMBER</design:name>
<design:position>1</design:position>
<design:nativeDataTypeCode>4</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>ORDERNUMBER</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ORDERNUMBER</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRODUCTCODE</design:name>
<design:position>2</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>15</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>PRODUCTCODE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRODUCTCODE</design:label>
<design:formattingHints>
<design:displaySize>15</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>QUANTITYORDERED</design:name>
<design:position>3</design:position>
<design:nativeDataTypeCode>4</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>QUANTITYORDERED</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>QUANTITYORDERED</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRICEEACH</design:name>
<design:position>4</design:position>
<design:nativeDataTypeCode>8</design:nativeDataTypeCode>
<design:precision>15</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>PRICEEACH</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRICEEACH</design:label>
<design:formattingHints>
<design:displaySize>22</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>ORDERLINENUMBER</design:name>
<design:position>5</design:position>
<design:nativeDataTypeCode>5</design:nativeDataTypeCode>
<design:precision>5</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>ORDERLINENUMBER</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ORDERLINENUMBER</design:label>
<design:formattingHints>
<design:displaySize>6</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
</design:resultSetColumns>
</design:resultSetDefinitions>
</design:ResultSets>
</model:DesignValues>
]]></xml-property>
</oda-data-set>
<oda-data-set
extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet "
name="Data Set1" id="9">
<list-property name="columnHints">
<structure>
<property name="columnName">ORDERNUMBER</property>
<text-property
name="displayName">ORDERNUMBER</text-property>
</structure>
<structure>
<property name="columnName">ORDERDATE</property>
<text-property
name="displayName">ORDERDATE</text-property>
</structure>
<structure>
<property name="columnName">REQUIREDDATE</property>
<text-property
name="displayName">REQUIREDDATE</text-property>
</structure>
<structure>
<property name="columnName">SHIPPEDDATE</property>
<text-property
name="displayName">SHIPPEDDATE</text-property>
</structure>
<structure>
<property name="columnName">STATUS</property>
<text-property
name="displayName">STATUS</text-property>
</structure>
<structure>
<property name="columnName">COMMENTS</property>
<text-property
name="displayName">COMMENTS</text-property>
</structure>
<structure>
<property name="columnName">CUSTOMERNUMBER</property>
<text-property
name="displayName">CUSTOMERNUMBER</text-property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">ORDERDATE</property>
<property name="dataType">date</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">REQUIREDDATE</property>
<property name="dataType">date</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">SHIPPEDDATE</property>
<property name="dataType">date</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">STATUS</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">6</property>
<property name="name">COMMENTS</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">7</property>
<property name="name">CUSTOMERNUMBER</property>
<property name="dataType">integer</property>
</structure>
</list-property>
</structure>
<method name="beforeOpen"><![CDATA[this.queryText = "select
* from orders where ordernumber = 10104";]]></method>
<property name="dataSource">Data Source</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="nativeName">ORDERNUMBER</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">ORDERDATE</property>
<property name="nativeName">ORDERDATE</property>
<property name="dataType">date</property>
<property name="nativeDataType">91</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">REQUIREDDATE</property>
<property name="nativeName">REQUIREDDATE</property>
<property name="dataType">date</property>
<property name="nativeDataType">91</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">SHIPPEDDATE</property>
<property name="nativeName">SHIPPEDDATE</property>
<property name="dataType">date</property>
<property name="nativeDataType">91</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">STATUS</property>
<property name="nativeName">STATUS</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">6</property>
<property name="name">COMMENTS</property>
<property name="nativeName">COMMENTS</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">7</property>
<property name="name">CUSTOMERNUMBER</property>
<property name="nativeName">CUSTOMERNUMBER</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
</list-property>
<xml-property name="queryText"><![CDATA[select *
from orders where ordernumber = 10101]]></xml-property>
<xml-property name="designerValues"><![CDATA[<?xml
version="1.0" encoding="UTF-8"?>
<model:DesignValues
xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design"
xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
<Version>1.0</Version>
<design:ResultSets derivedMetaData="true">
<design:resultSetDefinitions>
<design:resultSetColumns>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>ORDERNUMBER</design:name>
<design:position>1</design:position>
<design:nativeDataTypeCode>4</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>ORDERNUMBER</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ORDERNUMBER</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>ORDERDATE</design:name>
<design:position>2</design:position>
<design:nativeDataTypeCode>91</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>ORDERDATE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ORDERDATE</design:label>
<design:formattingHints>
<design:displaySize>10</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>REQUIREDDATE</design:name>
<design:position>3</design:position>
<design:nativeDataTypeCode>91</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>REQUIREDDATE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>REQUIREDDATE</design:label>
<design:formattingHints>
<design:displaySize>10</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>SHIPPEDDATE</design:name>
<design:position>4</design:position>
<design:nativeDataTypeCode>91</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>SHIPPEDDATE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>SHIPPEDDATE</design:label>
<design:formattingHints>
<design:displaySize>10</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>STATUS</design:name>
<design:position>5</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>15</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>STATUS</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>STATUS</design:label>
<design:formattingHints>
<design:displaySize>15</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>COMMENTS</design:name>
<design:position>6</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>32700</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>COMMENTS</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>COMMENTS</design:label>
<design:formattingHints>
<design:displaySize>32700</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>CUSTOMERNUMBER</design:name>
<design:position>7</design:position>
<design:nativeDataTypeCode>4</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>CUSTOMERNUMBER</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>CUSTOMERNUMBER</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
</design:resultSetColumns>
</design:resultSetDefinitions>
</design:ResultSets>
</model:DesignValues>]]></xml-property>
</oda-data-set>
<joint-data-set name="JDS" id="10">
<list-property name="columnHints">
<structure>
<property name="columnName">Data
Set::QUANTITYORDERED</property>
<property name="alias">QUANTITYORDERED</property>
<text-property name="displayName">Data
Set::QUANTITYORDERED</text-property>
</structure>
<structure>
<property name="columnName">Data
Set1::CUSTOMERNUMBER</property>
<property name="alias">CUSTOMERNUMBER</property>
<text-property name="displayName">Data
Set1::CUSTOMERNUMBER</text-property>
</structure>
<structure>
<property name="columnName">Data
Set1::ORDERNUMBER</property>
<property name="alias">Data
Set1::ORDERNUMBER</property>
<text-property name="displayName">Data
Set1::ORDERNUMBER</text-property>
</structure>
<structure>
<property name="columnName">Data
Set::PRICEEACH</property>
<property name="alias">PRICEEACH</property>
<text-property name="displayName">Data
Set::PRICEEACH</text-property>
</structure>
<structure>
<property name="columnName">Data
Set::ORDERNUMBER</property>
<property name="alias">Data Set::ORDERNUMBER</property>
<text-property name="displayName">Data
Set::ORDERNUMBER</text-property>
</structure>
<structure>
<property name="columnName">Data
Set::PRODUCTCODE</property>
<property name="alias">PRODUCTCODE</property>
<text-property name="displayName">Data
Set::PRODUCTCODE</text-property>
</structure>
<structure>
<property name="columnName">Data
Set1::STATUS</property>
<property name="alias">STATUS</property>
<text-property name="displayName">Data
Set1::STATUS</text-property>
</structure>
<structure>
<property name="columnName">Data
Set::ORDERLINENUMBER</property>
<property name="alias">ORDERLINENUMBER</property>
<text-property name="displayName">Data
Set::ORDERLINENUMBER</text-property>
</structure>
<structure>
<property name="columnName">Data
Set1::REQUIREDDATE</property>
<property name="alias">REQUIREDDATE</property>
<text-property name="displayName">Data
Set1::REQUIREDDATE</text-property>
</structure>
<structure>
<property name="columnName">Data
Set1::COMMENTS</property>
<property name="alias">COMMENTS</property>
<text-property name="displayName">Data
Set1::COMMENTS</text-property>
</structure>
<structure>
<property name="columnName">Data
Set1::ORDERDATE</property>
<property name="alias">ORDERDATE</property>
<text-property name="displayName">Data
Set1::ORDERDATE</text-property>
</structure>
<structure>
<property name="columnName">Data
Set1::SHIPPEDDATE</property>
<property name="alias">SHIPPEDDATE</property>
<text-property name="displayName">Data
Set1::SHIPPEDDATE</text-property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">Data
Set::ORDERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTCODE</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYORDERED</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">PRICEEACH</property>
<property name="dataType">float</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">ORDERLINENUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">6</property>
<property name="name">Data
Set1::ORDERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">7</property>
<property name="name">ORDERDATE</property>
<property name="dataType">date</property>
</structure>
<structure>
<property name="position">8</property>
<property name="name">REQUIREDDATE</property>
<property name="dataType">date</property>
</structure>
<structure>
<property name="position">9</property>
<property name="name">SHIPPEDDATE</property>
<property name="dataType">date</property>
</structure>
<structure>
<property name="position">10</property>
<property name="name">STATUS</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">11</property>
<property name="name">COMMENTS</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">12</property>
<property name="name">CUSTOMERNUMBER</property>
<property name="dataType">integer</property>
</structure>
</list-property>
</structure>
<simple-property-list name="dataSets">
<value>Data Set</value>
<value>Data Set1</value>
</simple-property-list>
<list-property name="joinConditions">
<structure>
<property name="joinType">full-out</property>
<property name="joinOperator">eq</property>
<property name="leftDataSet">Data Set</property>
<property name="rightDataSet">Data Set1</property>
<expression
name="leftExpression">dataSetRow["ORDERNUMBER"]</expression >
<expression
name="rightExpression">dataSetRow["ORDERNUMBER"]</expression >
</structure>
</list-property>
</joint-data-set>
</data-sets>
<styles>
<style name="report" id="4">
<property name="fontFamily">sans-serif</property>
<property name="fontSize">10pt</property>
</style>
<style name="crosstab" id="5">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="crosstab-cell" id="6">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
</styles>
<page-setup>
<simple-master-page name="Simple MasterPage" id="2">
<page-footer>
<text id="3">
<property name="contentType">html</property>
<text-property
name="content"><![CDATA[<value-of>new Date()</value-of>]]></text-property>
</text>
</page-footer>
</simple-master-page>
</page-setup>
</report>



John Sipher wrote:
> I have a DataSourceEventHandler with a beforeOpen() method that updates
> the connection properties (user and password) to point to a specific
> schema depending on the value of a request parameter. This works fine as
> long as the report uses only one table. Reports that use a joint data
> set to join two or more tables fail because the DataSourceEventHandler
> is never invoked.
>
> I've run this in debug with break points set in the event handler's
> beforeOpen method and on the JDBC driver's connect method. The stack
> looks like this when it works correctly (single table).
>
> DataSourceEventHandler.beforeOpen(IDataSourceInstance, IReportContext)
> line: 32
> DataSourceScriptExecutor.handleBeforeOpen(IDataSourceInstanc eHandle)
> line: 87
> OdaDataSourceRuntime(DataSourceRuntime).beforeOpen() line: 245
> PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).dataSou rceBeforeOpen()
> line: 184
> PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).openDat aSource()
> line: 386
> PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).prepare Execution(IBaseQueryResults,
> Scriptable) line: 315
>
>
> When using a joint data set the stack looks like this when it hits the
> driver's connect method (the event handler's breakpoint is skipped)
>
> Driver.connect(String, Properties) line: 175
> JDBCDriverManager$WrappedDriver.connect(String, Properties) line: 1162
> DriverManager.getConnection(String, Properties, ClassLoader) line: 582
> DriverManager.getConnection(String, Properties) line: 154
> JDBCDriverManager.doConnect(String, String, String, Properties,
> Collection<String>) line: 251
> JDBCDriverManager.getConnection(String, String, String, Properties,
> Collection<String>) line: 212
> Connection.connectByUrl(String, Properties) line: 234
> Connection.open(Properties) line: 160
> OdaConnection.open(Properties) line: 238
> ConnectionManager.openConnection(String, Properties, Map) line: 180
> DataSource.newConnection() line: 193
> DataSource.open() line: 181
> OdaDataSourceRuntime(DataSourceRuntime).openOdiDataSource(ID ataSource)
> line: 209
> PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).openDat aSource()
> line: 396
> PreparedOdaDSQuery$OdaDSQueryExecutor(QueryExecutor).prepare Execution(IBaseQueryResults,
> Scriptable) line: 315
>
>
> The stack above that point is the same in both cases.
>
> The data source looks like this:
> <oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc"
> name="WMDataSource" id="5">
> <property
> name="eventHandlerClass">com.infor.wm.reports.birtviewer.DataSourceEventHandler </property>
>
> <property
> name="odaDriverClass">net.sourceforge.jtds.jdbc.Driver</property >
> <property
> name="odaURL">jdbc:jtds:sqlserver://localhost:1433/WMPRD;useLOBs=false</property>
>
> <property name="odaUser">******</property>
> <encrypted-property name="odaPassword"
> encryptionID="base64">******</encrypted-property>
> </oda-data-source>
>
>
Re: Joint data set does not invoke DataSourceEventHandler [message #519640 is a reply to message #519615] Tue, 09 March 2010 15:04 Go to previous messageGo to next message
John Sipher is currently offline John SipherFriend
Messages: 8
Registered: March 2010
Junior Member
Bug 305165 has been created.
Re: Joint data set does not invoke DataSourceEventHandler [message #519770 is a reply to message #519640] Tue, 09 March 2010 16:34 Go to previous message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

Thanks John

John Sipher wrote:
> Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=305165 has been created.
>
Re: Joint data set does not invoke DataSourceEventHandler [message #519771 is a reply to message #519770] Tue, 09 March 2010 16:34 Go to previous message
Jason Weathersby is currently offline Jason WeathersbyFriend
Messages: 9167
Registered: July 2009
Senior Member

BTW did you try the JavaScript event?

Jason Weathersby wrote:
> Thanks John
>
> John Sipher wrote:
>> Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=305165 has been
>> created.
>>
Previous Topic:Eclipse RCP issue with modal dialog
Next Topic:BIRT install on Windows 7
Goto Forum:
  


Current Time: Thu Sep 19 21:22:23 GMT 2024

Powered by FUDForum. Page generated in 0.04474 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top