Report Web Service Guide
Introduction
The report web service provides programmatic access to all the reports within the application. Our web service implementation uses standard internet protocols and can be called using most major development languages, including all Visual Studio languages, Java and PHP. You can use the report web service to create custom dashboards or a variety of other interfaces that access report data.
In addition to accessing report data, chart image files are also available through the web service.
Our philosophy on the architecture of the report web service is to provide a simple, unchanging interface that provides access to all the reports within the application. Since the number of reports available and the data within the reports are constantly changing, we have created an interface specification that is generic and will not need to be updated every time the data format changes.
Background
The report web service is based on industry standard technology, such as SOAP and WSDL. For background information on these technologies, please refer to the following link:
W3C Web Services InformationImplementation
The web service is implemented by referencing our WSDL file in your development environment. The method of doing this is dependent upon your development tool. The WSDL file can be referenced from the URL below:
http://opera.hitslink.com/reportws.asmx
The service description can be viewed from the following link:
View service descriptionThe WSDL definition can be viewed from the following link:
View WSDL definitionThe report web service supports transport-level security (SSL).
Function Reference
GetData |
Get an array of report data and an array of column definitions. |
account - The account id of the account to retrieve the data from.
password - The password of the account. This information is transmitted securely over the internet.
reportId - The report id of the report. Select this from the enumerated list.
maxRows - The maximum number of data rows to return. There is a limit of 1000.
chartHeight - If this is set to a value greater than zero, a chart will be generated and the url of the chart will be returned in the 'Data' structure.
chartWidth - If this is set to a value greater than zero, a chart will be generated and the url of the chart will be returned in the 'Data' structure. |
This call returns the 'Data' structure. See the section below on the definition of the 'Data' structure. |
GetDataFromTimeframe |
Get an array of report data and an array of column definitions for a specific date range. If the report does not use timeframes, this call will function the same as GetData. |
account - The account id of the account to retrieve the data from.
password - The password of the account. This information is transmitted securely over the internet.
reportId - The report id of the report. Select this from the enumerated list.
Timeframe Type - Daily, Weekly, Monthly, Quarterly, or Yearly. Select this from the enumerated list.
Start Date - The start date of the report.
End Date - The end date of the report.
maxRows - The maximum number of data rows to return. There is a limit of 1000.
chartHeight - If this is set to a value greater than zero, a chart will be generated and the url of the chart will be returned in the 'Data' structure.
chartWidth - If this is set to a value greater than zero, a chart will be generated and the url of the chart will be returned in the 'Data' structure. |
This call returns the 'Data' structure. See the section below on the definition of the 'Data' structure. |
GetDataFromQueryString |
Get an array of report data and an array of column definitions by passing in a query string. For complex report settings, the browser's query string contains the complete report definition. This function accepts a query string to determine the report data to retrieve. For example, if a report has multiple filters and a custom sorting, the standard GetData call cannot be used. |
account - The account id of the account to retrieve the data from.
password - The password of the account. This information is transmitted securely over the internet.
queryString - The query string after the ? on the browser's address line for a report you wish to retrieve data on.
chartHeight - If this is set to a value greater than zero, a chart will be generated and the url of the chart will be returned in the 'Data' structure.
chartWidth - If this is set to a value greater than zero, a chart will be generated and the url of the chart will be returned in the 'Data' structure. |
This call returns the 'Data' structure. See the section below on the definition of the 'Data' structure. |
Return StructureAll calls return a structure called 'Data', which is a simple class with three properties and two arrays. The first array is called ColumnDefinitions, which contains meta data on the columns returned by the call. The second array is an array of rows representing the report data. This array is called 'Rows'.
The structure of the Data class (in VB.NET syntax) is:
Public Class Data
Public Title As String
Public EndDate As Date
Public StartDate As Date
Public ChartURL As String
Public ColumnDefinitions As ColumnDefinition()
Public Rows As Row()
End Class
The ColumnDefinition class is defined as:
Public Class ColumnDefinition
Public Title As String
Public Align As AlignmentTypes ' Left, right or centered on report output
Public Sortable As Boolean
Public DataType As DataTypes
End Class
The AlignmentTypes enumeration is defined as:
Enum AlignmentTypes
Left
Right
Center
End Enum
The DataType enumeration is defined as:
Public Enum DataTypes
DataTypeString = 0
DataTypeInteger = 1
DataTypeNumeric = 2
DataTypeCurrency = 3
DataTypePercent = 4
DataTypeDate = 5
End Enum
The Column class is defined as:
Public Class Column
Public Value As String
End Class
The Row class is defined as:
Public Class Row
Public Columns As Column()
End Class
Sample Code
The following are samples of code to retrieve report data. The first example is written in ASP.NET using the VB.NET language.
First, import the web reference into your project and call it 'Analytics'.