The different fields

It's common to use the ServiceNow CMDB to denote the kind of environment that a CI is in. I've found most companies will have entire separate networks for production and non-production systems.
"This server hosts the DEV instance of Sharepoint."
"This database is used for training."
"That router is in the non-production network."

In the ServiceNow CMDB, there are 3 fields you would think will allow you to do this:

  • Used for
  • Classification
  • Environment

The fields in a list

They look the same but which one should you use?

Use the Environment field

Meme drake
ServiceNow recommends the "Environment" field to denote a CI's environment.

This is further reinforced by by the Service Builder, which wants you to use the "Environment" field.

New Application Service form wants to use Environment

ServiceNow describes the Used for field as a legacy field. I wouldn't recommend using it.

This was confirmed in this SN Community discussion by Scott Lemm, the Product Owner for the ServiceNow CMDB.

  • used_for is a legacy attribute in ServiceNow CMDB and not present on all CMDB classes
  • The used_for label is quite possibly the worst label in all of ServiceNow CMDB. The industry refers to this data as "Environment". Due to the poor name, many customers didn't know this attribute existed. The #1 custom created attribute in ServiceNow CMDB is "Environment".
  • The oob Environment attribute is our effort to right a wrong by providing an object that is available on all CMDB classes and labeled appropriately as "Environment".
    Eventually, after customers have migrated from used_for to environment, we will deprecate the legacy used_for object. We recommend you utilize "Environment" in your operations.
    https://www.servicenow.com/community/common-service-data-model-forum/application-service-class-quot-used-for-quot-vs-quot-environment/m-p/333595

This is also confirmed by other sources:

The Classification field is intended to be used in combination with the Environment field.
E.g. Environment = "Development", Classification = "Disaster recovery"

However, it's possible for combination to not make sense, such as:
Environment = "Development", Classification = "Testing"
Use your common sense with these fields.

Adding more environment choices

What if you want to have more types of environment choices in the "Environment" field? Just add them!

First, consider copying from the existing choices on the Used for field. Chances are good that the environment name you are after is one of those out-of-the-box choices.

Choices for the Used For field

Otherwise, there shouldn't be an technical issues caused by creating additional environment choices.

Normal development rules apply: don't create choices whimsically, make sure it fits your own Data Governance.

Comparing the fields

- Environment Used for Classification
Table Available on any CI class Only available on CI classes that extend from:
  • Application [cmdb_ci_appl]
  • Server [cmdb_ci_server]
  • Service [cmdb_ci_service]
Only available on CI classes that extend from Server [cmdb_ci_server]
Choices
  • Production
  • Development
  • Test
  • Production
  • Staging
  • QA
  • Test
  • Development
  • Demonstration
  • Training
  • Disaster recovery
  • Critical Infrastructure
  • Development
  • Development Test
  • Disaster Recovery
  • Production
  • UAT
Introduced Orlando CSDM release Pre-Orlando release New York CSDM release
Description by ServiceNow (not documented) Used for: Business service supported by the server, such as production, staging, or quality assurance (QA). This attribute uses the Used for choice list field from the Service [cmdb_ci_service] table.
Link
Classification: Type of server, such as production, development, disaster recovery, or user acceptance testing (UAT).
Link
Support Supported Legacy, use not recommended Supported