Building Production-Grade SSRS Reports for IFS Cloud

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

IFSIFS CloudSSRSReportingSQL ServerDevelopment

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

  1. Install SSDT: Download from Microsoft's official site and install the version matching your Visual Studio release.
  2. Install Reporting Services Projects: Via the Visual Studio Marketplace extension manager.
  3. 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:

  1. Navigate to your SSRS Report Server web portal
  2. Create a root folder named Published Reports
  3. Optionally, create subfolders for organizational categories (Sales, Operations, Finance, etc.)
  4. 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:

  1. In Report Builder, right-click on Data SourcesAdd Data Source

  2. Set Connection Type to Oracle Database

    • If unavailable, install Oracle Data Provider for .NET (ODP.NET) on the SSRS server
  3. Enter the connection string in the format:

    Data Source=[Database Host]:[Port]/[Service Name]; Unicode=TRUE
    

    Example: Data Source=reporting-db.example.internal:1521/DEVPDB; Unicode=TRUE

  4. Under Credentials, use a dedicated read-only reporting account granted only to approved views. Never configure the IFS application owner in SSRS.

  5. Enable Store credentials securely on the report server for shared deployments

  6. 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 _REP naming 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:

  1. Right-click on Parameters folder → Add Parameter
  2. 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

Linking Parameters to Datasets:

  1. Right-click on your dataset → Dataset Properties
  2. Navigate to the Parameters tab
  3. Click Add and map the report parameter to the query placeholder:
    • Report Parameter: @STATUS
    • Dataset Parameter: :STATUS

Designing the Report Layout

SSRS provides rich design capabilities through tabular, matrix, and freeform layouts.

Layout Best Practices:

  1. Use Tables for Tabular Data: Drag fields from your dataset directly onto a table template
  2. 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")
  3. 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
  4. Add Descriptive Headers: Include report title, execution date, parameter values in the header
  5. 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

  1. In Report Builder, click FileSave As
  2. Select the Published Reports folder (or subfolder)
  3. Enter the report name (no .rdl extension needed—it's added automatically)

Verify Deployment:

  1. Navigate to the SSRS Report Server web portal
  2. Browse to the Published Reports folder
  3. Click the report name to preview it
  4. 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:

  1. Navigate to Quick Reports window in IFS Cloud

  2. Click New Quick Report

  3. 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
  4. Fill in any descriptive fields

  5. 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:

FieldValueExample
SSRS Report Server URLWSDL endpointhttps://ifs-bi-prod/ReportServer/reportexecution2005.asmx
UsernameWindows domain userDOMAIN\ssrsuser
PasswordUser 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:

  1. Open Report Server Web Portal
  2. Click + NewData Source
  3. 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)
  4. Click Credentials
  5. Select Using the following credentials
  6. 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)
  7. Enter:
    • Username: the confidential client ID created for this installed integration
    • Password: Client Secret (generate from IAM client)
  8. 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
  9. 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:

  1. Open Visual Studio
  2. FileNewProject
  3. Search for "Report Server Project Wizard"
  4. Proceed through the wizard:
    • Enter project name and location
    • Choose "Report Server Project"

Configuring the Data Source:

  1. In the Report Wizard, select Data Source
  2. Set Type to IFS Report Data Services
  3. Enter the IFS Cloud application URL as the connection string
  4. Click Credentials → use the design-time/client credentials documented for the IFS Report Data Service extension. Never enter the Oracle application-owner password.
  5. 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:

  1. Complete the wizard, selecting Tabular as the report type
  2. Choose the fields to include in your report
  3. Select a suitable table layout
  4. 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:

  1. Right-click on ParametersAdd Parameter
  2. 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
  3. Click OK

Linking to Dataset:

  1. Right-click on your dataset → Dataset Properties
  2. Navigate to Parameters tab
  3. Add a new parameter:
    • Dataset parameter name: IFS
    • Parameter value: @IFS (from report parameters)

Testing Reports in Visual Studio

Before deployment, test your report in Visual Studio to catch layout and data issues early.

Preview Mode:

  1. Switch to Preview tab
  2. SSRS will attempt to render using available data
  3. If no data appears, ensure the report definition has been run in IFS Cloud first
  4. 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
  5. 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:

  1. Use Cascading Parameters: Filter options dynamically based on previous selections
  2. Provide Dropdown Defaults: Query valid values rather than requiring free-text entry
  3. Set Sensible Defaults: Pre-populate with common values (current month, all statuses, etc.)
  4. Group Related Parameters: Organize on the report canvas logically
  5. 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 range
  • ssrs-auth: must match the authentication mode supported by that IFS release and SSRS deployment; basic is 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:

  1. Navigate to Report Definitions in IFS Cloud
  2. Find and open your target report (e.g., "Product Catalog")
  3. Click Show Details
  4. Scroll to Layout Definitions section
  5. Click New Layout
  6. Configure:
    • Layout Name: Descriptive name (include .rpl extension)
    • Layout Title: Name shown in print dialogs
    • Paper Format: Letter, A4, Custom, etc.
    • Layout Type: Select Other Plugin
  7. Upload your .rpl file (drag-and-drop or manual selection)
  8. 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:

  1. User navigates to a Quick Report window in IFS Aurena
  2. Enters filter parameters
  3. Clicks View Report
  4. Report renders within an iFrame in the Aurena UI
  5. 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:

  1. Development Environment:

    • Develop on local SSRS instance
    • Use development IFS Cloud system
    • Leverage test data and refreshes
    • Iterate on design and parameters
  2. 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)
  3. 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:

  1. Verify "Base URL for MS Reporting Services" system parameter
    • Must be HTTPS
    • Format: https://hostname:port
    • Port required if non-standard
  2. Test direct access to SSRS Report Server from browser
  3. Check SSRS logs (C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\LogFiles)
  4. 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:

  1. Verify parameter definitions in SSRS report match IFS expectations
  2. Check RPL layout for correct parameterisation
  3. 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:

  1. In IFS Cloud, navigate to Order Report for your report definition
  2. Complete the wizard to generate a Result Key
  3. 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:

  1. Navigate to Reporting Services Plugin Settings in IFS Cloud
  2. Compare the IFS/SSRS extension versions with the update compatibility matrix
  3. Check secret expiry/rotation and TLS certificate trust without exposing the secret in logs
  4. 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:

  1. Confirm the authentication mode required by the release-matched IFS plug-in and the mode enabled in SSRS.
  2. Test DNS, TLS chain, proxy and the exact ReportExecution endpoint from the IFS integration network path.
  3. Validate the dedicated account/client and least-privilege SSRS role; rotate an expired secret through the approved process.
  4. 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

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.