Configuring FSM Profitability Reporting

Configure the reports that the asset, customer, and project shortcuts open and the record criteria passed to each report. Maintain the reports and financial layouts in NetSuite. For more information about this feature and its limitations, see FSM Profitability Reporting.

A shortcut has two configuration requirements: select the report, and keep the link's criterion parameters compatible with that report's filters. Changing a report ID does not change the criterion mapping or the report definition.

You need access to the selected report.

This topic includes the following sections:

Properties and Defaults

The following table lists the profitability settings, defaults, and effects.

Property or Setting

Location

Accepted Value

Default

Effect

asset_profitability_report

accounting

Report internal ID

0: falls back to the Asset report registered on the FSM Account.

Selects the asset report unless its view overrides report.

entity_profitability_report

accounting

Report internal ID

0: falls back to the entity report registered on the FSM Account.

Selects the report shared by customer and project unless a view overrides report.

hidden

views/asset/profitability, views/customer/profitability, views/project/profitability

Boolean

false

Removes the button when hidden is true.

name

Each profitability view

Button internal ID

"custpage_nx_profitability"

Identifies the button. It does not change the link template's record-name value.

label

Each profitability view

Text or translation identifier

Record-specific translated Profitability Report label.

Changes the button text.

report

Each profitability view

Report internal ID

Resolved from the accounting setting or FSM Account. Uses 0 if no report is resolved.

Overrides the report for that view after the shared selection.

url

Each profitability view

Link template

Templates in the Default JSON example.

Builds the link using the selected report and that view's context values.

The three views/.../profitability names are literal top-level JSON keys. These keys are not nested views, asset, and profitability objects.

An accounting value of 0 uses the Account fallback. A per-view report override is applied later. Set hidden to true to remove a button instead of setting report to 0.

Default JSON

The fragment shows the relevant standard defaults. Report IDs and translated labels are resolved at runtime and are omitted.

            {
  "accounting": {
    "asset_profitability_report": 0,
    "entity_profitability_report": 0
  },
  "views/asset/profitability": {
    "hidden": false,
    "name": "custpage_nx_profitability",
    "url": "/app/reporting/reportrunner.nl?cr=${ report }&crit_2=${ name }"
  },
  "views/customer/profitability": {
    "hidden": false,
    "name": "custpage_nx_profitability",
    "url": "/app/reporting/reportrunner.nl?cr=${ report }&crit_1_mod=${ date }&crit_1_from=${ start }&crit_1_to=${ end }&crit_2=${ entity }&crit_3=${ name }"
  },
  "views/project/profitability": {
    "hidden": false,
    "name": "custpage_nx_profitability",
    "url": "/app/reporting/reportrunner.nl?cr=${ report }&crit_1_mod=${ date }&crit_1_from=${ start }&crit_1_to=${ end }&crit_2=${ entity }&crit_3=${ name }"
  }
} 

          

For shared editing, merging, and activation, see FSM Configuration. Merge the required properties into the existing configuration. This fragment is not a complete replacement.

Changing the Selected Report

Set accounting.asset_profitability_report to the intended asset report ID, or accounting.entity_profitability_report to the intended report ID shared by customer and project shortcuts. To select a report for only one shortcut, set that view's report property instead. A per-view report takes precedence over the accounting setting.

The following fragment changes only the report selection. Changing only the report ID is sufficient if the selected report accepts the supplied criterion mapping and value formats. This condition also requires that no per-view report override takes precedence.

Note:

The report IDs in this example are placeholders. Replace each ID with the ID of a report that you can access in your account.

            {
  "accounting": {
    "asset_profitability_report": 1234,
    "entity_profitability_report": 5678
  }
} 

          
Important:

${ report } inserts the selected ID into the link's cr parameter. The numbered crit_* parameters remain unchanged. FSM supplies the record and date values independently. It does not inspect the selected report and match those values to its filters. A report can open with an unintended scope if the mappings are incompatible.

If the replacement accepts the supplied mapping, the existing link can remain. Otherwise, override url in the corresponding view with the target report's established mapping. Customer and project share the accounting report selection but have separate views and record criteria. Retain the mapping needed by each shortcut.

The following table lists the supplied criterion mappings.

Shortcut

Supplied Criterion Parameters

Supplied Value

Asset

crit_2

Asset name.

Customer

crit_1_mod, crit_1_from, crit_1_to

Custom date mode and broad date range.

Customer

crit_2

Customer entity title for the hierarchy criterion.

Customer

crit_3

Empty value for ${ name }.

Project

crit_1_mod, crit_1_from, crit_1_to

Custom date mode and broad date range.

Project

crit_2

Empty Customer value.

Project

crit_3

Displayed parent name followed by : and project entity title.

