Fourteen toggle switches, six set and eight to know, for ServiceNow Enterprise Architecture system properties

The System Properties That Shape ServiceNow Enterprise Architecture

Why the rationalization chart hides retired applications, why costs show in dollars, why incident indicators read zero, and why the discovered technology table is full of fonts. Every one is a system property, explained by the question it answers.

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

PropertyWhat it controlsDefaultSet it or know it
sn_apm_tpm.softwareDiscoveryModelProductFilterForTPMWhich software discovery models TPM ingestsNone, everything is ingestedSet, before the first TPM run
com.snc.incident.refresh_impacted.include_affected_cisFills Impacted Services on an incident from its Affected CIsOffSet to true
com.snc.incident.populate_business_applicationFills the Business Application related list on incidentsOffSet to true
com.snc.change_request.populate_business_applicationFills the Business Application related list on change requestsOffSet to true
glide.currency2.default_reference_currencyCurrency for cost-based indicator values in list viewUSDSet, for any non-US customer
sn_apm_ws.appRationalizationMaximumBubblesMaximum bubbles on the Application Rationalization chart500Set, once you know your assessed count. Needs sn_apm.apm_admin
sn_apm_tpm.configurationItemsWithSoftwareInstallsWhich CMDB tables TPM scans for software installsComputer and similar, Docker Container, Serverless HardwareSet only if applications run on other classes
use_business_capability_custom_hierarchy_idWhether the capability Hierarchy ID is editableFalseSet only when importing a reference model with its own numbering
sn_apm_ws.business_application_default_filterWhich applications appear on the rationalization chart and listRetired and End of Life hiddenKnow it
sn_apm_ws.app_rationalization_default_filterDefault filter on Application RationalizationAs installedKnow it
sn_apm_ws.app_indicator_scoring_profileScoring profile used when an application has none of its ownAs installedKnow it
sn_apm_ws.batch_size_ba_lifecycle_ganttBatch size for loading lifecycle data onto the Gantt chartAs installedKnow it, tune if the Gantt is slow
sn_apm_ws.certificationPolicyTablesWhich tables’ certification policies appear in EA WorkspaceAs installedKnow it
sn_apm_ws.record_mention_configHow other records can be tagged inside architectural artifactsAs installedKnow it
sn_apm.endRangeOfTPMLifecycleTime span that gives the last TRM lifecycle phase an end dateAs installedKnow 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.

Previous Post
The numbers one to nine in a row, the nine highlighted, for the Enterprise Architecture scheduled job run order

The Scheduled Jobs Behind ServiceNow Enterprise Architecture, and the Order to Run Them