A few weeks after an EA implementation the questions start arriving. Why does the rationalization chart hide the applications we retired before go-live? Why are our costs in dollars when we are a euro company? Why do the incident indicators show zero for an application that had an outage last week? Why has the discovered technology table got thousands of rows and most of them are fonts?
None of those are defects. Each one is a system property, set once during configuration or never set at all. The scheduled jobs decide when EA data gets built. These properties decide what gets built and how it is shown.
Fourteen properties matter. Six you set deliberately, in a particular order, and eight come installed with EA Workspace and only need to be known about. Names are exact so you can search for them under All > System Properties. All need admin unless stated.
All fourteen at a glance
| Property | What it controls | Default | Set it or know it |
|---|---|---|---|
| sn_apm_tpm.softwareDiscoveryModelProductFilterForTPM | Which software discovery models TPM ingests | None, everything is ingested | Set, before the first TPM run |
| com.snc.incident.refresh_impacted.include_affected_cis | Fills Impacted Services on an incident from its Affected CIs | Off | Set to true |
| com.snc.incident.populate_business_application | Fills the Business Application related list on incidents | Off | Set to true |
| com.snc.change_request.populate_business_application | Fills the Business Application related list on change requests | Off | Set to true |
| glide.currency2.default_reference_currency | Currency for cost-based indicator values in list view | USD | Set, for any non-US customer |
| sn_apm_ws.appRationalizationMaximumBubbles | Maximum bubbles on the Application Rationalization chart | 500 | Set, once you know your assessed count. Needs sn_apm.apm_admin |
| sn_apm_tpm.configurationItemsWithSoftwareInstalls | Which CMDB tables TPM scans for software installs | Computer and similar, Docker Container, Serverless Hardware | Set only if applications run on other classes |
| use_business_capability_custom_hierarchy_id | Whether the capability Hierarchy ID is editable | False | Set only when importing a reference model with its own numbering |
| sn_apm_ws.business_application_default_filter | Which applications appear on the rationalization chart and list | Retired and End of Life hidden | Know it |
| sn_apm_ws.app_rationalization_default_filter | Default filter on Application Rationalization | As installed | Know it |
| sn_apm_ws.app_indicator_scoring_profile | Scoring profile used when an application has none of its own | As installed | Know it |
| sn_apm_ws.batch_size_ba_lifecycle_gantt | Batch size for loading lifecycle data onto the Gantt chart | As installed | Know it, tune if the Gantt is slow |
| sn_apm_ws.certificationPolicyTables | Which tables’ certification policies appear in EA Workspace | As installed | Know it |
| sn_apm_ws.record_mention_config | How other records can be tagged inside architectural artifacts | As installed | Know it |
| sn_apm.endRangeOfTPMLifecycle | Time span that gives the last TRM lifecycle phase an end date | As installed | Know it. Search on “endRange”, the capitalisation varies |
The six you set, and why the order matters
sn_apm_tpm.softwareDiscoveryModelProductFilterForTPM goes first, before the TPM discovery job ever runs. Technology Portfolio Management scans the software installs on the servers under each application and matches them to software discovery models. Left unfiltered it matches everything: fonts, drivers, agents, every utility a build engineer ever installed. All of it becomes a discovered technology against the application, the risk calculations run against junk, and the architects stop trusting the view. The property is an encoded query. Build it like any list filter: open cmdb_sam_sw_install.list, filter down to the licensable products you care about, right-click the breadcrumb and choose Copy query. Paste that as the value, then run the discovery job. Cleaning thousands of rows out afterwards is a far worse afternoon than filtering up front.
The three incident and change properties go next, because the Performance Analytics collection jobs are useless without them. EA scores an application partly on how many incidents and changes it generates, and those indicators read the Business Application related list on incident and change records. These three properties are what populate that list. All three have to be true. If any is false the indicators collect nothing, the collection jobs run clean, and every application scores as perfectly stable. When incident and change indicators are zero across the board, check these before you check the jobs.
glide.currency2.default_reference_currency before anyone reads a cost figure. It defaults to USD, and a portfolio cost in the wrong currency is the kind of thing that ends a demo early.
sn_apm_ws.appRationalizationMaximumBubbles once you know how many applications you are assessing. Assess 600 with the default of 500 and 100 of them are simply not on the chart, with no warning. Raise it above the count, or filter the chart so it never needs to.
sn_apm_tpm.configurationItemsWithSoftwareInstalls only if applications run on classes outside the default list, a mainframe class or a custom appliance table. TPM will not look there until you add the table. Select the Technology Portfolio Management scope before you edit, otherwise the change saves to the wrong scope and never applies.
use_business_capability_custom_hierarchy_id only when importing a reference model that brings its own capability numbering. Once true, the Hierarchy ID field is editable and the platform stops checking for conflicts. Two capabilities with the same ID will not be flagged. Validation is yours.
The eight you look up
You rarely change these. When a stakeholder asks one of the questions at the top, this is where the answer is. The rationalization chart hides retired applications because of business_application_default_filter. ServiceNow suggests involving your account service manager before changing it, which in practice means change it in sub-production and know why. The lifecycle Gantt is slow because of batch_size_ba_lifecycle_gantt. Technology lifecycle views run off the edge of the chart because endRangeOfTPMLifecycle gives the last phase its end date and nothing else does. The rest control default filters, the default scoring profile, which tables show certification policies, and how records can be tagged inside artifacts.
Where to look first
When something in EA Workspace looks wrong, check in this order: the TPM filter, the three incident and change properties, the currency, the bubble limit, then the eight above. Only after that open the scheduled jobs, which the previous article covers.


