Using SSRS for Operational Reports¶
Design overview.¶
SSRS Formatter¶
The middle-tier implementation of the SSRS formatter is an internal implementation of an extended formatter plugin. Therefore a report plugin layout (RPL) is used to control the SSRS layout. Read more about the Extended Formatter Plugins here.
Data Source¶
Data for the SSRS reports comes from the report data XML. SSRS integration is not dependent on the _REP views. Report data XML is exposed to SSRS Extension via an IFS OData service. Read more about it here.
New MS SSRS Data Source Extension - “IFS Report Data Service Extension”¶
IFS SSRS integration introduces a new Microsoft Report Server Data Source Extension. The reasons behind developing a custom IFS data source extensions can be listed as follows.
- Microsoft’s XML Data Source only works with Windows-integrated authentication or no authentication at all.
- Microsoft’s XML Data Source requires “XML Query” or “Element Paths” which require in-depth knowledge of the IFS data XML and knowledge of XML query syntax.
- The caching of the data is not controllable.
The IFS Report Data Service Extension resolves the above concerns by providing authentication, data caching, and simple data query capabilities. The RDF report data collection, in other words, the report data XML, is exposed as a series of Microsoft report datasets inside the MS SQL Server Reporting Services. The datasets are cached to be reused by the returning request for the same result set.
Generation of Datasets from IFS report data XML¶
The data found in a typical IFS report data XML can be categorized into four main areas.
- Report Parameters - parameters used to order the report
- Report column Translations and report texts
- Report data - actual report data section
- Report metadata - information about the order report request (user information, order time )
IFS Report Data Service Extension is capable of converting each of the above-mentioned sections of the report data XML into an MS SQL data set using simple queries. Data query contains two main parts the IFS operational report ID, and the data block of the xml. <REPORT_ID>: <BLOCK>. Some examples are listed below.
Query Example | Description |
---|---|
PRODUCT_CATALOG_REP:PARAMETERS | All parameter data |
PRODUCT_CATALOG_REP:TRANSLATIONS | All Translations data |
PRODUCT_CATALOG_REP:DATA | Operational Data block |
PRODUCT_CATALOG_REP:META | All Meta data |
In summary, the IFS Report Data Service Extension is aware of, IFS Instance that it should retrieve the data from, the user credentials to connect to IFS, a query to get the data bock, and convert it to a Microsoft dataset.
Security¶
The main data source in this integration, The "IFS Report Data Service" is protected by the client credentials flow of the IAM clients. Access to IFS Results is controlled by a one-time Token mechanism. A token is generated at the start of the SSRS request process and it is passed along with the SSRS formatting request to be used by the IFS Report Data Service Extension to authorize against the IFS web service that retrieves data. The whole Security token mechanism is built into the SSRS integration and not specifically visible to outside and it doesn't require any configuration to be done.
SSRS Report Development and Runtime¶
Development of the SSRS reports is done using the Microsoft BIDS Studio for Visual Studio and with the use of the IFS Report Data Service Extension. IFS Report Data Service Extension can be installed using the F1 Tools Installer. When developing SSRS reports, the user will have to have access to a result set in IFS that can be used for previewing. This report must be distributed to the actual user logged in to SSRS. But at runtime, the built-in user IFSPRINT will execute all reports and use a special method for authenticating and impersonating the end user. A detailed example can be found at the end of this documentation.
Please read more about the required configurations here.
Known Limitation¶
- SSRS Data Service Extension does not support Windows Integrated Authentication
Example¶
See this example of creating a basic SSRS Report to learn how to develop a simple SSRS Report that can be used to replace the Report Designer layout for an operational report in IFS Cloud.