Disabling Direct Report Execution in Jaspersoft
search cancel

Disabling Direct Report Execution in Jaspersoft

book

Article ID: 402589

calendar_today

Updated On:

Products

Clarity PPM On Premise

Issue/Introduction

To align with Broadcom's best practices for managing system resources, particularly when dealing with large or complex reports, we need to prevent users from directly running reports in Jaspersoft.

Currently, users have two direct execution options for immediate report execution by right-clicking on a report in the repository:

  1. Run
  2. Run in New tab

Accidental direct runs are common, especially on macOS, where the "control + right-click" menu can be triggered unintentionally. These direct runs can negatively impact system performance by consuming significant resources, which is a key reason for encouraging scheduled report execution.

We are looking for a solution to disable these direct run options, leaving only the "Run in background" (scheduled) option available. Is there a configuration setting in Jaspersoft to achieve this, or is a UI-level customization, such as modifying HTML/CSS, required to hide these options?

Resolution

Options to Disable Direct Report Runs

Here are two approaches to prevent direct report execution in Clarity Advanced reporting (Jaspersoft)

Option 1: Enabling reports to be run from Classic PPM > Reports and Jobs

This is the recommended method for controlling user access to reports and ensuring all executions are managed through the JasperSoft scheduler API. 

  • Disable Advanced Reporting Access: Restrict user access to Jaspersoft's advanced reporting UI. i.e., Revoke Advanced Reporting - Navigate"
  • Redirect Users to Classic PPM: Instruct users to run reports from the "Reports and Jobs" menu within classic Clarity PPM.
    Note: When a user runs a report from Clarity, the system calls the Jaspersoft scheduler API. This process ensures the report is generated in the background under the "CA PPM Reports Output" folder, and the final output is then transferred to Clarity.

To enable a custom report to be run from Clarity's "Reports and Jobs" menu, you must:

  1. Configure Access Rights: Ensure users have the necessary permissions.
    From the user Global Rights, you could consider adding the following report rights

    Reports - Access (Allows user access to the reports pages. This right is dependent on either the Reports - Run - All right or the user being granted instance level rights such as Report - Run, Report - View Output, or Report - Edit Properties.)
    Reports - View Output- All  (access right allows you to view all report output)
    Report - Run (Instance-level access right lets you run a specific report and view the output)
    Reports - Run All (Global access right Allows user access to the reports pages. This right is dependent on either the Reports - Run - All right or the user being granted instance level rights such as Report - Run, Report - View Output or Report - Edit Properties)
                                                         
     
  2. Create a Custom Job Definition: Define the report within the Clarity system as a job. Refer to the documentation "Configure Reports and Jobs > Create a Job Definition" for detailed instructions.

Option 2: UI Customization (Workaround)

This option involves modifying a configuration file to remove the menu options from the Jaspersoft UI. Note: This is a UI-level workaround and may be reverted during system upgrades.

There is no built-in configuration setting to remove the "Run" and "Run in New Tab" menu options. However, you can manually edit the actionModel-search.xml file to hide them.

  1. Locate the file: Navigate to jaspersoft_tomcat_home\Webappseportservice\WEB_INF\actionModel-search.xml.

  2. Edit the file: Remove the following two <condition> tags from the file:

    XML
     
    <condition test="checkMode" testArgs="browse,search,library">
        <simpleAction labelKey="RM_BUTTON_RUN" action="invokeRedirectAction" actionArgs="RunResourceAction"
                      clientTest="canBeRun" className="up"/>
    </condition>
    
    <condition test="checkMode" testArgs="browse,search,library">
        <simpleAction labelKey="RM_BUTTON_RUN_IN_NEW_TAB" action="invokeRedirectAction" actionArgs="RunResourceInNewTabAction"
                      clientTest="canBeRun" className="up"/>
    </condition>
    
  3. Save and restart: Save the modified file and restart the Jaspersoft services for the changes to take effect.