Building Production-Grade SSRS Reports for IFS Cloud
A complete guide to SSRS report development for IFS Cloud — data source setup, parameterisation, designing production-ready layouts, embedding in Aurena, and deployment.
Published
Introduction
SQL Server Reporting Services (SSRS) is an optional reporting route in IFS Cloud estates that have deployed the supported IFS SSRS integration. It is not the universal or automatically fastest reporting standard: IFS Report Designer/Report Studio, Business Reporter, Quick Reports, analytics services and external BI each serve different needs. SSRS is valuable when paginated layout, grouping, rendering and Microsoft reporting operations justify the extra infrastructure.
This comprehensive guide walks you through the complete lifecycle of SSRS report development for IFS Cloud—from establishing data connections to deploying reports in Aurena. Whether you're building Quick Reports for self-service analytics or Operational Reports for business processes, you'll find practical, step-by-step instructions informed by real-world implementations.
Understanding SSRS in IFS Cloud
IFS Cloud releases have supported SSRS Quick Report and SSRS Operational Report patterns. Setup details—including supported SQL Server/Visual Studio versions, extensions, identity clients, RPL schema and authentication—vary by IFS release. Use this guide for the design workflow, then execute the exact installation/configuration steps from the target release's official documentation.
SSRS Quick Reports
Quick Reports are self-service reports accessible through the IFS Cloud user interface. They accommodate flexible parameters and multi-dimensional filtering, making them ideal for analytical queries and ad-hoc reporting. Unlike Operational Reports, Quick Reports use the native SSRS authentication model and are rendered within an iFrame in the Aurena interface.
Key characteristics:
- Simpler setup and deployment
- Support for multiple parameters
- Rendered via SSRS Report Server portal
- No requirement for IAM client configuration
- Ideal for business user consumption
SSRS Operational Reports
Operational Reports replace the traditional IFS Report Designer layouts. These are integrated deeply into IFS business processes—invoices, shipment notes, packing lists, and other transactional documents. They leverage IFS's identity and access management (IAM) for authentication and use the specialized IFS Report Data Service Extension for data access.
Key characteristics:
- Deep integration with business processes
- Require IAM client setup and data source configuration
- Use IFS Report Data Services for the operational report dataset
- Deployed via Report Definition layouts in IFS Cloud
- Support for complex parameterisation tied to business logic
Prerequisites and Environment Setup
Before you begin developing SSRS reports for IFS Cloud, ensure your environment is properly configured.
Required Tools and Components
Development Environment:
- Microsoft Visual Studio (2019 or later recommended)
- SQL Server Data Tools (SSDT) for Visual Studio
- Microsoft Reporting Services Projects extension
- IFS SSRS Operational Reporting Visual Studio Extension
Server Infrastructure:
- SQL Server Reporting Services (2016 or later)
- IFS Cloud instance (with Report Server configured)
- Network connectivity between SSRS and IFS Cloud instances
- The authentication mode explicitly supported by the target IFS/SSRS integration and hardened for the deployment
Installation Checklist
- Install SSDT: Download from Microsoft's official site and install the version matching your Visual Studio release.
- Install Reporting Services Projects: Via the Visual Studio Marketplace extension manager.
- Install the release-matched IFS components: the Visual Studio design-time extension and the SSRS server-side Report Data Service extension are distinct installation concerns. Follow the IFS delivery package/readme for the target release; installing a Visual Studio extension on a workstation does not by itself install a data extension on Report Server.
Part 1: Quick Reports Development
Setting Up the Report Server Structure
Begin by establishing a proper folder hierarchy on your SSRS Report Server. IFS Cloud searches within the "Published Reports" folder for Quick Reports.
Steps:
- Navigate to your SSRS Report Server web portal
- Create a root folder named Published Reports
- Optionally, create subfolders for organizational categories (Sales, Operations, Finance, etc.)
- Folder names can include spaces without issues
Creating a Data Source
Quick Reports can use either embedded or shared data sources. For production deployments, shared data sources are recommended for maintainability.
For an authorised customer-controlled Oracle source:
-
In Report Builder, right-click on Data Sources → Add Data Source
-
Set Connection Type to Oracle Database
- If unavailable, install Oracle Data Provider for .NET (ODP.NET) on the SSRS server
-
Enter the connection string in the format:
Data Source=[Database Host]:[Port]/[Service Name]; Unicode=TRUEExample:
Data Source=reporting-db.example.internal:1521/DEVPDB; Unicode=TRUE -
Under Credentials, use a dedicated read-only reporting account granted only to approved views. Never configure the IFS application owner in SSRS.
-
Enable Store credentials securely on the report server for shared deployments
-
Test the connection before proceeding
Connection String Parameters:
- Data Source: Oracle Easy Connect host, port, and service name (not an Oracle SID shortcut)
- Unicode=TRUE: Required for proper character encoding with IFS data
An IFS-managed Cloud production database is not an SSRS data source available to the customer. For that model, use the supported IFS Report Data Service for operational output, projection/data-service contracts for analytics, or another contracted reporting route. Even in customer-controlled deployments, direct SQL bypasses IFS projection and row-access semantics unless the reporting views/account explicitly enforce them.
Building Datasets and Queries
After configuring the data source, create datasets that retrieve your report data.
Best Practice Query Structure:
ACME_CUSTOMER_ORDER_REPORTING is an illustrative customer-owned view. Replace it with a governed reporting contract built from views approved for the target release and deployment.
Key Points:
- Use a customer-owned reporting view with a documented, tested contract; do not infer a generic
_REPnaming convention - Use SSRS parameter syntax (
:PARAMETER_NAME) for parameterised queries - Leverage database-level filtering for performance (avoid report-level filtering)
- Always include appropriate ORDER BY clauses
Defining Report Parameters
Parameters allow end-users to customize reports dynamically.
Creating Parameters:
- Right-click on Parameters folder → Add Parameter
- Set:
- Name: Matches the syntax used in your query (e.g.,
STATUS) - Prompt: User-facing label (e.g., "Filter by Status")
- Data Type: String, Integer, DateTime, etc.
- Allow null values: As appropriate for your business logic
- Multi-value: Enable for filtering across multiple selection values
- Name: Matches the syntax used in your query (e.g.,
Linking Parameters to Datasets:
- Right-click on your dataset → Dataset Properties
- Navigate to the Parameters tab
- Click Add and map the report parameter to the query placeholder:
- Report Parameter:
@STATUS - Dataset Parameter:
:STATUS
- Report Parameter:
Designing the Report Layout
SSRS provides rich design capabilities through tabular, matrix, and freeform layouts.
Layout Best Practices:
- Use Tables for Tabular Data: Drag fields from your dataset directly onto a table template
- Alternate Row Colors: Improve readability by enabling alternating background colors
- Select the detail row/textboxes → BackgroundColor expression →
=IIF(RowNumber(Nothing) Mod 2 = 0, "#F2F2F2", "White")
- Select the detail row/textboxes → BackgroundColor expression →
- Format Data Appropriately:
- Numbers: Align right, use consistent decimal places
- Dates: Format consistently (e.g., dd/MM/yyyy)
- Currency: Include symbol, use accounting format for negatives
- Add Descriptive Headers: Include report title, execution date, parameter values in the header
- Set Proper Column Widths: Test that data doesn't wrap inappropriately
Production Layout Recommendations:
- Font: Calibri or Arial, 10-11pt for body text
- Header: 12-14pt, bold, with background color
- Margins: 0.5" minimum on all sides
- Page orientation: Portrait or Landscape as appropriate for data width
- Keep reports to single-page width when possible
Deploying Quick Reports to the Report Server
- In Report Builder, click File → Save As
- Select the Published Reports folder (or subfolder)
- Enter the report name (no
.rdlextension needed—it's added automatically)
Verify Deployment:
- Navigate to the SSRS Report Server web portal
- Browse to the Published Reports folder
- Click the report name to preview it
- Test parameter functionality in preview mode
Linking Quick Reports in IFS Cloud
Once deployed to the report server, register the Quick Report in IFS Cloud.
Steps:
-
Navigate to Quick Reports window in IFS Cloud
-
Click New Quick Report
-
Set:
- Type: MS Report
- Report Reference: Path relative to Published Reports folder
Examples:
- Direct child:
/CustomerOrderReport - Nested:
/Sales/CustomerOrderReport - With spaces:
/Product Catalog Report/ProductReport
-
Fill in any descriptive fields
-
Save, then click View Report to test
Troubleshooting Quick Reports:
- If report fails to load, verify the "Base URL for MS Reporting Services" system parameter
- Navigate to System Parameters in IFS Cloud
- Set to format:
https://<hostname>:<port>(with HTTPS) - Example:
https://ifs-bi-prod:443
- Verify network connectivity between IFS Cloud and SSRS server
- Check SSRS logs for authentication failures
Part 2: Operational Reports Development
Prerequisites for Operational Reporting
Operational Reports require additional infrastructure beyond Quick Reports. The IFS integration uses a dedicated data source extension and IAM client authentication.
Configuring IAM Clients
IFS Cloud identity configuration controls how the SSRS extension obtains data. Some released integration guides use a public design-time client plus a confidential/service client; later releases may provision or name them differently. Create only the clients required by the official target-release procedure and apply the prescribed scopes, flows and redirect URIs.
Client 1: Public Client
ID: <target-release design-time client ID>
Public Client: TRUE
Service Account Enabled: FALSE
Redirect URLs: <exact approved localhost/tool callback, if required>
Client 2: Service Account Client
ID: <target-release server integration client ID>
Public Client: FALSE
Service Account Enabled: TRUE
Service Account User: <dedicated least-privilege integration identity>
Important: Client IDs are case-sensitive. Do not add /** or **/* wildcard redirect URIs unless the exact IFS release documentation explicitly requires and the security team approves them. Password/direct-access grants are legacy OAuth patterns and should not be enabled by habit.
Configuring SSRS Plugin Settings
Navigate to Reporting Services Plugin Settings in IFS Cloud to establish the connection between IFS Cloud and your SSRS infrastructure.
Required Configuration:
| Field | Value | Example |
|---|---|---|
| SSRS Report Server URL | WSDL endpoint | https://ifs-bi-prod/ReportServer/reportexecution2005.asmx |
| Username | Windows domain user | DOMAIN\ssrsuser |
| Password | User password | ••••••••• |
URL Formats:
- HTTP:
http://<hostname>/ReportServer/reportexecution2005.asmx - HTTPS:
https://<hostname>/ReportServer/reportexecution2005.asmx - Non-standard ports:
https://<hostname>:8443/ReportServer/reportexecution2005.asmx
Setting Up the IFS Report Data Services Data Source
The IFS Report Data Service Extension enables Operational Reports to retrieve data from IFS through authenticated web services.
On the SSRS Report Server:
- Open Report Server Web Portal
- Click + New → Data Source
- Configure:
- Name: IFS Report Data Service
- Type: IFS Report Data Services (appears only after extension installation)
- Connection String: Your IFS Cloud application URL (same as the landing page)
- Click Credentials
- Select Using the following credentials
- Choose the credential mode specified for the installed IFS data extension (SSRS may label the generic fields as username/password even when they carry an OAuth client ID/secret)
- Enter:
- Username: the confidential client ID created for this installed integration
- Password: Client Secret (generate from IAM client)
- Select impersonation only when the target IFS integration guide requires it and the identity flow supports it; a service client does not automatically become the interactive report viewer
- Test the connection
Common Configuration Error: If you receive an authentication error, regenerate the client secret from the IAM Client page and re-enter it in the SSRS data source configuration.
Developing Operational Reports in Visual Studio
Operational Reports require development in Visual Studio with the IFS extension installed. Report Builder cannot be used.
Creating a New Project:
- Open Visual Studio
- File → New → Project
- Search for "Report Server Project Wizard"
- Proceed through the wizard:
- Enter project name and location
- Choose "Report Server Project"
Configuring the Data Source:
- In the Report Wizard, select Data Source
- Set Type to IFS Report Data Services
- Enter the IFS Cloud application URL as the connection string
- Click Credentials → use the design-time/client credentials documented for the IFS Report Data Service extension. Never enter the Oracle application-owner password.
- Test the connection
Writing the Query:
Operational Reports retrieve data from IFS Report Definitions rather than direct SQL queries. Reference data using the syntax:
REPORT_ID:DATA
REPORT_ID:TRANSLATIONS
REPORT_ID:META
REPORT_ID:PARAMETERS
Example for a Product Catalog Report:
PRODUCT_CATALOG_REP:DATA
This retrieves the operational data block from the product catalog report definition.
Building the Report:
- Complete the wizard, selecting Tabular as the report type
- Choose the fields to include in your report
- Select a suitable table layout
- Finish to auto-generate a basic layout
Creating the IFS Parameter
Every Operational Report requires a special IFS parameter to receive the Result Key from IFS Cloud. This parameter allows the data service extension to retrieve the correct dataset.
Steps:
- Right-click on Parameters → Add Parameter
- Set:
- Parameter Name:
IFS - Prompt:
IFS - Allow null values: follow the extension template/preview requirement for the target release
- Parameter visibility: Hidden/Internal for deployed operational use
- Parameter Name:
- Click OK
Linking to Dataset:
- Right-click on your dataset → Dataset Properties
- Navigate to Parameters tab
- Add a new parameter:
- Dataset parameter name:
IFS - Parameter value:
@IFS(from report parameters)
- Dataset parameter name:
Testing Reports in Visual Studio
Before deployment, test your report in Visual Studio to catch layout and data issues early.
Preview Mode:
- Switch to Preview tab
- SSRS will attempt to render using available data
- If no data appears, ensure the report definition has been run in IFS Cloud first
- For fresh development, generate test data:
- In IFS Cloud, navigate to Order Report window
- Select your report and click Order Report
- Complete the wizard—this generates a Result Key
- Return to Visual Studio preview and re-test
Report Design Best Practices for Production
Production-grade Operational Reports demand careful attention to layout, performance, and usability.
Data Visualization:
- Keep charts simple—limit pie chart categories to 5-8 items
- Use bar/line charts for comparisons across multiple categories
- Include descriptive axis labels and legends
- Provide "No Data" messages for empty result sets using the NoRowsMessage property
Performance Optimization:
- Filter data at the query level (in the Report Data Service) rather than in report expressions
- Avoid expensive report-level functions (Lookup, First, Last, RunningValue)
- Minimize the use of subreports—each adds significant overhead
- Test report rendering with realistic data volumes
Formatting and Readability:
- Use uniform fonts throughout (Calibri 10-11pt standard)
- Limit color palette to 2-3 primary colors plus accent
- Use bold headers to distinguish sections
- Ensure numbers and dates don't wrap across lines
- Display the report execution date/time in the footer
- Include parameter values used in the report header
Accessibility:
- Ensure sufficient color contrast (WCAG AA minimum)
- Provide text alternatives for complex visualizations
- Use descriptive names for charts and tables
- Test PDF export for readability
Direct Oracle Database Connections (Separate Reporting Pattern)
Some Apps 10 or customer-controlled deployments use a dedicated read-only Oracle account for an SSRS Quick Report or external analytics report. That is a separate pattern from an IFS SSRS Operational Report and is not available as customer database access in an IFS-managed Cloud service. It bypasses projection security, so report views and grants must enforce the intended company/site/data scope.
Data Source Configuration:
Data Source=[hostname]:[port]/[service_name]
Example: Data Source=reporting-db:1521/IFSTEST
Query Format:
Use a customer-owned reporting view with a documented contract; do not invent _REP joins or query IFS result-data storage directly:
ACME_CUSTOMER_ORDER_REPORTING is deliberately customer-owned and illustrative. If you are building an Operational Report, keep the IFS result-key parameter and Report Data Service dataset instead; do not parse it to search a fictional IFS_RESULT_DATA table.
Parameterisation Best Practices
Well-designed parameters significantly improve report usability and performance.
Parameter Design Principles:
- Use Cascading Parameters: Filter options dynamically based on previous selections
- Provide Dropdown Defaults: Query valid values rather than requiring free-text entry
- Set Sensible Defaults: Pre-populate with common values (current month, all statuses, etc.)
- Group Related Parameters: Organize on the report canvas logically
- Label Clearly: Use descriptive prompts ("Select Order Status" not "Status")
Example: Multi-Level Cascading Parameters
Parameter 1: Customer (populated from a permission-controlled customer lookup dataset)
Parameter 2: Order (filtered by selected customer)
Parameter 3: Line Item (filtered by selected order)
The lookup dataset must use a reporting view or other contract verified in the target release. CUSTOMER_REP is not a universal IFS view name.
Creating and Deploying the RPL Layout
Once the SSRS report is finalized and deployed to the Report Server, you must create an RPL (Report Plug-in Layout) XML file to register it with IFS Cloud.
RPL Template (historic/example shape):
Configuration Notes:
report-id: Must match your IFS report identifier (case-sensitive)ssrs-layout: Path to report in SSRS server, relative to root (supports spaces)ssrs-timeout: timeout semantics/units and appropriate value must come from the target release and report workload; 5–10 seconds is not a universal production rangessrs-auth: must match the authentication mode supported by that IFS release and SSRS deployment;basicis not a timeless universal rule
Save as: layout-name.rpl. Prefer a template exported/generated by the exact target release: plug-in class names, layout schema/version and properties can change, so do not treat this example XML as a 26R1 contract.
Registering the Layout in IFS Cloud
Steps:
- Navigate to Report Definitions in IFS Cloud
- Find and open your target report (e.g., "Product Catalog")
- Click Show Details
- Scroll to Layout Definitions section
- Click New Layout
- Configure:
- Layout Name: Descriptive name (include
.rplextension) - Layout Title: Name shown in print dialogs
- Paper Format: Letter, A4, Custom, etc.
- Layout Type: Select Other Plugin
- Layout Name: Descriptive name (include
- Upload your .rpl file (drag-and-drop or manual selection)
- Click OK to save
After Registration:
- The layout appears in the Print Report dialog when ordering reports
- Select it, click Preview, and test rendering
- Verify all parameters are passed correctly
- Check formatting, margins, and page breaks
Embedding SSRS Reports in Aurena
IFS Cloud embeds SSRS Quick Reports using an iFrame, seamlessly integrating reports into the user interface.
User Experience:
- User navigates to a Quick Report window in IFS Aurena
- Enters filter parameters
- Clicks View Report
- Report renders within an iFrame in the Aurena UI
- User can print, export, or navigate back
Developer Considerations:
- Report Server must be accessible from the user's browser
- SSRS HTTPS certificate must chain to a trust anchor accepted by the users' browsers; an untrusted self-signed certificate will fail
- Parameter passing is automatic—IFS handles the plumbing
- Report rendering timeouts are configurable via system parameters
Deployment Strategies
Development → Staging → Production Workflow
Proper deployment discipline minimizes production issues.
Recommended Process:
-
Development Environment:
- Develop on local SSRS instance
- Use development IFS Cloud system
- Leverage test data and refreshes
- Iterate on design and parameters
-
Staging Validation:
- Deploy report to staging SSRS server
- Create the RPL layout with the report path deployed in staging
- Register layout in staging IFS Cloud
- User acceptance testing (UAT)
- Performance testing with production-scale data
- Security validation (data access, parameter filtering)
-
Production Deployment:
- Deploy finalized .rdl to production SSRS server
- Deploy the same approved report path/RPL contract to production, changing an environment-specific path only when the production folder layout genuinely differs
- Register layout in production IFS Cloud
- Monitor first executions for errors
- Collect user feedback and iterate
Version Control and Documentation
Treat SSRS reports as code assets.
Repository Structure:
reports/
├── development/
│ ├── ssrs/
│ │ └── ProductCatalogREP.rdl
│ └── layouts/
│ └── ProductCatalogREP.rpl
├── staging/
│ ├── ssrs/
│ └── layouts/
└── production/
├── ssrs/
└── layouts/
Documentation:
- Maintain a README per report describing:
- Business purpose
- Parameters and filtering logic
- Data sources and query performance
- Known limitations or caveats
- Deployment locations (dev, staging, prod)
- Owner/support contact
Common Pitfalls and Troubleshooting
Issue: Report Fails to Load in IFS Cloud
Symptoms: Generic error or continuous loading
Diagnostics:
- Verify "Base URL for MS Reporting Services" system parameter
- Must be HTTPS
- Format:
https://hostname:port - Port required if non-standard
- Test direct access to SSRS Report Server from browser
- Check SSRS logs (C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\LogFiles)
- Verify network connectivity and firewall rules
Solution:
- Correct the system parameter if misconfigured
- Verify the installed IFS plug-in's supported authentication mode and SSRS configuration against the target-release guide
- Restart SSRS only when the specific configuration change requires it and within the operational change window
Issue: Parameters Not Passed to Report
Symptoms: Report renders but parameters are null
Diagnostics:
- Verify parameter definitions in SSRS report match IFS expectations
- Check RPL layout for correct parameterisation
- Confirm parameter linking between report and datasets
Solution:
- Redeploy the report with correct parameter configuration
- Test parameter passing in Report Builder preview mode
Issue: "No Entries in Report Archive for the Given Report ID"
Symptoms: Preview fails in Visual Studio during development
Diagnostics:
- This is normal during initial development when no test data exists
Solution:
- In IFS Cloud, navigate to Order Report for your report definition
- Complete the wizard to generate a Result Key
- Return to Visual Studio and re-test preview
Issue: SSRS Operational Reports Stop Working After IFS Update
Symptoms: Suddenly fails after service pack or release update
Likely areas: plug-in compatibility, expired/rotated credentials, changed TLS trust, report-data extension version, permissions, or an altered report definition/result contract
Solution:
- Navigate to Reporting Services Plugin Settings in IFS Cloud
- Compare the IFS/SSRS extension versions with the update compatibility matrix
- Check secret expiry/rotation and TLS certificate trust without exposing the secret in logs
- Re-test a known result key in non-production; re-enter a password only if evidence shows that credential is the failure
Issue: 401 Unauthorized When Connecting to SSRS
Symptoms: SSRS server rejects connection attempts
Possible causes: wrong report-server URL, authentication-mode mismatch, expired client secret/service credential, SPN/delegation issue for Windows authentication, proxy/TLS changes, or insufficient SSRS permissions
Solution:
- Confirm the authentication mode required by the release-matched IFS plug-in and the mode enabled in SSRS.
- Test DNS, TLS chain, proxy and the exact ReportExecution endpoint from the IFS integration network path.
- Validate the dedicated account/client and least-privilege SSRS role; rotate an expired secret through the approved process.
- Inspect SSRS and IFS correlation logs. Do not add
<RSWindowsBasic />blindly or send a domain password to an HTTP URL: Basic credentials require TLS and a security-reviewed design.
Issue: High Memory Usage or Slow Report Rendering
Possible causes: Inefficient source queries, unnecessarily large datasets, expensive report expressions/subreports, renderer pressure, or constrained SSRS capacity
Solutions:
- Optimize SQL queries (add WHERE clauses, avoid SELECT *)
- Reduce the dataset at source; SSRS pagination changes layout, not how many rows the query retrieves
- Reuse shared datasets for governance, and configure report/dataset caching or snapshots explicitly where freshness and security rules permit it—a shared dataset is not cached merely because it is shared
- Move aggregation logic to the database layer
- Monitor SSRS performance logs for slow-running reports
Key Takeaways
Quick Wins:
- Use SSRS where paginated layout and operational integration justify the infrastructure; benchmark data retrieval rather than assuming the renderer improves query performance
- Start with Quick Reports if you're new to SSRS + IFS; their simpler deployment is a confidence builder
- Master parameterisation early—good parameter design drives report adoption
Critical Success Factors:
- Invest time in proper data source and query optimization upfront
- Test extensively in staging before production deployment
- Document reports thoroughly for maintainability
- Version control your .rdl and .rpl files like application code
When to Escalate:
- If SSRS server connection fails persistently, verify the complete target-release compatibility/authentication/TLS chain
- For complex data requirements, consider whether direct Oracle connections are truly necessary
- If user adoption is low, revisit parameter design and visualization choices
Additional Resources
- IFS Cloud Technical Documentation - Official SSRS operational reporting guides
- SQL Server Reporting Services Official Docs - Comprehensive SSRS reference
- Microsoft Report Builder - Self-service reporting tool documentation
- IFS Developer Portal - IFS SSRS Extension downloads and release notes
Need help designing SSRS reports for IFS Cloud?
Syrett Consultancy can help you structure datasets, layouts, and deployment patterns that hold up in production and across upgrades.