How can meta data be added to report details

Hi All

We’re currently undertaking a performance and governance improvement initiative across our SugarCRM Enterprise v25 environment. During a recent audit, we identified a high volume of reports (4,700+), with approximately 600 user-created reports contributing to system performance degradation due to poor filtering, large data joins, and excessive scheduling.

As part of our remediation and control strategy, we’re looking to implement a metadata framework for reports to enable structured governance, ongoing optimisation, and better ownership visibility.

However, the Reports module is not exposed via Studio, so how can we track and manage metadata for each report, whether manually, programmatically, or via a custom governance module, to support auditing, filtering enforcement, performance oversight, and lifecycle control.

Has anyone implemented a similar metadata tracking process for reports? If so, how was it structured, via a custom module, external tool, or back-end scripting?

Is there a recommended method to extract or expose report-level metadata (e.g., referenced modules, filters, runtime)?

Has SugarCRM considered exposing the Reports module for metadata tracking or governance use cases in future versions? i figure we could use the 'Advance reporting, would this be a solution?

Any best practices on integrating this governance approach into report request or review workflows (e.g., via BPM, SugarLogic, or user forms)?

regards John

  • Hi John,

    Extracting that data poses some challenges, even with the use of Advanced Reports, although, that is an option for at least a portion of your requirements.

    Specifically with regards to reports, the data you are seeking is in the table named saved_reports. However, the various corresponding attributes are stored in differing formats. For example, the report's associated module is stored in the "module" column, while the "report_type" column contains the information about its type.

    The bulk of the finer details are stored in a JSON object found in the "content" column. You would need to parse that object to obtain details such as the columns or filter(s) defined within the report. Advanced Reports would not facilitate that process. Similar challenges exist for BPM and in the case of Sugar Logic, you'd need to grep/parse PHP files. In short, there isn't an elegant way to easily obtain all the data that you need.

    I am not aware of the specific details on how this has been done, but I do know of customers that have implemented governance techniques for their ListView filters. If not mistaken, they limit the ability to create filters to administrators who in turn work in conjunction with their DBA to verify that the underlying queries are optimal, etc. Once that process is completed and everything is deemed acceptable, the filter is released to the regular users for their use. Note that this required some customization of Sugar to implement.

    Perhaps some concepts of that process could be applied to your needs, such as limiting the creation of reports to only administrators, so they can then approve them. However, that comes with the drawback that users then need to wait for their desired report to be approved.

  • Thanks Angel - i appreciate the response :-) I did suspect that if it was easy, someone would have done it but you've given me plenty to think about!