Create a Custom Script in a Report

You can add custom PHP scripts to your output levels to further manipulate the data in your report. For example, custom scripts can remove unwanted data, create links to web pages, and convert rows of data into tables.

Before you start

The Create/Edit Custom Scripts Analytics profile permission must be enabled to access custom scripts. Submit a Service Request if you aren't able to create a custom script and the profile permission is enabled.

When a report with a custom script runs, the report first runs on the server, then the script is applied to the report’s output. It is important to consider this ordering when creating custom scripts since this may cause the script to not function as you expect. For instance, when you view a report with a script that hides certain rows, the total number of records and pages on the report may be greater than what you see on the report, since these totals are generated when the report first runs.

PHP scripting language must be used when defining a custom script. PHP is a free, open-source scripting language and interpreter, similar in many ways to JavaScript and Microsoft’s VBScript. Like other scripting languages, PHP allows server-side scripting to be embedded inside client scripting. We recommend creating custom scripts only if you’re familiar with the PHP language and programming concepts. For documentation and information, see PHP: Hypertext Preprocessor.
Note: Custom scripts cannot include direct SQL statements.

Here's what to do

  1. Open the report you want to edit.
  2. Select the output level you want to add the custom script to from the Level drop-down list at the top of the report designer.
  3. Click the Level tab.
  4. Click Custom Scripts. The Custom Script editor opens.
    If the output level already has a custom script, the editor displays the custom script for editing.
  5. From the Initialization tab, enter the script executed before the report is processed.
    This script is executed when the report starts to process.
    Note: If the report is to be scheduled (see How You Schedule Reports), add putenv('TEMPORARY_RNW_CONF_DIRECTORY'); to the Initialization pane to ensure the custom script runs correctly when recipients open the report.
  6. Click the Headers tab.
  7. Enter the script that runs during the start process.
    This script is called once while passing the column headings. The $headers parameter is an array that contains the column headers for the report. For example:
     Array
     (
     [0] => Account ID
     [1] => Full Name
     )
  8. Click the Process tab.
  9. Enter the script that runs while the report is generating.
    This script is called with each row passing the row data. The $rows parameter is a nested array, allowing you to return a “table” of data rather than just a row. Initially, the $rows parameter contains only data in the first row of the table ($rows[0] [$i]). Each data cell contains a val variable that holds the value of the data cell. It can also contain a URL variable that contains a link for the data cell.
  10. Click the Finish tab.
  11. Enter the script that runs during the exit process.
    This script is called after the rows have been processed. The Finish script returns data in the $exit_obj variable, which is added to the report after each row of the Process script.
  12. Click OK to apply your custom script to your output level.
  13. To remove a custom script, click the Level tab, click Edit, and click Remove. Click Yes to the removal confirmation.
  14. To check the custom script for PHP errors, click the Home tab, click Views, and select either Report View or Layout View.
    If errors are found in the PHP code, a message displays. You can save the report if the message shows an error, but the custom script will be disabled when you run the report. When the problem is corrected and the report is saved again, the custom script will be enabled.
  15. Click Save.

What to do next

After adding a custom script to an output level, we recommend previewing the report using the Report View and Layout View options on the Home tab’s Views button. When you do so, the custom script is checked for errors and a message displays if any are found. When troubleshooting reports, we also recommend that you check if any of the report’s output levels have custom scripts since these can modify the reports’ appearance and functionality.