Data Sources

Data sources establish the connection between Exago and a database or a web service. Although typically only one database is used, Exago can join data from different sources into a single report.

NOTE. To utilize some types of Data Sources you may need to download and install the appropriate driver. Please see Data Source Drivers for more information.

 

All existing Data Sources are listed in the Main Menu under 'Data'. All the Sources you are adding or editing will be displayed in a Tab titled Data Sources.

Each Data Source must have the following:

Name

A name for the data source.

Type

The type of source being used. Valid types include:

Schema/Owner Name (blank for default)

Provide a default database schema for the data source.

NOTE. Only use this if you are using schema to provide Multi-Tenant security. For more details see Multi-Tenant Environment Integration.

 

Connection String

The method that is used to connect to the data source. Connection strings vary by type:

Click the green check mark to verify the connection succeeds.

 

Data Source Drivers

Below is a list and the associated links for recommended ADO.NET drivers for each type of Data Source. 

 

Web Services and .NET Assemblies

Web Services and .NET Assemblies can be used as Data Sources. This is possible when the Web Service and .NET Assemblies underlying methods are setup as Data Objects.

An advantage of doing this is being able to use high-level language to manipulate the data being reported on at run-time. The main disadvantage is not being able to take advantage of the database to perform joins with other data objects; data from methods can still be joined, but the work to do this is done within Exago. For more information see Note about Cross Source Joins.

 

Parameters

Parameters are passed from Exago to Web Services and .NET Assemblies. Three types of parameters can be passed but only Call Type is required.

 

Call Type (required)

Integer that specifies what Exago needs at the time of the call. There are three possible values. You may specify the name of this parameter in the Programmable Object Settings of the General Section.

 

Column, Filter and Sort Strings (optional)

To optimize performance Exago can pass user-specified sorts and filters to the Web Service or .NET Assembly. This process reduces the amount of data sent to Exago. If these parameters are not used, all of the data will be sent to Exago to sort and filter. Column, filter and sort strings are sent as standard SQL. You may specify the name of these parameters in the Programmable Object Settings of the General Section.

 

Custom Parameter Values (optional)

Additional parameters can be specified to be sent to individual methods in the Data Object Menu.

IMPORTANT. When a Web Service or .NET Assembly is first accessed it is compiled and kept in an internal cache within Exago. This is done in order to increase performance.  Due to this internal cache, Exago will not be aware of any changes within the Web Service or .NET Assembly. If the service or assembly is subsequently changed; Exago will execute the prior compiled version.  Thus, when you modify the  Web Service or .NET Assembly reset the internal cache of Exago by clicking the green check mark of the Data Source () or  by restarting IIS.
NOTE. If an Exago .NET API application needs to access reports which use an Assembly data source, it must include a reference to the assembly WebReportsAsmi.dll.

 

NET Assemblies

It is important to note that when a connection string for .NET Assembly is set the class name must match the name of the class where the static methods will be searched. UNC or absolute paths may be used.  Make sure that the assembly has read privileges for the IIS user running Exago. Below is an example of a .NET Assembly connection string:

assembly=\\MyServerName\MyShareName\MyAssembly.dll;class=Main

.NET Assembly methods must be static. Below is an example of a .NET Assembly method.

public class Main
{
   public static DataSet dotnet_optionees(int callType, string columnStr, string filterStr, int myCustomParameter)
   {
	   switch (callType)
	   {
		   case 0:
			   // return schema
		   case 1:
			   // return data
		   case 2:
			   // return filter values for dropdown
	   }
   }
}


Web Services

Web Services are accessed via SOAP. Below is an example of a Web Service connection string: url=http://MyServer/MyWebService.asmx

Web services methods are similar to .NET Assembly methods with the following exceptions:

 

Excel and XML Files

Exago can use Microsoft Excel and XML files as Data Sources. Remember though that Excel and XML files are not databases. Simply put, these Data Sources do not offer the speed, performance, security or heavy lifting of a real database. Using Excel and XML files is recommended only if your dataset is small or if the information is only available in this format.

 

Excel

Each worksheet in the Excel file will be read as a separate table. Each worksheet’s name will be read as the table’s title. The top row will be read as the column header, and the remaining cells will be read as the data. Do not leave any blank rows or columns.

 

XML

The XML document must begin with the schema. After defining the schema the data must be placed into the appropriate tags. For reference see the working example below:

<?xml version="1.0" encoding="UTF-8"?>
<ExagoData>
   <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="ExagoData">
      <xs:element name="ExagoData" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
         <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
               <xs:element name="Call">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="CallID" type="xs:unsignedInt" minOccurs="0" />
                        <xs:element name="StaffID" type="xs:string" minOccurs="0" />
                        <xs:element name="VehicleUsed" type="xs:unsignedInt" minOccurs="0" />
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
               <xs:element name="Staff">
                  <xs:complexType>
                     <xs:sequence>
                        <xs:element name="StaffID" type="xs:unsignedInt" minOccurs="0" />
                        <xs:element name="Rank" type="xs:string" minOccurs="0" />
                        <xs:element name="LastName" type="xs:string" minOccurs="0" />
                        <xs:element name="FirstName" type="xs:string" minOccurs="0" />
                     </xs:sequence>
                  </xs:complexType>
               </xs:element>
            </xs:choice>
         </xs:complexType>
      </xs:element>
   </xs:schema>
   <Call>
      <CallID>890</CallID>
      <StaffID>134</StaffID>
      <VehicleUsed>12</VehicleUsed>
   </Call>
   <Call>
      <CallID>965</CallID>
      <StaffID>228</StaffID>
      <VehicleUsed>4</VehicleUsed>
   </Call>
   <Call>
      <CallID>740</CallID>
      <StaffID>1849</StaffID>
      <VehicleUsed>2</VehicleUsed>
   </Call>
   <Staff>
      <StaffID>134</StaffID>
      <Rank>Captain</Rank>
      <LastName>Renolyds</LastName>
      <FirstName>Malcom</FirstName>
   </Staff>
   <Staff>
      <StaffID>228</StaffID>
      <Rank>Lieutenant</Rank>
      <LastName>Brown</LastName>
      <FirstName>Bill</FirstName>
   </Staff>
   <Staff>
      <StaffID>1849</StaffID>
      <Rank>Sergeant</Rank>
      <LastName>John</LastName>
      <FirstName>Pepper</FirstName>
   </Staff>
</ExagoData>

 

OLAP and MDX Queries

Exago can query OLAP Data Sources using MDX Queries. OLAP Data Sources and Objects are identical to a regular data base type object, with the following exceptions.

 

ODBC Drivers

Exago can use ODBC drivers to connect to Data Sources. When connecting to an ODBC data source an extra option will appear to set the Column Delimiter(s). The delimiter character depends on which type of data base you are connecting to.

Examples

MySql

' (grave accent)

MsSql, OLAP

[] (brackets)

DB2, Informix, Oracle, Postgres

" (quotation marks)

If you don't know which delimiter character to use, contact your database administrator.

Caution. If your data objects have spaces in their names, you must set the correct delimiter in order to access the data. Otherwise, improper SQL will be generated and you will see errors or erroneous data.