Dictionary Overrides

What is ServiceNow Dictionary Override?  When and how do you use a dictionary override?

These questions will be answered in this article and you will be better informed on the dictionary override functionality.  

Note that some developers never use dictionary overrides much, as they primarily work in the Service Catalog.  Others work with ServiceNow PPM or GRC, which use dictionary overrides more frequently.  However if you don't know what a dictionary override is, it is worth the read.

What is ServiceNow Dictionary Override?

The ServiceNow wiki has some great documentation on Dictionary Overrides:

ServiceNow Wiki - Dictionary Override

Dictionary Overrides provide the ability to override several aspects of a field in extended tables:

For example, if a field is defined on the Task [task] table, a dictionary override can change its default value on the Incident [incident] table without affecting how it appears on Task [task] or on Change [change].

Dictionary Overrides are defined on a related list which appears on the form for fields whose table is extended.

When and How is ServiceNow Dictionary used?

What the ServiceNow Wiki on dictionary doesn't give is Examples.  Let's review some examples to better explain the Dictionary override:

Example 1: Override Reference Qualifer

In an OOB ServiceNow instance, the task.assigned_to field has a reference qualifier of roles=itil.  What this means is that when you go to pick an assigned to on a Incident, Change, Problem, etc, it will only show users that have the itil role.

However, for Problems, you only want to assign problems to a new role you made called problem_coordinator.

In this situation, if you just adjust the task.assigned_to reference qualifier, you will adjust it for all the related tables, so you must use a reference qualifier instead.

Task.assigned_to Dictionary Entry (Click to view)

Example Problem.assigned_to Reference Qualifier (Click to view)

Example 2: Override Default value

The dictionary entry for task.contact_type is phone.  However on Change Management, you have decided you want to use the Contact Type field, but you don't want it to default to phone.

In that case, you would want to create a dictionary override, because you don't want it to affect incident management.

Task.contact_type Dictionary Entry (Click to view)

change_request.contact_type Dictionary Override for Default value (Click to view)

Example 3: Override Display value

Display values are used in Reference fields and other places in ServiceNow to quickly "describe a record" with a field instead of the sys_id it stores.

The task table uses task.number as the display value.  However on a change request if you want to use Short Description as the display value you can use a dictionary override for that.

Change_request.short_description display value override (Click to view)

Display value override (Click to view)