Bug 324546 external .js file has no effect in beforeOpen if the data set is used to generate a dynamic parameter selection
Build Identifier: I define a function "replace_query" in an external .js file, and then include it in the report. I then use the function in the beforeOpen script. If the data set is not used to generate a dynamic parameter selection, then it works fine. Otherwise, when viewing the report, it will give this error: Error evaluating Javascript expression. Script engine error: ReferenceError: "replace_query" is not defined. Reproducible: Always Steps to Reproduce: 1. Define a function in an external .js file 2. Include the .js file in the report 3. Call the function in the beforeOpen script of a data set that is also used to generate a dynamic parameter selection
engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/api/impl/GetParameterDefinitionTask.java
log.log( Level.WARNING, ex.getMessage( ), ex );
			executionContext.addException( parameter, ex );
		}
		return choices;
	}
	private DataRequestSession createDataSession( DataSetHandle dataSet ) throws EngineException
	{
		IDataEngine dataEngine = executionContext.getDataEngine( );
		DataRequestSession dteSession = getDataSession();
		
		dataEngine.defineDataSet(dataSet);
		return dteSession;
	}
	
	private QueryDefinition createQueryDefinition( DataSetHandle dataSet )
	{
		QueryDefinition queryDefn = new QueryDefinition( );
		queryDefn.setDataSetName( dataSet.getQualifiedName( ) );
		queryDefn.setAutoBinding( true );
		return queryDefn;
	}
	
	private IResultIterator executeQuery( DataRequestSession dteSession,
			QueryDefinition queryDefn ) throws BirtException
	{
		IPreparedQuery query = dteSession.prepare( queryDefn );
		IQueryResults result = (IQueryResults)dteSession.execute( query, null,
				executionContext.getScriptContext( ) );
		return result.getResultIterator( );
	}