February 3, 2010

External Reporting API

Surround SCM
Server and client external reporting plug-in APIs allow Surround SCM and TestTrack to retrieve and display reports from external reporting services. Server plug-ins query external reporting services, provide information to client plug-ins, and run requested reports. Server and client plug-ins are available for SQL Server Reporting Services and Crystal Reports. You can use the APIs to develop plug-ins for other types of external reporting services or modify the provided plug-ins to support additional capabilities. Note: To create plug-ins, you should have experience developing shared libraries that can be dynamically opened with C++ and advanced knowledge of the reporting system.

Client/server plug-in interactions

Client plug-ins are only used to open external report editors and run reports with parameters. The Surround SCM or TestTrack Server handles all other external report functionality. Any errors are written to the server log.

Opening external report editors

Some reporting services store information needed to run a report editor on the reporting server. Several functions are used to pass information from to the server plug-in and return information to the client. To run the external editor, Surround SCM or TestTrack calls the PrepareToRunEditor function from the client plug-in. This function is executed on the Surround SCM or TestTrack Server using the ExecutePluginCommand callback function, which calls the server plug-in ExecuteClientCommand function. The results are returned and the XML-formatted response is sent to the RunEditor function.

Running reports with parameters

Reports with parameters, such as filters, can only run locally. For example, SQL Server Reporting Services uses a URL access method to run reports on the client side when parameters are required. To run the report, Surround SCM or TestTrack calls the PrepareToRunParameters function from the client plug-in. This function is executed on the Surround SCM or TestTrack Server using the ExecuteClientCommand function, which calls the server plug-in ExecutePluginCommand callback function. The results are returned and the XML-formatted response is sent to the RunParameters function.