Best Practices for Openlink Report Builder

September 1, 2026

Table of Contents

Openlink Report Builder makes it easy to build powerful reports quickly. Without strong design standards, ownership, and maintenance, that same flexibility can create an operational mess that users quickly lose confidence in. 

Report Builder Is More Than Reports 

Openlink Report Builder is one of the most useful tools available in Endur / Findur. It allows users to extract, transform, present, and distribute data without the overhead of conventional software development. It is also why Report Builder definitions can quickly get out of hand and become difficult to manage. 

A report can often be created in minutes, so there is little natural resistance to creating another one. Like any technology estate, unchecked growth eventually creates duplication, unclear ownership, and unnecessary maintenance overhead. Over time, organizations accumulate duplicated definitions, inconsistent naming, complicated joins, historical output nobody needs, and reports whose original owners have long since moved on

It can also do considerably more than generate an email with an Excel file attached. Report Builder can form part of core business processes through TPM and scheduled workflows. It should therefore be treated as a configurable application capability, not disposable end-user reporting. 

Why Report Builder Becomes Difficult to Maintain 

It is too easy to create another report 

Report Builder definitions may not contain JVS or OpenComponents code, but they still create a maintenance obligation. Before creating a new definition, first establish whether the requirement can be satisfied by an existing report, either by adding an additional output or utilizing different parameters. 

Report Builder supports multiple outputs from the same definition, so these requirements do not automatically justify another report. Complementary tools like TPM now allow these different outputs to be selected, rather than just running the default. Every unnecessary definition becomes another artefact to understand, test, support, and consider during an upgrade

Abandonware accumulates 

Staff turnover and changing business processes leave reports in Production that are rarely, if ever, used. This is more dangerous than simple clutter. An old report may continue to produce plausible-looking information after the process or data model around it has changed. A user finding it in Production can reasonably assume that it is still supported. 

Usage should therefore be reviewed periodically. Reports that have not run for a significant period should be challenged with their owners. Two years remains a reasonable trigger in many environments, although year-end, contingency, and regulatory reports may legitimately run infrequently. The important question is not simply when a report last ran, but whether somebody can still explain why it exists. 

Complexity hides inside configuration 

The absence of code does not necessarily mean the absence of complexity. Report Builder can combine queries, database tables, simulation results, custom SQL, plugins, expressions, parameters, and multiple outputs. Poorly structured definitions can become every bit as difficult to understand as custom code. 

The design principle should be the same as elsewhere in Openlink: keep the solution as simple and visible as possible. 

Openlink Report Builder Best Practices 

Start with the simplest appropriate data source 

Where practical, use Openlink’s query-based data sources as the foundation of a report. They provide a clearer functional abstraction over the database and are generally easier for future users to understand. Where database tables are required, keep the number of sources low and joins straightforward. Default joins should always be reviewed rather than assumed to be correct. 

For more complicated requirements, move complexity to the appropriate layer. Custom SQL can be preferable where several tables must be combined, or the same logic will be reused across reports. Plugins should generally be reserved for requirements that cannot sensibly be handled through standard configuration or SQL. The objective is to put logic in one obvious, supportable place. 

Reuse components instead of copying reports 

A mature Report Builder estate should have reusable building blocks. Report Builder definitions can themselves be used as data sources, allowing several reports to consume the same curated dataset. Custom SQL and plugin data sources can serve the same purpose where shared logic is more complex. This is preferable to repeatedly using Save As and gradually creating several slightly different implementations of the same business logic. 

The benefit becomes obvious when something changes. Fixing one shared component is considerably safer than identifying every report containing its own variation of the same logic. Parameters and expressions should also be used to make definitions reusable rather than hardcoding values that vary by user, portfolio, date, or process. 

Apply strict naming and ownership standards 

Use consistent naming across report definitions, saved queries, custom data sources, outputs, and scheduled workflows. A support analyst should be able to identify related objects and understand the purpose from naming conventions and related descriptions. Saved queries used by Report Builder should also be named clearly so they are not amended inadvertently. 

Every Production report should also have a recognized business owner, with technical ownership where the report supports a critical process or contains more complex logic. Ownership should be reviewed periodically, with unused or poorly understood reports challenged rather than allowed to persist indefinitely. 

Control development and Production access 

While reports are generally read-only output, nobody should routinely develop Report Builder definitions directly in Production. Changes should be created in a lower environment, tested, accepted, and promoted through an appropriate deployment process. Report Builder Designer access, import, and other administrative privileges should be restricted to users who genuinely need them. 

Governance should, however, remain proportionate to risk. A small amendment to an informational report does not require the same controls as a definition feeding settlement processing, accounting, regulatory reporting, or Auto Match. The latter should be treated as part of the operational process it supports, with appropriate regression and performance testing. Good governance reduces risk without turning every change into a major software release. 

Monitor performance and historical data 

A report that performs well when first developed may degrade as transaction volumes and historical data increase. Performance problems often come back to unnecessarily complicated joins, too many data sources, excessive data retrieval, or logic that would be better performed in SQL before Report Builder receives the data. 

Large or recurring reports should also use appropriate execution architecture. Report Builder Service provides more robust scheduled execution and the ability to distribute processing rather than relying on interactive user sessions. Note here that if the report is configured to open the output (Excel, PDF, etc.) that will happen on the server session, not the user that ran the report. 

Historical report output needs similar discipline. Retaining report history can be essential where there is a genuine audit or business requirement, but uncontrolled retention can leave large amounts of unnecessary data in the Openlink database or file server. Organizations should know what they retain, why they retain it, and when it can be purged. 

Design for support and upgrades 

A report should be designed for the person who will support it in two years, not simply the person building it today. That means minimizing hidden logic, using clear names, reusing common components, documenting unusual dependencies, and making configuration understandable without relying on the original developer. 

This also pays dividends during upgrades. A clean estate of owned, documented, actively used reports is relatively straightforward to assess and regression-test. An environment containing hundreds of duplicated or abandoned definitions creates unnecessary upgrade effort before testing has even begun. 

Keep the Estate Clean 

Report Builder maintenance should be continuous rather than something undertaken immediately before an upgrade. 

A regular health check should review: 

  • Report ownership and continued business purpose. 
  • Usage and candidates for retirement. 
  • Naming-standard compliance. 
  • Production access and deployment controls. 
  • Duplicate definitions and reusable component opportunities. 
  • Query, join, SQL, and plugin complexity. 
  • Performance and scheduled execution. 
  • Historical output retention. 
  • Dependencies on workflows, templates, interfaces, and downstream processes. 

The objective is not to minimize the number of reports for its own sake. It is to ensure that the reports that remain are understood, supportable, and worth maintaining. 

Get Started with capSpire 

Report Builder remains one of Openlink’s most flexible capabilities. Used well, it can replace unnecessary custom development, simplify operational reporting, automate controls, and provide reusable data throughout the platform. Used without sufficient governance, that same flexibility creates technical debt surprisingly quickly. 

The strongest Report Builder estates combine simple design, reusable components, controlled deployment, consistent naming, clear ownership, regular maintenance, and deliberate retirement of obsolete reports. 

capSpire helps organizations assess, rationalize, and improve their Openlink Report Builder estate, from targeted health checks through to report redesign and broader platform optimization. The objective is straightforward: fewer unnecessary reports, better performance, lower support and upgrade effort, and greater confidence in the information users rely upon. 

Ready to get your Report Builder environment in shape? Contact capSpire to schedule a health check. 

Ben Jackson headshot

Ben Jackson
Capital Markets Lead – EMEA