These criterion numbers apply to the supplied reports and are not field identifiers that you can transfer to any report.

The following table lists the values available to a replacement link template.

View

Template Value

Contents

Asset

${ report }

Selected report ID.

Asset

${ name }

URL-encoded asset name.

Customer

${ report }

Selected report ID.

Customer

${ date }

CUSTOM.

Customer

${ start }

January 1, 1970, in the account's date format.

Customer

${ end }

January 1, 2100, in the account's date format.

Customer

${ entity }

URL-encoded customer entity title.

Customer

${ name }

Empty value.

Project

${ report }

Selected report ID.

Project

${ date }

CUSTOM.

Project

${ start }

January 1, 1970, in the account's date format.

Project

${ end }

January 1, 2100, in the account's date format.

Project

${ entity }

Empty value.

Project

${ name }

URL-encoded displayed parent name plus : plus project entity title.

Use the target report's parameter numbers and required value format. Retain ${ report } where the report ID is substituted, and replace captured record and date values only with values supplied by that view. The supplied record names are already URL encoded. The standard context does not provide a record internal ID or a recordname variable.

An address copied from the address bar may not contain every active report filter. Configuration does not generate a complete filtered link or infer missing parameters. To confirm compatibility, check the selected report, its criteria, and the resulting report scope. A copied address alone does not confirm compatibility.

Example: Asset Report with a Different Criterion

This example is conditional. Suppose your asset report has internal ID 1234, and its asset-name criterion has been confirmed as crit_4 instead of the supplied report's crit_2. The criterion must accept the asset name supplied by the standard view. Change both the selection and the link mapping:

Note:

The report ID 1234 and criterion crit_4 are examples. Replace these values with your report's ID and confirmed asset-name criterion.

              {
  "accounting": {
    "asset_profitability_report": 1234
  },
  "views/asset/profitability": {
    "url": "/app/reporting/reportrunner.nl?cr=${ report }&crit_4=${ name }"
  }
} 

            

For an asset named Pump 01, with no per-view report override, this builds:

              /app/reporting/reportrunner.nl?cr=1234&crit_4=Pump%2001 

            

The ID 1234 and criterion crit_4 illustrate the relationship. These example values are not supplied defaults or a universal mapping. Use your target report's ID and established criterion parameter. If its asset criterion remains crit_2 with the same value format, only the report ID needs to change.

This fragment does not change the customer or project shortcuts. Merge this fragment into the existing configuration and preserve other settings.

Changing Button Visibility

To remove the asset shortcut:

            {
  "views/asset/profitability": {
    "hidden": true
  }
} 

          

Use the corresponding customer or project view key to hide its button. Reports and financial data remain available subject to NetSuite permissions. You can add custom record buttons through the SuiteScript Form.addButton(options) method. Maintain the report links and criteria in that customization.

Dependencies and Customization Limits

The supplied asset report uses the transaction-line asset reference. An asset's customer or project relationship alone does not supply that association.

Fixed numbered parameters depend on the selected report's filter definition. Changing filters, operators, or ordering requires the mapping to be reviewed again. FSM does not perform that review or automatically repair a shortcut. If a report requires a value absent from the standard view's template context, changing criterion numbers alone does not supply it.

Use a separately owned report copy for independently maintained reporting. For Asset financial reporting, establish whether its financial layout is shared and copy the layout separately when independent changes are needed. See Saved Reports Page and Making a Layout Editable in the Financial Report Builder.

Effect of Updates on Reports and Configuration

The saved report, its financial layout, and FSM configuration are separate objects:

  • Reports and layouts: a bundle update can change the supplied report and layout objects. Changes to supplied originals can be overwritten. Selecting a report through configuration does not protect those objects. An update to a bundled financial statement can update its report and layout without reverting a changed layout assignment. See Bundle Update Reference and Bundling NetSuite Financial Statements.

  • Report IDs and link overrides: these are saved in the active custom configuration and loaded over FSM defaults. Changing the standard defaults does not itself rewrite that saved JSON. A targeted configuration update can replace or delete a stored value if that value matches the update's expected current value. Replacing a parent object or the complete configuration can also remove settings. See Automatic Configuration Updates.

Profitability settings do not necessarily need to be entered again after an update. Retention depends on the configuration update or replacement applied. Preserved report IDs and links must still be compatible with the current report definition.

When preparing a replacement configuration, preserve the selected accounting report IDs and any associated per-view report and url overrides together. A retained previous configuration can provide these fragments. Verify that the mappings remain compatible with the current reports. See Updating and Validating FSM Configuration for shared revision and activation guidance.

When Changes Apply

The settings are read when the originating record form loads. Changing a report selection or link does not change the selected report's saved definition or accounting transactions.

Related Topics

General Notices