Task 4:  
5  
1  
GenerateDataObject.java
2  
From the main menu, choose RunRun Configurations.
3  
Double-click the Java Application link in the left frame of Run Configurations. The GenerateDataObjects configuration gets created.
4  
6  
7  
Open the report design and view the XML source. The XML contains a datamart element that points to include.datadesign and a data source called include, as shown in the following code:
<datamart-node location="file:/DataObjectExample/include.datadesign">
...
<data-sources>
  <data-mart-data-source name="Data Source" id="4">
    <property name="datamartURL">include</property>
    <property name="accessType">transient</property>
  </data-mart-data-source>
</data-sources>
8  
Figure 31-6  
The final code for GenerateDataObject is shown in Listing 31-3.
Listing 31-3  
package myPackage;
import java.io.FileOutputStream;
import org.eclipse.birt.core.exception.BirtException;
import org.eclipse.birt.report.model.api.DesignConfig;
import org.eclipse.birt.report.model.api.DesignEngine;
import org.eclipse.birt.report.model.api.ElementFactory;
import org.eclipse.birt.report.model.api.ReportDesignHandle;
import org.eclipse.birt.report.model.api.SessionHandle;
import org.eclipse.birt.report.model.api.elements.DesignChoiceConstants;
import com.actuate.birt.report.model.api.DataMartCubeHandle;
import com.actuate.birt.report.model.api.DataMartDataSourceHandle;
import com.ibm.icu.util.ULocale;
 
public class GenerateDataObject {
 
private static final String BIRT_HOME = "C:/Program Files/Actuate11/iServer/Jar/BIRT/platform";
 
public static void main( String[] args ) throws Exception
{
  DesignConfig config = new DesignConfig( );
  config.setBIRTHome( BIRT_HOME );
  DesignEngine engine = new DesignEngine( config );
  SessionHandle sessionHandle = engine.newSessionHandle( ULocale.ENGLISH );
  ReportDesignHandle designHandle = sessionHandle.createDesign();
  ElementFactory factory = designHandle.getElementFactory( );
 
  DataMartDataSourceHandle dataSource =factory.newDataMartDataSource( "Data Source" );
  dataSource.setDataMartURL( "include" );
  dataSource.setAccessType( DesignChoiceConstants.ACCESS_TYPE_TRANSIENT );
  designHandle.getDataSources( ).add( dataSource );
 
  FileOutputStream fos = new FileOutputStream("test.rptdesign");
  designHandle.serialize( fos );
  fos.close( );
 
  designHandle.close( );
  System.out.println("Done");
  }
}
 
 

Additional Links:

Copyright Actuate Corporation 2012