Вы находитесь на странице: 1из 196

SN - System Admin

Blueprint Study Guide

PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information.
PDF generated at: Tue, 30 Jul 2013 16:47:08 PST

Domain 1
Using Forms
Overview
A form displays information from one record in a data table. The specific information depends on the type of record
displayed. Users can view and edit records in forms. Administrators can customize forms.
The form interface contains the following elements:
Title bar: appears at the top of the form and provides navigational and functional controls.
Fields: display individual items of data for the record.
Sections: group fields under a header. Users may collapse or display sections using tabs.
Related links: provide access to additional functions based on record type and system setup. Administrators can
add related links to forms using UI actions.
Related lists: display records in another table that have a relationship to the current record. To learn more, see
Using Related Lists.
Embedded lists: allow for editing related lists without having to navigate away from the form. Changes are
saved when the form is saved.
Response time indicator ( ): appears at the bottom right of some forms to indicate the processing time
required to display the form.

Title Bar
The title bar displays the title of the
form (table) and provides the following
controls:
Back ( ): navigates to the
previously viewed page without
saving changes.
Form context menu: appears when
a user points to the arrow ( )
beside the form title or right-clicks
the title bar.
Submit or Update: saves changes
and returns to the previously viewed
page.
Forms

Related actions: provides standard


actions in the form title bar for

some tables, such as Close Incident in incident.


Attachments (
Attachments.

): allows users to view and add attachments to the record. To learn more, see Uploading

Previous ( ) and Next ( ): open the previous and next record on the list from which the record was accessed.
These controls save changes to the record.

Using Forms
Toggle tabs (

2
): toggles between tabbed and sequential arrangements of related lists and form sections.

Form title bar

Form Context Menu


The form context menu provides controls based on the table and user access
rights. Administrators can customize some of the options available on a
context menu using the Context Menu plugin and UI actions.
Available options include:
Save: saves changes without leaving form view.
Related actions: provides standard actions in the form context menu for
some tables, such as Create Change in incident.
Insert and Insert and Stay: save the data to a new record instead of
updating the current record. To learn more, see Inserting a Record.
Personalize and Templates: provide administrative functions, including
personalizing forms and creating templates.
Export: exports data to PDF (or XML, administrators only). To learn
more, see Exporting Data.
View: changes fields to a predefined layout. Note that switching views
submits the form, which saves all changes. Administrators can customize
views.

Form context menu

Assign Label: adds a link to the record under a custom application label
(new or existing). Labels provide quick access to frequently referenced or urgent information. To learn more, see
Creating and Using Labels.
Copy URL: copies to the clipboard the URL for the form view of the record. Follow browser instructions if
browser security measures restrict this function.
Copy sys_id (administrators only): copies to the clipboard the sys_id of the record. Follow browser instructions if
browser security measures restrict this function.
Show XML (administrators only): displays record data in XML format.
History (administrators only): displays audit history for the record (must be enabled for the table).
Reload Form: reloads information from the database to refresh the form view.

Using Forms

Fields
A field represents an individual item of data on a record. Users can view and modify field data on a form. Fields may
be configured as:

Mandatory: requires a value before users can save the record.


Read-only: prevents the current user from editing the field on the form.
Standard data entry: accepts values such as numbers, text, choice lists, dates and times, and check boxes.
Specialized data entry: accepts one or more of the following:
Journal: permits users to enter text. When the record is saved, journal field entries are listed under the input
field, marked with the user name and timestamp (example, Additional comments on an incident).
Suggestion: provides the option to include predefined text in a text or journal field.
Reference: lets users select a record on another table (example, in an incident, the Caller field references the
User table). Reference fields define a relationship between two tables. When a reference field is populated,
point to the reference icon. ( ) beside the field to preview the referenced record, or click the reference icon
to navigate to the record.
Watch List: allows multiple users to subscribe to notifications of a task. A watch list is a common type of
glide list, which is a field that allows users to select multiple records from another table.
HTML: allows users to use HTML to define how field content renders (example, knowledge article text).
HTML fields can include media elements, such as images, Web links, and videos.
Wiki: allows users to use Wiki markup to define how field content renders.
Image: permits users to upload an image file (type of .gif, .jpg or .jpeg, or .png only).
Video: permits users to upload a video file.
Normalized: alters raw input to match standardized values for improved searching and reporting.
Currency or Price: accepts monetary information.
Translated HTML or Translated Text: are similar to standard HTML or text fields, but can be translated if
the Internationalization plugin is active.
Duration: indicates a length of time. The field automatically converts hours to days for values greater than 24
hours. For example, 30 hours is converted to 1 day and 6 hours.
URL: accepts a URL (web) address and creates an active hyperlink.

See Introduction to Fields for more detailed information on fields.

Field Status Indicator


A field status indicator is a colored bar that
may appear to the left of form elements.
Administrators can customize the colors of
field status indicators. These indicators
convey the following statuses:
Mandatory: required field that is empty.
The user must enter a value to save the
form. Default color is red.
Populated Mandatory: required field
for which a value has already been saved
in the database. Default color is light red.
If the user enters a new value, the field
status indicator changes to Modified (default green).

Field Status Indicators

Modified: contains data that has not been saved. Default color is green.

Using Forms

Read-only: user cannot edit on the form. Default color is orange.

Sections
Sections provide headers for a group of related fields.
To expand or collapse a section, click expand ( ) or collapse ( ) in the section header.
To toggle between tabbed and sequential arrangements of sections, click Toggle tabs ( ).

Embedded Lists
Some forms may show related lists as embedded. Changes to embedded lists are saved when the form is saved (see
Editing in Forms).
Use these controls to work with an embedded list:

To expand or collapse an embedded list, click expand ( ) or collapse ( ) in the list header.
To add a new row, double-click Insert a new row...
To edit a row, double-click in an empty area of the field. See Using the List Editor.
To delete a row, click Delete ( ) beside the row.
New rows are removed immediately.
Existing rows are designated for deletion when the record is saved. To clear this designation, click Delete
again.

Navigating to a Form
Users can navigate to a blank form to
create a new record, or to an existing
record form.
To open a blank form for a new record,
use one of these methods:
Open a list (example, Incident for a
new incident), and click New.
Embedded list

In the navigation filter, type the


table name followed by .form.

Append the table name and .do to the instance web address. For example, the following URL opens a new
Incident form:
https://<instance name>.service-now.com/incident.do
To open an existing record in form view, use one of these methods:
Locate the record in a list and click the record number or the reference icon. To learn more, see Navigating
Applications and Using Record Lists.
Append the table name, followed by .do?sysparm_query=number= and the record number to the instance web
address. For example, the following URL opens incident INC0000007:
https://<instance name>.service-now.com/incident.do?sysparm_query=number=INC0000007
Additional record parameters can be applied with a URL. To learn more, see Navigating by URL.

Using Forms

Editing in Forms
To edit a record in form view:
1. Navigate to the form.
2. Enter appropriate data.
3. Save the record using one of these methods:
Click Submit or Update to save changes and return to the previously viewed page.
Right-click the title bar and select Save to save changes without leaving form view.
Right-click the title bar and select Insert or Insert and Stay to save the data to a new record instead of
updating the current record (see Inserting a Record).
4. If the record has been changed by another user since you opened it, an alert may appear. Click OK to confirm
your changes.
This alert is generated by the Simultaneous Update Alert client script.

Alert

Note: Depending on system setup, the data entered in a form may affect other options on the form or change its appearance. For
example, if you select a status of Closed for an incident, a Close Notes field may appear and may be required to save the record.
Administrators can create custom form effects in a variety of ways, including UI policies and client scripts.

Inserting a Record
Insert provides a method for creating multiple similar items, such as email notifications, users, groups, or business
rules. Administrators may also enable the Insert function for task records.
To insert a record:
1. Open a similar item.
2. Edit the item and give it a new Name.
3. Click one of the following:
Insert saves the item as a new record and returns to the previously viewed page.
Insert and Stay saves and views the new record.

Using Forms

Cancelling Changes
To cancel changes to a form, navigate away
from the form view without saving the
record. If a message appears, click Leave
this Page to confirm cancellation.

Insert

Note: Administrators can disable the confirmation message by setting the glide.ui.dirty_form_support property to
false.

Confirm cancellation

Personalizing Forms

Personalizing Forms
Overview
Administrators and users with the form_admin role can customize the layout for any form view.

Personalizing Forms
To personalize a form:
1. Right-click the form header and select Personalize > Form Layout.

2. Using the slushbucket, select the fields and the order in which you wish them to appear.
Available items that appear in green followed by a plus (+) sign represent related tables. To access fields on
these tables, use dot-walking.
3. Click Save.

Personalizing Forms

Configuring Insert for


Task Records
The "Save", "Insert", and "Insert and
Stay" options are disabled by default
for task records (e.g., Incidents,
Change Requests).
To configure these options for task
records:
1. Navigate to System Properties >
UI Properties.
2. Locate the property Allow the use
of the "Insert" and "Insert and
Stay" options on task derived
tables. (glide.ui.task.insert )
Personalize form

3. Select the check box to enable or


clear the check box to disable

(default) the options for tasks.

Adding a Related List


Related lists display records in another
table that have a relationship with the
current record. Administrators can
configure related lists to appear on forms (and in hierarchical lists, with List v2 plugin).
UI Properties

To add a related list to a form:


1. Open the form.
2. Right-click the header and select "'Personalize"' > Related Lists.
3. Using the slushbucket, select the related list to display on the form.
Related lists appear at the bottom of the form.

Related lists

Personalizing Forms

Customer Updates Indicator


The customer updates indicator ( ) may
appear on the header of forms that have
customer updates. Customer updates are
changes that are tracked by update sets, such
as scripts, service catalog items, and other
configuration tables. For the full list, see
List of Tracked Customizations.
Clicking the customer updates indicator
opens the update set records for the item.
Customer Update Indicator

Configuration

Administrators can configure this indicator to appear for all or for specific administrators using the
owned_by_indicator.form user preference.
To configure the preference, navigate to User Administration > User Preferences.
To enable it for all administrators, ensure the owned_by_indicator.form preference is set to true.
To enable it for an individual administrator only, leave the owned_by_indicator.form preference set to false
(default) and then create a new user preference with the following values:
Name: owned_by_indicator.form
User: <administrator for which to enable the preference>
Value: true

Tutorials
The following video demonstrates
personalizing forms. For more
e-Learning videos, see Tutorials.
Personalizing Forms Video [1]
User Preference

References
[1] http:/ / link. videoplatform. limelight. com/ media/ ?mediaId=7e485a42e4a349c899c36a6077fe0e30& width=480& height=321&
playerForm=d286c3052c63466aa61efcdb7ef1ef1f

Personalizing Lists

Personalizing Lists
Overview
ServiceNow lets users with the personalize_list role (including administrators) personalize the columns in any list to
show only the desired information. You can add or remove fields (columns) from a list or change the order in which
the fields appear in the list. You can hide controls and define access conditions by role to existing controls. To
personalize a list, bring up the list, right-click the list's header bar, and select Personalize. This opens a cascading
menu with the following list options:
List Layout
List Calculations
List Control
Note: Personalizing a list in this way modifies the list for all users. To make changes to a list that are only visible to you, see
Creating Personal Lists.

10

Personalizing Lists

11

Enhancements
Calgary
The Calgary release adds this enhancement:
A new list control option allows administrators to disable the link to the record from the first column in list view.

List Layout
To change the default columns for a list view:
1. Open the list in the view you wish to modify.
For example, to modify the incident mobile view, navigate to Incident > Open and select View > Mobile
from the context menu.
2. Right-click the header and select Personalize > List Layout.
3. Use the slushbucket to select the columns and the order in which you wish them to appear.
The first non-reference field automatically links to the form view of the record. For this reason, consider using
the record number as the first column in the list layout.
Note: If you personalize a list and then change the default columns for the list view, you do not see the changes until you reset your
personal list to column defaults.

Adding Extended Fields


to Base Table Lists
Administrators can configure whether
fields on extended tables can be added
to base table lists. For example, when
this feature is enabled, you can view
and filter on the caller_id field (from
the incident table) on a Task table list
(such as the My Work list).
1. Navigate to System Properties >
UI Properties.

Personalize List Layout

2. Locate the property Allow base


table lists (task, cmdb_ci, etc.) to
include extended table fields
(incident_state, os_version, etc.),
and allow filtering on extended
table fields
(glide.ui.list.allow_extended_fields).

3. Select the check box to enable extended fields on base table lists. Clear the check box to disable the feature.
4. Click Save.

Personalizing Lists

12

List Calculations
In a record list, right-click in a numeric field you want to evaluate, and then select Personalize > List Calculations.
A dialog box appears, enabling you to view minimum and maximum calculations for that field for all the records in
the list. To see both the minimum and maximum calculations displayed, select both check boxes. The totals appear in
the column you selected, below the last record in the list.

List Control
A number of elements in a list can be personalized, such as control buttons and filters. Right-click in the header bar
of the list and select Personalize > List Control from the pop-up menu. The following List Control form appears:

This form provides the following fields:


Field

Description

Name

View the name of the primary file for the list or related list. This is automatically set by the system.

Related List

View the name of the table and field that define the related list. This is automatically set by the system.

Label

Enter the label you would like for this list. Allows an admin to customize the label for a related list or list. If not supplied the
default plural label for the file is used. For example, the label for the incident file would be Incidents.

Omit new
button

Select the check box to prevent the New button from displaying on this list. Clear this check box if you want the New button to
appear on this form, or if you want to control the New button with roles (New roles field).

Omit edit
button

Select the check box to prevent the Edit button from displaying on this list. Clear this check box if you want the Edit button to
appear on this form, or if you want to control the Edit button with roles (New roles field). Note that the Edit button does not apply
to all lists.

Omit if empty

Select the check box to omit the Related List from the form entirely (no header) if there are no entries for the Related List.

Omit columns
if empty

Select the check box for a top-level list to omit the column headers AND filters/breadcrumbs for an empty list.

Omit filters

Select the check box to display filters or breadcrumbs for this list. Clear this check box if you always want filters or breadcrumbs
or if you want to control filters/breadcrumbs with roles (Filter roles field).

Personalizing Lists

Omit links

13

Select the check box if you want links for fields that reference other files in this list. Leave this button unchecked if you always
want links to be generated or if you want to control the use of links with roles (Link roles field).

Omit
Select the check box to disable the link to the record from the first column in list view. Users can still click the reference icon to
drill-down link access the record (Calgary release).
Hierarchical
lists

Inserts a hierarchical list into a record list. This enables a user to view the contents of a record's related lists without leaving the
record list form.

List edit type

Controls the ability of a user to edit values directly in individual cells in a list. The options are:

Save immediately (cell edit mode): enables cell editing. The entire row is saved as soon as the user enters a new value.
Save data by rows: enables cell editing. The row is saved only when the user navigates away from the row or clicks the Save (
) button. This mode allows the user to modify multiple values before saving a record.
Disable list editing: prevents users from editing cells in the list.

List edit tag

Enter an arbitrary string of letters or numbers to create a unique tag that is sent to a reference qualifier as the script variable
listEditRefQualTag.

List edit insert


row

Select the check box to enable or clear the check box to disable the ability for a user to create new records in list view. When it is
enabled, an empty row appears at the bottom of the list.

Insert a new row (record)


New roles

Specify the user roles required to have the New button appear on this list. Click the padlock icons to open the role selection lists.

Filter roles

Specify the user roles required to have the filter appear in the list. Click the padlock icons to open the role selection lists.

Edit roles

Specify the user roles required to have the Edit button appear in the list. Click the padlock icons to open the role selection lists.

Link roles

Specify the user roles required to have links generated for fields that reference other files. Click the padlock icons to open the role
selection lists.

Example
In the following example, we will personalize a list of related incidents embedded in a problem record to suit
specific business needs.

In this example, we will configure the label to say Child Incidents rather than just Incidents, and remove the New
button to prevent users from creating new incidents from this form.
1.
2.
3.
4.

Right-click in the header bar of the embedded Incidents list and select Personalize > List Control.
In the List Control form change the Label field in the List Control record to Child Incidents.
Check the Omit new button check box.
Click Submit to save your changes and return to the previous record, in this case, the problem record.

Personalizing Lists

14

In the problem record, the label for the embedded incident list has changed, and the New button is no longer
available.

Advanced Control
There are also script fields that can be personalized and placed on the List Control form so that you can write a script
to indicate if the various elements (links, filters, new and edit buttons, empty) should be present or not. These scripts
can react to the record that is being displayed. For related list controls the parent record is identified by the global
variable 'parent'. For primary lists, there is no parent record.
The following example script could be used on the 'Affected CIs' related list to only show the 'Edit' button if the
parent task was active. This script would need to be placed in the 'Edit condition' script field when personalizing the
list control for the related list.
var answer;
if(parent.active == true){
//Do not remove the 'Edit' button
answer=false;
}
else{
//Remove the 'Edit' button
answer=true;
}
answer;

Personalizing Lists

Personalize List UI Actions


The Personalize List UI Action opens the slushbucket interface in the list view from System UI > Views or System
UI > Lists. The UI Action table entry is displayed below, followed by a text section. Copy and paste this into a
record to create this action on your system, if it does not already exist. This UI Action allows for the customization
of lists using the normal slushbucket interface, rather than the direct manipulation of records.

var url = "slushbucket.do?sysparm_form=list&sysparm_list=" +


current.name + "&sysparm_view=" + current.view.name;
url += "&sysparm_collection=" + current.parent +
"&sysparm_collection_relationship=" + current.relationship;
url += "&sysparm_referring_url=sys_ui_view.do?sys_id=" +
current.view.toString();
action.setRedirectURL(url);

15

Creating New Fields

Creating New Fields


Overview
Administrators can easily add new fields to the database dictionary to track new information. After creating new
fields, administrators can add the fields to forms and lists by personalizing forms.

Creating New Fields


To add a new field to a table:
1. Navigate to the form view of the table.
2. Right-click the form and select Personalize > Form Layout.
3. In the Create new field section, enter the name of the field and select the field type.

4. Click Add.
5. Use the slushbucket to place the field in the desired location on the form.
6. Click Save.
The field now appears on the form in the correct location.

16

Creating New Fields

17

Making a Field Mandatory


Fields can be marked as mandatory, meaning they must contain a value. Mandatory fields are marked with a
vertical red bar before the label. A mandatory field that is prepopulated by the platform with default data, such as a
value from a client script, does not display the red indicator. If you delete this value from the field, however, the red
indicator appears.

To mark a field as mandatory:


1. Right-click the field's label in the form and select Personalize Dictionary.
2. In the Dictionary form, select the Mandatory check box.
3. Click Update.
The next time the form is opened, a red bar appears next to the field label, indicating that a value is mandatory.
Note: Mandatory fields are global. The field is marked as mandatory everywhere it appears in a form.

Creating New Fields

Mandatory Reference Fields


A form can be saved with an empty mandatory field, if that field is a reference field (derived from another table) and
if the parent field is also blank. However, if the mandatory reference field shows a value from the parent field, then
the form cannot be saved if this value is deleted. It is important to note that if the value in the referenced field is
changed, the value for that field is changed everywhere it appears.

Specifying a Default Value


A Default Value populates a value in a field when a new record is created. Default values can be specified as either
a constant, or generated through script.
To set a default value on a field:
1. Right-click the field's label in the form and select Personalize Dictionary.
2. Enter the default value in the default_value field.
To set a constant value, simply type it into the "default_value" text box field. To assign a default value using a more
complex formula, use JavaScript to output a default value.
Note: The default value should be the underlying value that would be present in the field, not the label. For example,
in a choice list field, use the value of the choice as the default value, not the choice's name.

Constant default values


Here is an example that sets a default value for the Priority field.

Javascript Default Values


To view out-of-box examples of JavaScript default values, navigate to System Definition > Dictionary with the
following filter:

18

Creating New Fields

Example: Set a Default Value for assignment_group


The following example sets a default value in a sys_user_group Reference field by getting the ID from the name of a
group:
javascript:GetIDValue('sys_user_group', 'Development');

Example: Set a default value for assigned_to if user has the itil role
This example shows a default value, defined in script, that sets the assigned_to value equal to the current user id if
the user has a role of itil:

Example: Set a default value for a duration field


To set a default value for a duration field, use the following in the Default value field of the duration field's
dictionary entry:
javascript:current.duration_field.setDisplayValue('3 04:30:14');
Typically, it is best not to hard-code a particular date-time because if the system date-time format changes, the value
will be invalid.

Making a Field Dependent


A Choice or Reference field can be declared dependent on another field on the same table. Dependent fields limit
their available values based on the value in the dependent field.
If a required dependency does not function as expected, as might happen if there is a many-to-many relationship
between the fields, consider using reference qualifiers to accomplish the goal.
To make a field dependent:
1. Right-click the field's label in the form and select Personalize Dictionary.
2. In the dependent field, enter the name of the field that this field will depend on.
3. Click "Update" when done.

19

Creating New Fields


In the example below, the "subcategory" field is made dependent on "category". The "category" value in a form will
determine which options appear for the "subcategory" field.

Note: Fields cannot be made dependent on derived fields.

Requiring Unique Values for a Field


It is possible to specify that a field's values be unique. When this is done, the system will not let two records have the
same value for that field. By default, fields are created without this constraint.
A field can only require unique values if there are not already duplicate values in the database for that field.
To enforce uniqueness on a field:
1. Right-click the field's label in the form and select Personalize Dictionary.
2. Personalize the Form to add the Unique field if it does not already appear.
3. Check the Unique field checkbox.

4. Update.

20

Creating a Custom Application

21

Creating a Custom Application


Overview
Administrators can use the app creator to develop custom applications that meet business needs. After defining the
business requirements and the data model, create the application:
1. Create an application record in the Applications [sys_app] table.
2. Select it as the current application, and begin developing the application.
3. Use the app creator to help manage development. As necessary, you can:
Resolve conflicts between applications under development.
Move application files manually between applications.
Delete or restore configuration records.
When the application is developed and tested, you are ready to transfer it to another instance. See Publishing
Applications.

Creating Applications
1. Navigate to System Applications > Create Application.
2. Define the application by completing the fields on the form (see table).
3. Click Submit. The application record remains open.
The application record is saved and now appears on the Applications list.
An application file record for the application record is created and assigned to the application. The application
file appears in the All Files related list.
The application is selected as the current application in the Application picker.
Field

Description

Name

Defines the name that identifies the application record.

Active

Select the check box to indicate that the application is in use (default). Clear the check box to deactivate the application.

Short
description

Provides an explanation of what this application does. When you publish the application for transfer to another instance, this field is
the default description for the update set. See Publishing Applications.

Menu

Specifies the primary menu, which is the default application menu for any modules created in this application (see Administering
Application Menus and Modules). It is populated automatically based on the application name.
[Optional] Edit the new menu name or select an existing menu.
Note:

User role

If the menu name does not match an existing menu, a new menu is created when you save changes to the application record.
You can modify this field for an existing application to create a new menu or select another existing menu. The default user role
is applied to the new menu. The original menu record is not changed.

Specifies the default user role required for the primary menu and to access any tables created in this application (see Creating
Security Rules for Tables). It is populated automatically based on the application name.
[Optional] Edit the new role name or select an existing role.
Note:

If the user role does not match an existing role, a new role is created when you save changes to the application record.
You can modify this field for an existing application to create a new role or select another existing role. The role is applied to
the primary menu. The original role is not changed.

Creating a Custom Application

22

Defining Tables for


Applications
Build the data model you designed for
the application by creating custom
tables.
1. Navigate to System Applications
> Applications.
2. Open the application record.
3. Scroll to the Tables related list.
4. [Optional] Create a table by editing
the list.
When you create a table with the
list editor, a new list module is
Application record
automatically created for it. The
module appears in the application navigator under the primary menu for the application. If the primary menu is
not defined, then a new menu is created, named with the table label.
5. Open a table record or click New to create a new table.
6. Define the table and columns by completing the form. See Creating a Custom Table.
Note: If you create a new table with the same name as a deleted table, the new table is associated with the application of the deleted
table instead of the current application. To avoid conflicts, use a unique name for the new table. You can still use the same label.

Activating and Deactivating Applications


To activate an application:
1. Navigate to System Applications > Applications.
2. Click All in the breadcrumbs to remove the default active = true filter condition and display both active and
inactive applications.
3. Open the application record.
4. Select the Active check box and click Update.
All associated menus, modules, and ACLs are set as active.
You can selectively deactivate application menus, modules, and ACLs after you activate the application.
To deactivate an application:
1. Navigate to System Applications > Applications.
2. Open the application record.
3. Clear the Active check box and click Update.
All associated menus, modules, and ACLs are set as inactive.
Users cannot access the application tables from the application navigator or by navigating directly to the table.
You can create new menus, modules, and ACLs, but you cannot set them as active.

Creating a Custom Application

23

Working on Applications
Select the current application to associate configuration records with it as you develop.
1. Select the desired application in the Application picker. When you create a new application, it is automatically
selected as the current application.
2. Create a new or make a change to
an existing configuration record.

Applications picker

For a new record, the application


file is automatically assigned to
the selected application. If a
conflict is detected, a notification

appears.
For an existing record, the application file is not assigned or moved to the selected application. If the record is
not already associated with the selected application, a conflict notification appears.
3. If a conflict notification appears, resolve the conflict.

Resolving Conflicts
A conflict may exist when application files that normally belong together are not assigned to the same application. A
notification appears when the application file you changed or its parent is not assigned to the application selected in
the Application picker. For example, a conflict is detected in this scenario.
Table A is associated with Application A.
Application B is selected in the Application picker.
You create a new field on Table A.
To resolve conflicts, choose an action for each conflict that is detected.
To move the application files to the recommended application, click Move Files.
To leave the application files where they are, click Leave Alone.

Moving Application Files


to Applications Manually
The most efficient way to build
applications is to select an application
in the Application picker so that new
Resolve each conflict
application files are automatically
assigned to it and you are notified of
potential conflicts. However, you can manually assign application files to applications. Use this method to assign
unchanged application files to an application or to move application files from one application to another.
You can move an application file with all of its descendant records (recommended). For example, when you move a
UI policy, also move its UI policy actions. Similarly, when you move a table, also move all the fields and labels on
the table.
1. Navigate to the record in a list or form view (for example, System Definition > UI Policies).
2. For a list, select the check box beside each appropriate row, and then select Move to Application in the Actions
choice list.
3. For a form, right-click the header and select Move To Application.
4. Select an application from the list. The list defaults to the last application you selected.

Creating a Custom Application

24
5. Click Add.
The application file and all of its
descendant records are moved to
the selected application.
You can also move a single application
file without affecting its descendants.
Use this method with caution; if you
move an application file without its
descendants, items may be missing
when you publish the application.

Move application files to an application

1. Navigate to the record.

2. Right-click the header and select Show Application File.


3. In the Application field, select the desired application.
4. Click Update.

Creating Update Sets


Use this shortcut to create an empty
update set while you are working on an
application. You can use the update set
to capture any changes; it is not
specific to the application. To create an
update set for the application, see
Publishing Applications.
1. Open the application record.
2. Click the Create New Update Set
related link.
Update the application file record

3. Enter a name for the update set.

4. [Optional] Make this the current update set by selecting the check box.
5. Click Create.

Deleting Applications
By default, deleting an application also
deletes all the records that are
associated with the application, such as
tables, business rules, and menus.
Alternatively, you can deactivate an
application that is no longer in use.
Create a new update set

To delete an application:
1. [Recommended] Back up the

application in an update set. See Publishing Applications.


2. Navigate to System Applications > Applications.

Creating a Custom Application

25

3. Open the application record.


4. Click Delete. A confirmation dialog box indicates the number of application files in the application to be deleted.
5. [Optional] Click Show files to
cancel deletion and navigate to a list
of the application files in the
application.
6. [Optional] Clear the check box to
delete only the application record
and not the rest of the records.
7. Click OK.
Confirm deletion

8. Enter delete and click OK.

The application record


deleted. If you selected the check box in step 6, all records associated with the application files are deleted.

is

To view a list of application files


for deleted records, click the
Show Deleted Files link. You
may be able to restore the
deleted records.

Restoring Deleted
Records

Application is deleted

In some cases, you can restore deleted


configuration records. Limitations
include:

You cannot restore individual fields


or field labels. You can only restore a deleted table, which restores any fields and labels that were deleted with it.
You can only restore records where both the update and version records exist. For example, you cannot restore a
record if you also deleted the update record (see Deleting Update Entries).
To restore an application that you just deleted:
1. On the deleted application confirmation page, click the Show Deleted Files link.
2. Select all of the rows.

Creating a Custom Application

26
3. Select Restore Deleted Record in the action
choice list.
The application and all associated records are
restored.
To restore an older application:
1. Navigate to System Applications > Deleted
Application Files.
2. Locate the application file by filtering on Source
Table is Application and looking for the
application name.
3. Select the check box beside the application file.
4. Select Restore Deleted Record in the action
choice list.

Restore all application records

5. Filter the list of deleted application files again on


Application is <the application name>.
6. Select all of the records.

7. Select Restore Deleted Record in the action choice list.


To restore a table:
1. Navigate to System Applications > Deleted Application Files.
2. Locate the table application file by filtering on Source Table is Table and looking for the table name.
3. Select the check box beside the table application file.
4. Select Restore Deleted Record in the action choice list.
The table and all the fields and labels that were deleted with it are restored.

Administering Application Menus and Modules

Administering Application Menus and Modules


Overview
An application menu is a group of modules, or pages, that provide related information and functionality in a
ServiceNow instance. Administrators can define application menus to group modules under one name in the
application navigator. Administrators can also restrict access to application and module listings.
Note: Users may refer to an application menu as simply an application (see Navigating Applications). For administrators, an
application is a packaged set of configuration records that provide a business solution (see App Creator), while an application menu
is a way to make application features accessible to users.

Enhancements
Calgary
The following enhancements have been added as of the Calgary release:
The Application [sys_app_application] table is now called the Application Menu table. Administrators now
navigate to System Definition > Application Menus to modify the application and module listings in the
application navigator.
A new table, called Application [sys_app], now represents packaged solutions for delivering services and
managing business processes. See App Creator.
A new menu category, called Custom Applications, is now available. It is the default category for new
application menus.
A new field, called Default order, is now available for menu categories. If you create an application menu
without specifying an order, the default order of the category is used to determine the relative position in the
application navigator.

Enabling and Disabling Application Menus or Modules


To enable (show) or disable (hide) an application menu or module in the application navigator:
1. Navigate to System Definition > Application Menus. In versions prior to Calgary, navigate to System
Definition > Applications.
2. If you are enabling an application menu, click All in the breadcrumbs to display both active and inactive
application menus (remove the default active = true filter condition).
3. Click the desired title. The application menu record opens and the Modules related list shows the modules that
appear in the application navigator.
4. Enable or disable the application menu and modules as desired:
To enable or disable a specific module in the application, double-click the Active field beside the module
name in the Modules related list. Set Active to true (show) or false (hide).
To enable or disable multiple modules at the same time, select the check boxes next to the module names, and
select Change active state from the Actions choice list (Aspen release).
To enable or disable the entire application menu (for example, Incident or Service Catalog), select or clear the
Active check box.
To restrict the application menu to specific roles, use the Roles field.
5. Click Update.

27

Administering Application Menus and Modules

28

When you change application menus or modules, the application navigator automatically refreshes to display
the changes.

Modifying Menu Categories


Menu categories allow administrators to change the appearance of application menu labels with CSS styles. Use
styles to make certain application menus stand out.
To define a menu category:
1. Navigate to System Definition > Menu Categories. In versions prior to Calgary, navigate to System Definition
> Application Categories.
2. Click New or open an existing menu category.
3. Define CSS styles in the Style field (for example, border-color, text color, and background-color).
4. [Optional] Enter a Default order. If you create an application without specifying an order, the default order of
the category is used to determine the relative position in the application navigator. (Calgary release)
To add an application menu to a category, use one of the following methods:
In the category record, add the application menu in the Application Menus related list (the Applications related
list in versions prior to Calgary).
In the application menu record, enter the category in the Category field.
These menu categories are available by default:

Administration: light blue background

border-color: #a7cded; background-color: #e3f3ff;


Custom Applications: light background with blue border (Calgary release)

border: 1px solid #96bcdc; background-color: #FBFBFB;


Label: dark blue background

border-color: blue; background-color: rgb(102, 153, 204); color: white


Maint: dark blue background

border-color: blue; background-color: rgb(102, 153, 204); color: white


Social IT: dark blue background
border-color: blue; background-color: rgb(102, 153, 204); color: white

Administering Application Menus and Modules

29

Creating Application Menus


1. Navigate to System Definition > Application Menus. In versions prior to Calgary, navigate to System
Definition > Applications.
2. Click New.
3. Define the application menu by completing the fields on the form (see table).
4. Click Submit.
5. Create modules to appear in the
application menu.
Only application menus that
contain modules appear in the
application navigator.

Application Menu record

Field

Description

Title

Defines the display name of the application menu.

Name

Specifies an internal name to uniquely identify application menus that have the same title.

Hint

Defines the text that appears in a tooltip when a user points to this application menu.

Active

Select the check box to activate the application menu. Only active application menus appear in the application navigator.

Order

Defines the relative position of the application menu in the application navigator. If you do not specify an order, the default order of
the menu category is used.

Category

Specifies the menu category, which defines the navigation menu style (default value is Custom Applications).

Roles

Specifies user roles to limit who can view the application menu. Otherwise, all users can view the application menu when it is active.

Device
type

Defines whether the application is intended for mobile devices. See Mobile Application Configuration.

Description Provides a more detailed explanation of what this application does.

Creating Modules
1. Open the application menu record by using one of the following methods.
Navigate to System Definition > Application Menus and select the application menu from the list. In
versions prior to Calgary, navigate to System Definition > Applications.
Right-click the application label in the application navigator and select Edit Application.
2. Scroll down to the Modules related list and click New.
3. Define the module by completing the fields on the form (see table).
4. Click Submit.

Administering Application Menus and Modules

Field

30

Description

Title

Defines the module name. Choose a title that clearly identifies the module.

Order

Specifies the order in which the modules appear under the application.

Application
menu

Specifies the name of the application menu under which the module appears. Defaults to the application menu you opened in
step 1.

Hint

Defines the tool tip that appears when a user points to the module name.

Active

Defines whether the module appears in the application navigator.

Image

Specifies an icon to appear next to the module title in the navigator.

Link type

Specifies what type of link this module opens. You must specify additional information based on the link type. See Module Link
Types.

Roles

Restricts module access to the specified roles. If this field is left blank, the module is visible to all users who have access to the
application menu.

Arguments

Defines additional information that is required for specific link types. For example, the URL for a link type of URL (from
Arguments:).

Module Link Types


The Link type field specifies what type of link the module opens.
Field

Description

Content Page

Displays the content page you select in the Content page reference field. See Creating a Content Page.

Homepage

Displays the homepage you select in the Homepage reference field.

HTML (from
Arguments:)

Places HTML in the application navigator. This is best used for more complicated links, where a flat URL is not customizable
enough.
Note: You must enter a value for the Arguments field.

List Filter

Displays an unpopulated list view for the table you select in the Table field. Allows users to specify a filter without loading the list
first. Use the Filter field to define the default filter for the list. Use the View name field to specify a view.

List of Records Displays the list view for the table you select in the Table field. Use the Filter field to define the default filter for the list. Use the
View name field to specify a view.
Map Page

Displays the map page you select in the Map page reference field. See Using Map Pages.

Administering Application Menus and Modules

New Record

Displays a form for creating a new record in the table you select in the Table field. Use the View name field to specify a view.

Run a Report

Runs the saved report you select in the Report field.

Script (from
Arguments:)

Runs a script, as defined in the Arguments field.

Search Screen

Link that displays a blank form for searching records in the table. Use the View name field to specify a view.

Note: You must enter a value for the Arguments field.

Note:

Use the parameter &sysparm_result_view=view_name to define the view the results are rendered in.
All searches use a starts with query to search for matching text. Other query types are not supported in search screens.

Separator

Creates a division between modules. Enter a name in the Arguments field to add a section name that users can collapse or expand.

Single Record

Displays a form for a single record on the table. Use the View name field to specify a view.

Survey

Links to the survey you select in the Survey reference field. Use the Survey overwrite check box to determine whether the survey
can be taken multiple times. See Making a Survey Public.

Timeline Page

Displays the timeline page you select in the Timeline Page reference field. See Timeline Pages.

URL (from
Arguments:)

Opens any URL, as defined in the Arguments field.


[Optional] Use the Window name field to define a link that opens in a new window.
Note:

For internal links, always use a relative link such as ./catalog_home.do?sysparm_view=catalog_default or


catalog_home.do?sysparm_view=catalog_default. Do not use an absolute link to a ServiceNow instance. It creates problems
when you move an update set from a development instance to a production instance because the URL still references the
development instance.
You must enter a value for the Arguments field.

Additional Queries
For List of Records link types, you can append additional queries to the module to further define the filter for the
returned list. For example, to filter active incidents that are assigned to the currently logged in user, use the following
argument query:
active=true^assigned_to=javascript:gs.user_id()

Example: URL Module that Opens in New Window


To configure a module to open an external URL in a new browser window:
1.
2.
3.
4.
5.

If the Window name field is not displayed, personalize the form and add this field.
Select URL (from Arguments) from the Link type list.
Add the complete web address to the Arguments field.
Select an icon for the module in the Image field.
Enter _blank in the Window name field.
If this field is empty, the page opens in the content frame (default behavior).

31

Administering Application Menus and Modules

32

Example: URL Module that Opens a List with a Custom Filter


To create a module that opens a list with a custom filter, sort order, and grouping, use a link type of URL (from
Arguments) and create a link to a custom URL. Use this shortcut to determine the arguments for your custom URL:
1. Navigate to the list by URL, without loading it in the standard interface. For example, navigate to the Incident list
by entering:
<base URL>/incident_list.do
2. Apply the desired filter, sort order, and grouping.
3. Copy the resulting URL from the browser address bar. For example, if you apply a filter of active=true with an
ascending sort on priority, a descending sort on opened_on, and grouped by assignment_group, the address bar
reads:

incident_list.do?sysparm_query=active=true^EQ^ORDERBYpriority^ORDERBYDESCopened_at^GROUPBYassign
Note: Do not copy the base URL (the http://instance_name.service-now.com/ portion). Always use a
relative link to prevent problems when you move an update set from a development instance to a production
instance.
4. Define a module with a Link type of URL (from Arguments).
5. Paste the custom URL from step 3 into the Arguments field.
6. Click Submit.
The module now opens the custom list in the content frame.

Creating a Custom Table

33

Creating a Custom Table


Overview
Administrators can create custom tables as well as applications menus, modules, and security rules that allow users
to work with data in those tables. Creating database tables is a core part of creating an application (see Creating a
Custom Application).
Creating a custom table changed in the Calgary release. If you are using an older version, see the previous version
information.

Creating Tables
1.
2.
3.
4.

Navigate to System Definition > Tables.


Click New.
Define the table by completing the fields on the form (see table).
Use the Table Columns embedded list to add columns to the table.

5. Click Submit to create the table, or click Cancel to close the Table form without creating a new table.
Field

Description

Label

Enter a unique label for the table. The label appears on list and form views for the table. Updating the Label field also updates
the label record in the language file (for the current language). See Field Labels.

Name

Populated automatically based on the label. The table name is automatically prefixed with u_ to indicate that it is a custom table.
For example, if you enter Marketing Event as the table label, the table name defaults to u_marketing_event.
[Optional] Edit the table name. You can use lowercase, alphanumeric ASCII characters and underscores (_) in the table name.
You cannot modify the automatic prefix.

Extensible

Select the check box to allow other tables to extend this table. Clear the check box to prevent the creation of additional child
tables; existing child tables remain unchanged.

Extends Table

[Optional] Select the table to extend. Extending a base table incorporates all of the fields of the original table and creates new
fields for the new table. Only tables that are marked as extensible appear in this list.
This option is available only when you are creating a table.

Create module

[Optional] Select the check box and then complete the Add module to menu field to create a list module in the application
menu.
This option is available only when you are creating a table.

Add module to
menu

Select an existing menu or select Create new and enter a new menu name. This option is available only when the Create
module check box is selected.

Create access
controls

[Optional] Select the check box and then complete the User role field to create basic security rules for the table.

User role

Enter a new name or select an existing user role. This option is available only when the Create access controls check box is
selected.

Auto-number

Select the check box and then define the number format to add an auto-numbered field to the table. The check box is available
only when a number format does not exist for the table. Otherwise, you can edit the existing number format.

Creating a Custom Table

34

Adding Columns
You can add database columns when
creating a new table or when editing an
existing table. To learn more about
creating fields and for versions prior to
Calgary, see Creating New Fields.
To add columns from the table record:
1. Navigate to System Definition >
Tables.
2. Create a new table or open an
existing table record.
3. In the Table Columns embedded
list, double-click Insert a new row.

Requests table

4. Define the column by completing the fields in the row (see table).
[Existing tables only] You can create a column with advanced settings by right-clicking the form header and
selecting Create Advanced Column. See Modifying Dictionary Entries.
5. Repeat steps 3 4 for each column being added.
To delete a field, click the red X beside the row. This option is available only for custom fields.
Changes to embedded lists are saved when the form is saved. See Using Embedded Lists.
The Table Columns embedded list provides list filtering, searching, and sorting in addition to standard
embedded list functions.
6. Click Submit or Update.
7. [Optional] To customize the form layout for the new fields, open the table record, click the Show New Record
Form related link, and personalize the form.
Fields are automatically added to the default form view. If a default form view already exists, new fields are
added at the end of the first section.
8. [Optional] To customize the list layout for the new fields, open the table record, click the Show Records in List
related link, and personalize the list layout.
Field

Description

Column
label

Defines a unique label for the column. The label appears on list headers and form fields for the column.

Type

[Mandatory] Defines the field type for the column. See Introduction to Fields. To preserve existing data, only change fields between
the same basic type (for example, Choice and String). A warning appears if a change to a custom field will result in data loss. For a
base system field, you cannot make a change that will result in data loss.

Reference

Makes the field into a reference field.

Updating the Column label field also updates the label in the language file (for the current language). See Field Labels.
When you create a new column, the column name is populated automatically based on the label. The name is automatically
prefixed with u_ to indicate that it is custom. For example, if you enter Activity Description as the column label, the column name
defaults to u_activity_description.

Note: Dynamic reference creation is enabled for this field. So, if you enter a table name that does not match an existing table, a new
table is created when you save changes to the current table record. If the current table has a module in the application navigator, then a
module for the newly created table is automatically created in the same application menu.

Creating a Custom Table

Max
length

35

[String fields only] Limits the length of the field. A length of under 254 appears as a single-line text field. Anything 255 characters or
over appears as a multi-line text box.
Note:

You can change this value only for a String field. Changes for any other type of field are ignored.
Users on an Oracle instance cannot increase the maximum length of a string field to anything greater than 4000 through the
application UI as this requires the CLOB datatype in Oracle. To increase beyond this size, log an incident with Technical Support
to request the change.
To prevent data from being lost, only decrease the length of a string field when you are developing a new application and not when
a field contains data. A warning appears if a change to a custom field will result in data loss. For a base system field, you cannot
make a change that will result in data loss.

Default
value

Specifies the default value of the field for any new record. Ensure that this value uses the correct field type. For example, an integer
field can use a default value of 2 but cannot use a default value of two. These values can be overridden with dictionary overrides.

Display

Indicates that this field is the display value for reference fields (appears on records that reference this table).
Note: This option does not control whether or not this field is displayed on lists or forms.

Global Default Fields


When you create a custom table, these required fields are added automatically. You cannot delete or modify these
fields.
Field

Type

Description

Class [sys_class_name]

System Class
Name

If the table is extensible, a string field that indicates which child table the record is on.

Created [sys_created_on]

Date/Time

A time-stamp field automatically populated by the system at the moment of insert.

Created by
[sys_created_by]

String

A string field automatically populated with the display name of the user who inserted the record.

Sys_id [sys_id]

Sys ID

The unique record identifier for the record, automatically populated by the system.

Updates [sys_mod_count] Integer

A numeric field that counts the number of updates for this record since record creation.

Updated by
[sys_updated_by]

String

A string field automatically populated with the display name of the user who most recently updated
the record.

Updated [sys_updated]

Date/Time

A time-stamp field automatically populated by the system every time the record is updated. Stores
the most recent update date and time.

Note: If the new table extends a table, it inherits all the fields on the parent table.

Creating a Custom Table

36

Creating Modules for Tables


Modules allow users to access the table from the application navigator. To learn more about modules and for
versions prior to Calgary, see Creating Modules.
When you are creating a table, you can quickly create a default module.
1. Select the Create module check box. The Add module to menu field appears.
2. Select an existing menu or select Create new and enter a new menu name.
If you are working on an application, the primary menu is selected by default.
If you are not working on an application, Create new is selected and the menu name is the table label by
default.
3. When you save the table record, a module is automatically created with the following values:

Table: current table


Title: plural of the table label
Link type: List of Records
Application menu: selected menu
To create additional modules (for
example, a filtered list view):
1. Navigate to System Definition >
Tables and open the Table form.
2. Scroll down to the Table Modules
related list, and click New.

Create a default module

3. Define the module by completing


the Module form. See Creating a
Module.
The Table field defaults to the

current table and the Link type defaults to List of Records.


You must enter the Application menu and Title.

Adding Record Numbering


You can quickly create a number field and manage the number format for records on the table. To learn about
additional numbering options and for versions prior to Calgary, see Managing Record Numbering.
To add record numbering to a table that does not have a number format defined:
1. Navigate to System Definition > Tables.
2. Create a new table or open an existing table record.
3. Select the Auto-number check box. The number format fields appear on the form.
Note: The check box is available only when a number format has not yet been defined. You can define only
one number format per table.

Creating a Custom Table

37
4. [Optional] Modify the number
format by updating the fields (see
table).
5. Click Submit.

The number format is


automatically created for the
table.
Add record numbering
If an auto-numbered field does
not already exist, a new field is automatically created on the table with the following values:
Label: Number
Name: u_number
Default value: javascript:getNextObjNumberPadded();
Field

Description

Prefix

Enter a prefix for every number in the table (for example, INC for Incident). The default value is the first three letters of the table
label.

Number

Enter the base number for this table (default value is 1000). Record numbers are automatically incremented, and the next number is
maintained in the Counter [sys_number_counter] table.
If you set the base number to a value higher than the current counter, the next record number uses the new base number. Otherwise
the next record number uses the current counter. The counter does not reset to a base number lower than itself.

Number of
digits

Enter the minimum number of digits to use after the prefix (default value is 7).

Leading zeros are added to auto-numbers, if necessary (for example, INC0001001 contains three leading zeros).
The number of digits can exceed the minimum length (for example, if Number of digits is 2 and more than 99 records are created
on the table, the numbers continue past TAB100).

Warning: Changing this field may update all number values for existing records on a table. Take care when changing this field on a
production instance. See Renumbering Records.

Note: To change the default values for new number formats, change the Default value field on the system dictionary record for the
Number or Number of digits field.

Removing Record Numbering


To remove record numbering from a table, delete the number format and the auto-numbered field.
1.
2.
3.
4.
5.
6.

Navigate to System Definition > Number Maintenance.


Click a table name to open the number record for that table.
Click Delete.
Navigate to System Definition > Tables and open the Table form.
Click the red X beside the auto-numbered field.
Click Update.

Creating a Custom Table

38

Creating Security Rules for Tables


You can quickly create basic security rules for a table. To learn more about security rules and for versions prior to
Calgary, see Using Access Control Rules.
To create security rules from the table record:
1.
2.
3.
4.

Navigate to System Definition > Tables.


Create a new table or open an existing table record.
Select the Create access controls check box. The User role field appears on the form.
Enter a new name or select an existing user role.
If you are working on an application or a table that is part of an application, the default user role for the
application is automatically populated. Otherwise, the field is automatically populated based on the table label.
5. Click Submit or Update.

Add table security

If the user role does not match an


existing role, a new role is
created.
Security rules are created that
grant the user role full access to
the tableread, write, create,
and delete.

6. [Optional] Scroll down to the Access Controls related list to create new or modify existing access control list
(ACL) rules. See Using Access Control Rules.
Note: You can repeat the procedure to grant full access to a different role. The new role is created and the original role is replaced
for every ACL on the table. The original role is not changed for ACLs on other tables or objects, and any other roles or scripts on the
ACLs are not changed.

Extending a Table
You can create a new table that stands alone or that extends a base table. Extending a base table incorporates all of
the fields of the original table and creates new fields for the new table. This inheritance is used to create
subcategories of data. Examples include the Incident, Problem, and Change tables, which are all subcategories of the
Task table.
To extend a table, select the table to extend in the Extends Table field on the table record. This option is available
only when you are creating a table.
Note: For a table that extends another table, the Table Columns embedded list shows columns on both the child table and the table it
extends. To improve sorting and filtering, consider personalizing the list to add the Table field. You cannot change the table for a
field. You can only add columns to the current table.

Creating a Custom Table

39
To make a table extensible:
1. Navigate to System Definition >
Tables.
2. Click the table that you want to
extend.
3. Select the Extensible check box.
The table is now available in the
Extends Table field.

Personalize Table Columns list to sort fields by Incident or Task

Note: You cannot extend system tables, such as sys_audit, or database view tables.

Example: Extending the Task Table


To create a table of task records, similar to the Incident, Problem, or Change table, create a new table that extends
the Task table. To allow workflows to operate on the table:
1. Navigate to System Definition > Tables and open the new table record.
2. Click the Show Dictionary Record related link.
3. Add the following to the attribute:
hasWorkflow

The new table now has fields from the Task table and supports workflows.

Example: Creating a New CMDB Class


Each CMDB class is its own table, so creating new classes requires creating new tables. Creating a custom table
changed in the Calgary release. If you are using an older version, see the previous version information.
To create a new class (such as Laptops or Thin Clients):
1. Create a new table (see following table for specific values).
2. [Optional] If you want other CMDB classes to extend the new one, select the Extensible check box. You can also
select this field after the table is created.
3. Use the Table Columns embedded list to add any class-specific columns. For example, the following image
shows a way to create a new CMDB class for laptops.

Creating a Custom Table

40
4. Click Submit.
5. Add any related lists. Refer to the
existing classes (such as
Workstations) for examples.
6. Position the new module in the
correct location in the application
navigator.
In the Laptops example, the
new class belongs next to the
Workstations module, under the
Base Items heading.

Example: CMDB class for laptops

1. Right-click Configuration in
the application navigator and select Edit Application.
2. Locate the Workstations module in the list and note the value in the Order column.
3. Open the new Laptops module and give it an order value one number greater or less than the order number
of the Workstations module.
4. Click Update.
Field

Description

Label

Enter the name of the new class (such as Laptops or Thin Clients).

Name

Preface the name of the table with u_cmdb_ci_ to make it similar to the other CMDB classes (for example, u_cmdb_ci_laptop).

Extensible

Select the check box to allow other tables to extend this table.

Extends Table

Select the table representing the class under which this new class should be placed. For example, if the new class is Laptops,
which is a subclass of Computers, extend the cmdb_ci_computer table. If the new class is a top-level class, extend the cmdb_ci
table.

Add module to Select the check box and then select the Configuration application to create a list module for the new class in the same application
menu
with the other classes.

Click the plus to expand previous version information


Each CMDB class is its own table, so creating new classes requires creating new tables. To create a new class (such as Laptops or Thin Clients),
create a new table with the following specifics:

Creating a Custom Table

Field

Description

Label

Enter the name of the new class (such as Laptops or Thin Clients).

Table name

Preface the name of the table with u_cmdb_ci_ to make it similar to the other CMDB classes (for example,
u_cmdb_ci_laptop).

Extends base
table

Select the table representing the class under which this new class should be placed. For example, if the new class is Laptops,
which is a subclass of Computers, extend the cmdb_ci_computer table. If the new class is a top-level class, extend the cmdb_ci
table.

Create new
application

Clear this check box.

Create new
module

Select the check box and then select the Configuration application to create a list module for the new class in the same
application with the other classes.

The completed Table creator form looks like the following image.

Click Do it! to create the table. The new module appears in the Configuration application.
Personalize the form to add any new fields and then add any related lists. Refer to the existing classes for examples.
Position the new module in the correct location in the application navigator.

Versions Prior to the Calgary Release


Click the plus to expand previous version information

Legacy Creating a Table


To create a custom table:
1. Navigate to System Definition > Tables & Columns and scroll to the bottom of the page to view the table
creator.
2. Enter a Label for the table.
3. [Optional] Edit the Table name.
4. To extend an existing table, select the table in the Extends base table field.
5. [Optional] Edit the application and module settings.
For example, the settings in this screenshot would create a table called my_new_table with a label of My
Table and a new application called My New Application with a module in that new application.

41

Creating a Custom Table

42
6. Click Do it! to create the new table in the database with the
ServiceNow required fields (see Global Default Fields).
7. You can add new fields to the table by personalizing the form.

Create a custom table

Legacy Extending a Table


You can create a new table that stands alone or that extends a base table. Extending a base table incorporates all of
the fields of the original table and creates new fields for the new table. This inheritance is used to create
subcategories of data. Examples include the Incident, Problem, and Change tables, which are all subcategories of the
Task table.
To extend a table that is already extended, use the Extends base table field.
To extend a table that is not already extended (Berlin release):
1. Add the property glide.table.allow_new_extension with a value of true.
2. Navigate to System Definition > Tables & Columns.
3. Select the table that you want to extend and click the Allow Extension button.
The table is now available in the Extends base table field.
Note:

You cannot extend system tables (such as sys_audit) or database view tables.
For versions prior to the Berlin release, contact Technical Support to extend a table that is not already extended.

Introduction to Assets and Configuration


Overview
The Configuration Management Database (CMDB) is a series of tables containing all the assets and business
services controlled by a company and their configurations. This includes computers and devices on the network,
software contracts and licenses, business services, and more. The IT desk can use the CDMB to understand better
their network users' equipment, and the relationships between them. The CMDB can also be referenced by other
processes within the system.
The CMDB can be populated using the Discovery product. Discovery searches the network for all attached
computers and devices, then populates the CMDB with information on each computer/device's configuration,
provisioning, and current status. Discovery also reports on any software which is running, and the TCP connections
between computer systems, thereby establishing their relationships.
The Asset Portfolio, Asset Contracts, and Configuration applications contain modules which display different
tables within the CMDB. Each application is designed with a specific purpose in mind.
The two Asset applications have an Asset Management focus, providing a perspective on the CMDB from a business
perspective. The Asset Portfolio application links to CMDB of all assets, hardware, software, assets in stock, as well
as records for manufacturers and vendors. The Asset Contracts application contains information about contracts,
including leases, service contracts, purchase orders, warranties, and software licenses. The Configuration
application has a focus on operation.

Introduction to Assets and Configuration

CMDB
CMDB contains two major record types:
Configuration Item (CI): Any computer, device, or piece of software in the CMDB. A CI's record will include
all of the relevant data, such as manufacturer, vendor, location, etc. Configuration items can be created or
maintained either using tables, lists, and forms within the platform, or using Discovery.
Relation Type: A defined relationship between a CI and either another CI, a user, or a group. Relation types are
defined twice, once from the perspective of the child CI and once from the parent CI's perspective. For instance, a
parent CI that powers a child CI uses relation type Powers::Is Powered By. Example relation types include In
Rack::Rack contains, Log Reviewed by::Reviews logs for, or Backup done by::Does backups for. CMDB
relationships can be established using Discovery, or using the tables, lists, and forms within the platform. The
CMDB form has a specific Related Items toolbar optimized for modifying relationships.

CI Relations Formatter Overview


The default CI form includes the CI relations formatter. This element contains the list of related CIs and a toolbar
with controls for viewing the relationships between the current CI and related CIs. Note that the BSM Map provides
a more complete view of CI relationships. Configure the controls in this formatter with two properties that restrict
varying aspects of the view. These two properties are available with the Aspen release. For additional information
about formatters, see Creating a Formatter.

43

Introduction to Assets and Configuration

CI Relationship Builder
Click the CI relationship builder icon (
) to display the Define Relationships page. Used to define CI relationships
manually, this page is a sophisticated version of the standard ServiceNow slushbucket. For more information, see
Defining CI Relationships.

Flat Layout
Click the flat layout icon (

) to group the related CIs by relationship.

44

Introduction to Assets and Configuration

Tree Layout
Click the tree layout icon (

) to group the related CIs in a hierarchical tree.

BSM Map
Click the BSM icon (
) to launch the BSM map in another window or tab. The map starts with a focused item and
displays a set number of levels below and above that item in the heirarchy. Using a right click, the user can focus on
any item within the map and redraw the map using that item as the focus. A right click can also highlight the
hierarchy of any particular item in the map.

Related Lists of CI Components


Related Lists in CI records display additional components contained by that CI, such as disk drives on a server and
the rules that control the behavior of a network router. When Discovery runs, the Related List is populated with the
components that Discovery finds running on the CI. The CI record might show different lists from scan to scan,
depending on whether or not Discovery found the component. By default, the Related Lists only display those
components that are associated with that CI in the CMDB that have been discovered by the last scan. CI components
that are discovered but cannot be matched to the CI in the CMDB are added to the CMDB and appear in the Related
List. Components that are recorded in the CMDB but are not discovered in a scan, are deemed absent and do not
appear in the list. There are two types of components that appear in the Related List: those that are CIs themselves
(such as hard disks), and those that are not (serial numbers and rules). The default filter condition in the breadcrumbs
for components that are CIs is Status != Absent. The filter condition for components that are not CIs is
Absent=false.
In the following example, the snc-tc01 router has several Related Lists affected by these filter conditions, including
routing rules, disk drives, interfaces, and network adapters. Only those components found during the last Discovery
appear in these Related Lists.

45

Introduction to Assets and Configuration

Adding Existing Gauges to a Homepage


Overview
A gauge is visible on a ServiceNow homepage and can contain up-to-the-minute information about current status of
records that exists on ServiceNow tables. Gauges can be created by the ServiceNow administrator or by users of
ServiceNow with the 'gauge_maker' role. Gauges can be created from reports or from lists of records on a table and
can be sorted and filtered as needed.

Adding Existing Gauges to a Homepage


You can browse the available gauges you have available by following these steps from your homepage.
1. Navigate to a homepage.
2.
3.
4.
5.

Click the
text in upper left corner of the homepage.
Select the 'Gauges' choice in the far left column of the Sections pop-up box.
Select the table you want to display a gauge from in the middle cloumn of the Sections pop-up box.
Select the gauge you want to display on the homepage in the far right column of the Sections pop-up box.

6. Click the
button in the Sections pop-up box to add the gauge to upper left hand column of the homepage.
7. To add additional gauges, repeat steps 3 though 6.
8. Click the

button in the top right corner of the Sections pop-up box.

Arranging Gauges on a Homepage


Gauges can be arranged on custom homepages so you can personalize your ServiceNow experience. Don't worry,
because you can always get back to the pre-defined homepages that your system administrator created for you.
Moving Gauges - Click, hold and drag the top gray bar of a gauge to move it another area.
Removing Gauges - Click the
button to remove the gauge.
Using the 4 Areas - When you drag a gauge around the homepage you can pull it into the 'Top' or 'Bottom' areas,
which will use 100% of the width, or the 'Right' or 'Left' areas, which use 50% of the width.
Automatic Refresh - You can set your gauges to automatically refresh at given intervals by using the drop down
selector at the upper right corner.

46

Adding Existing Gauges to a Homepage

47

Creating a New Gauge from a Report


You can create any report as a gauge, making it possible to add that report to a homepage. (You need the
gauge_maker role in order to do this.)
Note that list reports do not preserve user list view preferences such as the option to automatically expand grouped
records.
1. Open or create a report that you want to access from a gauge.
2. Click the

button.

3. To add the new gauge to your homepage, without having to add it later, click the

button.

Creating a New Gauge from a List of Records


In order to create lists of records (for example 'My Work', 'My Groups Work' and 'Unassigned Incidents') as a gauge,
you will need to have administrator rights.
1. Navigate to System UI > Gauges
2. Click the
button.
3. Name your gauge something unique.
4. Set 'Type' as 'List'.
5. Set the 'Table' field.
6. Set 'Aggregate' as 'Count'.
7. Define any Queries that you want to set.
Other fields on the form are not used when creating a list gauge.
8. Click the
9. Save your work.

button.

URL Gauge variable height workaround


URL gauges can be used to display a different web page or website within a gauge that can be added to a homepage.
Currently URL gauges are set with a fixed height, meaning that you may have to scroll to see the entire web page in
the gauge. URL gauge widths are controlled by the positioning of the gauge on a particular homepage. URL gauge
height is not something that can be modified currently. One workaround is to set up an iFrame in a UI page as
follows...
1) Create a UI page. The UI page name has to start with 'render_gadget_' (eg. 'render_gadget_iFrameSNC'). Add the
following to the 'HTML' field, replacing the 'src' with whatever URL you want to have in the iFrame. The height you
specify has to be a static value and you have to use CSS style tags for this to work.
<iframe id="myframe" src="http://www.service-now.com" scrolling="yes" style="height:450px; width:100%"></iframe>

2) Modify a widget or create a new widget (System UI -> Widgets) so that you can select your UI page from the
'Add content' selector on a homepage. The important thing is that your widget script references your UI page. The
name of the widget will be the name of the category in the 'Add content' selector. The 'Renderer type' field on the
widget record should be 'JavaScript'. This script can be used if you want to create a new widget.
function sections() {
return {'ServiceNow' : { 'type' : 'iFrameSNC' }};
}
function render() {
var type = renderer.getPreferences().get("type");

Adding Existing Gauges to a Homepage


var gf = new GlideForm(renderer.getGC(), "render_gadget_" + type, 0);
gf.setDirect(true);
gf.setRenderProperties(renderer.getRenderProperties());
return gf.getRenderedPage();
}
function getEditLink() {
return "sys_ui_page.do?sysparm_query=name=render_gadget_" +
renderer.getPreferences().get("type");
}
3) Now go to any homepage and add the new content.

48

49

Domain 2
Creating Users and Associating to a Group
Overview
When you add users to ServiceNow, make sure that each user is associated with a group. Consider which fields are
mandatory. Full, complete user profiles are the most useful. Use a unique user ID when creating new profiles or
updating existing profiles. If all logs are updated by the admin user, it becomes difficult to track what was
configured and by whom. Consider creating an ITIL-based role for each administrator for these types of tasks. To
import large numbers of users at once, consider using import sets.

Enhancements
Berlin
The following enhancements have been added as of the Berlin release:
The User ID field [sys_user.user_name] requires unique values. You cannot create a new user whose User ID
duplicates an existing user.

Creating a User
1.
2.
3.
4.

Navigate to User Administration > Users.


Click New.
Enter the user's information (see table).
Click Submit.
The new user record appears at the top of the list.
Field

Input Value

User ID

Create a unique identifier for this user's ServiceNow login user name. Typical examples of user IDs are cwitherspoon and
charlie.witherspoon. You cannot create a new user whose User ID duplicates an existing user (Berlin release). If you do import
duplicates from an update set, the more recently created names takes the duplicate User ID.

First name

Enter the user's full first name.

Last name

Enter the user's last name.

Title

Enter a title or job description, or select one from the list.

Department

Select the user's department from the list.

Password

Assign a password to the user. This password can be permanent or temporary.

Password
needs reset

Select this check box to require the user to change the password during the first login.

Locked out

Select this check box to lock the user out of the instance and terminate all their active sessions.

Creating Users and Associating to a Group

Active

Select this check box to make this user active. Only the administrator sees inactive user in:

Email

Enter the user's email address.


To enter a non-standard email address that does not pass field validation, you must deactivate the validation script first.
1.
2.
3.
4.
5.

Notification

Lists of users
The selection list on reference fields (magnifying glass icon)
The auto-complete list that appears when you type into a reference field

Navigate to System Definition > Validation Scripts.


Select the email record.
Clear the Active check box and save the change.
Complete the user profile, including the email address, and update or submit the record.
Reactivate the email validation script.

Select the type of notification to send to this user. The default is Email. If you select None, the user can still receive notifications if
he or she subscribes to the notification or is specified as a recipient in the Email Notifications form.
To prevent notification completely, set a condition on the Email Notification form itself that does not deliver the notification if this
field is set to None.

Calendar
integration

Select Outlook to have this user receive meeting notifications via email directly to the calendar. Otherwise, select None.

Time zone

Select the user's time zone.

Business
phone

Enter this user's business phone number.

Mobile phone

Enter this user's mobile phone number.

Photo

Attach a photo of the user, if appropriate.

Associating the User to a Group


1.
2.
3.
4.
5.

Navigate to User Administration > Groups.


Click the group to which you want to assign the user.
In the Group Members related list, click Edit.
Select the user in the Collection list, and then click Add.
Click Save.

Assigning Roles to the User


A user automatically inherits roles from all groups the user belongs to. These roles cannot be deleted from the user's
record, only from the group's record. Roles can also be associated directly with the user.
To add roles to a user's record:
1.
2.
3.
4.
5.

Navigate to User Administration > Users.


Open a user's record.
In the Roles related list, click Edit.
Select the desired roles in the Collection list, and then click Add.
Click Save.

50

Creating Users and Associating to a Group

51

Allow Users to View Their Profile


Users are able to view their profile by clicking their name in the Welcome banner. If your users cannot do this,
enable a system property:
1. Navigate to the System Properties [sys_properties] table.
2. Search for the glide.ui.welcome.profile_link property.
3. Set the value to true.

Creating Groups
Overview
A group is a set of users who share a common purpose. Groups may perform tasks such as approving change
requests, resolving incidents, receiving email notifications, or performing work order tasks. Any business rules,
assignment rules, system roles, or attributes that refer to the group apply to all group members automatically. Users
with the user_admin role can create and edit groups.

Creating Groups
1. Navigate to User Administration > Groups.
2. Click New.
3. Fill in the form.
To see some of the fields, you may need to personalize the form.
Field

Description

Name

Name of the group.

Manager

Group manager or lead.

Type

Category for this group. For example, a group designated as type catalog is a service catalog group and can also be accessed under the
Service Catalog > Catalog Policy > Fulfillment Groups module.
You may need to personalize the form to add the Type field. Activating the Work Management plugin (Calgary release) adds the
Type field automatically.
See also Configuring Group Types for Assignment Groups.

Group
Email

Group email distribution list or the email address of the group's point of contact, such as the group manager.

Parent

Other group of which this group is a member. If a group has a parent, the child group inherits the roles of the parent group. The
members of the child group are considered members of the parent group.
Note: The Assignment group and Assigned to fields on incidents have special logic that prevents setting the Assigned to field to a
user not defined directly in the assignment group. Therefore, only users defined in the assignment group, and not members of the
assignment group's child groups, can be entered in the Assigned to field.

Active

Check box that indicates whether the group is active or inactive. Inactive groups still appear in any reference field that already
references the group, but are not visible by non-admin users in:

Exclude
manager

lists of groups
the reference lookup list for reference fields
the autocomplete list of groups displayed when you type into a reference field

Check box that controls whether the group's manager receives email notifications. Note that if the Subscription Based Notifications
plugin is enabled, managers receive all notifications they are subscribed to, regardless of the Exclude manager setting.

Creating Groups

Include
members

Check box that controls whether the group members receive individual emails when someone sends an email to the Group Email
address.

Adding Users to Groups


After defining a group, add users to the group.
1.
2.
3.
4.
5.
6.

Navigate to User Administration > Groups.


Click a group Name.
In the Group Members related list, click Edit
Select one or more names in the Collection list.
Click Add.
Click Submit.

Removing Users from Groups


You can remove users from a group at any time.
1.
2.
3.
4.

Navigate to User Administration > Groups.


Click a group Name.
In the Group Members related list, select the check box next to a group member name.
From the Actions on selected rows menu, select Delete.

Creating Roles
Overview
A role is a category that can be assigned to a group or user, and can be granted access to particular parts of the
system. Once access has been granted to a role, all of the groups or users assigned to that role are granted the same
access. Roles can also contain other roles, and any access granted to one role will be granted to any role that contains
it.
For a complete list of the roles included with ServiceNow, see Base System Roles.

Creating Roles
1.
2.
3.
4.

Navigate to User Administration > Role.


Click New.
Give the role a unique, descriptive name and a brief description.
Click Submit.

The new role appears on the Roles list. It does not have access to any applications or modules until you add
other roles to it or add the new role to the appropriate applications and modules.
5. To add other existing roles to the new role, open the role in form view and click Edit in the Contains Roles
Related List.
Use the slushbucket to add the appropriate existing roles to the new role and click Save. Users who are
assigned the new role automatically inherit access to the same applications and modules as the existing roles
added here.
6. To create a role to add to the new role, click New in the Contains Roles Related List.

52

Creating Roles
7. To give the role access to additional applications or modules:
1.
2.
3.
4.
5.

Navigate to System Definition > Applications or System Definition > Modules.


Click the appropriate application or module to open it in form view.
Click the lock to open the Roles field.
Use the slushbucket to add the desired roles to the application or module.
Click the lock to close the Roles field, then save your changes.

Role Delegation
Overview
With the Role Delegation plugin, an administrator can grant a user the right to delegate roles within a particular
group with the role_delegator role. Roles available to a role delegator can come from roles specifically granted to
that user or roles that the user inherits by being the member of a group. For example, if a user is a role delegator in
the Network and Database groups, he may delegate roles he inherits from the Network group to members of the
Database group.

Defining a Role Delegator


When approved, the role_delegator role is granted to a specified user in the named group. That user may then
delegate any role they have to any member of the group.
To designate a role delegator:
1. Navigate to User Administration > Designate Role Delegator.
2. Select the group in which a member shall be a role delegator.
3. Select the member of the group who will be the role delegator.

4. Click Submit.
A change request is created for the role delegator request. The change request is approved automatically.

53

Role Delegation

Viewing Delegated Roles


An administrator can view role designation in the following locations on the platform:
User records
Role Delegators module
Role Audit module

User Records
Open a user's record (User Administration > Users) to view all the roles assigned to that user.

Role Delegators
To view existing role delegators (and the groups in which they can delegate roles), navigate to User Administration
> Role Delegators. All the role delegators in the instance are listed, showing the groups in which they have the
role_delegator role.

Role Audit
The Audit Role list view displays all the role changes made in the instance by user and group. To access the Audit
Role list, navigate to System Security > Reports > Audit Roles.

54

Role Delegation

55

Delegating Roles
To delegate specific roles to members of a group, navigate to User Administration > Delegate Roles in Group.
This module is available to users with the role_delegator role. The role delegator provides the following fields:
Field

Input Value

Group

Select the group in which a member shall be delegated a role or roles

User

Select the member who shall be delegated roles in that group.

Roles to delegate Select the roles to delegate to the group member

Upon submission, a change request is created for the delegation request. This change request is approved
automatically, and the specified roles are granted to the named user in the group selected.

Role Delegation

56

Removing Roles
Delegated roles can be removed in the same form by reversing the process. Select the group and user, remove the
unwanted roles from the Roles slushbucket, and then re-submit the request.

Administration
Record Producers
The Role Delegation modules link to Record Producers. These Record Producers create Change Requests that are,
by default, automatically approved by the following graphical workflows:
Grant role_delegator role to user in group
Delegate roles to group member graphical workflows.
Note: These workflows can be customized as desired to add approval steps.

can_delegate Field
The Roles [sys_user_role] table has a can_delegate field. A role can be delegated if this field's value is true. In the
base system, the following fields are not delegatable:

admin
role_delegator (a user with the role_delegator role cannot, by default, delegate this role to other group members)
public
nobody

Group Manager Change Business Rule


The Group Manager Change business rule, disabled by default, will automatically grant the role_delegator role to a
user when they become manager of a group (using the Manager field on the Group form). The role is removed when
the user is no longer the manager of the group.
To take advantage of this business rule, simply activate it.

Using Access Control Rules

57

Using Access Control Rules


Overview
ServiceNow uses access control list (ACL) rules, also called access control rules, to control what data users can
access and how they can access it. ACL rules require users to pass a set of requirements in order to gain access to
particular data. Each ACL rule specifies:
The object being secured
The permissions required to access the object
ServiceNow searches for ACL rules that match the object the user wants to access. If there are no matching ACL
rules for the object, then the object does not require any additional security checks. By default, ServiceNow provides
ACL rules to restrict access to all database and personalization operations.
After finding a matching ACL rule, ServiceNow evaluates if the user has the permissions required to access the
object. If a user meets the ACL rule permissions, the instance grants the user access to the object. If a user does not
meet the ACL rule permissions, the instance denies the user access to the object.
Users with access to the security_admin role can:
Create ACL rules to secure new objects
Update existing ACL rules to grant or deny users access to objects
based on their business requirements
Debug ACL rules to determine why users cannot access certain
objects

Enhancements
ACL Rule Workflow

Calgary
The following enhancements are available as of the Calgary release:
You can create ACL rules for processors.
You can create ACL rules for client-callable script includes.

Creating ACL Rules


Create custom ACL rules in order to secure access to new objects or to change the default security behavior. To
create new ACL rules, you must elevate privileges to the security_admin role.
1.
2.
3.
4.

Elevate privileges to the security_admin role.


Navigate to System Security > Access Control (ACL).
Click New.
Define the object the ACL rule secures and the permissions required to access the object. See Access Control
Fields.

5. Click Submit.

Using Access Control Rules

58
Note: The Requires roles related list is available only after you save the ACL rule.

Access Control Fields


Access control records use the following fields.
Field

Description

Type

Select what kind of object this ACL rule secures. An object's type determines how the object is named and what operations are
available.

Operation

Select the operation this ACL rule secures. Each object type has its own list of operations. An ACL rule can only secure one
operation. To secure multiple operations, create a separate ACL rule for each.

Name

Enter the object's record name or select the object's table and field names. The name identifies the object being secured. The more
specific the name is, the more specific the ACL rule is. You can use the wildcard character asterisk (*) in place of a record name,
table name, or field name to select all objects that match a particular record type, all tables, or all fields. You cannot combine a
wildcard character and a text search. For example, inc* is not a valid ACL rule name, but incident.* and *.number are valid ACL rule
names.

Active

Select this check box to have ServiceNow enforce this ACL rule.

Admin
Overrides

Select this check box to have users with the admin role automatically pass the permissions check for this ACL rule, regardless of
what script or role restrictions would apply. Clear this check box if administrators must meet the permissions defined in this ACL
rule to gain access to the secured object. Since administrators will always pass role checks (see the description of the Requires role
field), use the condition builder or Script field to create a permissions check that administrators must pass.

Description

[Optional] Enter a description of the object or permissions this ACL rule secures.

Condition

Use this condition builder to select the fields and values that must be true for users to access the object.

Script

Enter a custom script describing the permissions required to access the object. The script can use the values of the current and
previous global variables as well as system properties. The script must generate a true or false response in one of two ways:

return an answer variable set to a value of true or false


evaluate to true or false

In either case, users only gain access to the object when the script evaluates to true and the user meets any conditions the ACL rule
has. Both the conditions and the script must evaluate to true for a user to access the object.
Requires
role

Use this related list to specify the roles a user must have in order to access the object. If you list multiple roles, a user with any one of
the listed roles can access the object. Note: Users with the admin role will always pass this permissions check because ServiceNow
automatically grants admin users all roles.

Granting or Denying Access


When a user attempts to access a particular object, ServiceNow first searches for ACL rules that match the requested
object's type and operation. From this list, ServiceNow then searches for an ACL rule that matches the object's name.
If an ACL rule matches the object's name, then the user must meet the permissions described in this rule to access
the secured object.
If the user fails to meet the permissions required by the first rule, ServiceNow searches for the next ACL rule that
matches the object's name. For each matching ACL rule, the user must meet the required permissions in order to
access the object. ServiceNow stops searching for matching ACL rules after the user meets the minimum required
permissions for the current object type. If the user does not meet the permission requirements in any matching ACL
rule, the instance denies the user access to the object.
The effects of the being denied access to an object depend on the ACL rule that the user failed. For example, failing
a read operation ACL rule prevents the user from seeing the object. Depending on the object secured, the ACL rule

Using Access Control Rules

59

could hide a field on a form, hide rows from a list, or prevent a user from accessing a particular UI page. See the
table for a complete list of results of failing an ACL rule for a given operation and object type.
Operation

Results of Failing an ACL Rule on Object

execute

User cannot execute scripts on record or UI page.

create

User cannot see the New UI action from forms. The user also cannot insert records into a table using API protocols such as
web services. Note that a create ACL with a condition that a field contain a specific value always evaluates as false, as fields
on new records are considered empty until saved.

read

User cannot see the object in forms or lists. The user also cannot retrieve records using API protocols such as web services.

write

User sees a read-only field in forms and lists, and the user cannot update records using API protocols such as web services.

delete

User cannot see the Delete UI action from forms. The user also cannot remove records from a table using API protocols such
as web services.

edit_task_relations

User cannot extend the task table.

edit_ci_relations

User cannot extend the Configuration Item [cmdb_ci] table.

save_as_template

User cannot see the UI action to save a record as a template.

add_to_list

User cannot view or personalize specific columns in the list mechanic.

list_edit

User cannot update records (rows) from a list.

report_on

User cannot create reports on the object.

personalize_choices User cannot right-click a choice list field and select Personalize Choices.

Matching ACL Rules to Objects


Each object type has its own matching requirements.
Object Type

Client-callable
script includes

Processors

UI pages

Record

Matching ACL Rules


Required to Access Object

Existing Wildcard ACL Rules

Users must meet the permissions By default, there are no wildcard (*) rules for these object types. If you create a wildcard
of two ACL rules:
ACL rule for one of these objects, then the ACL rule applies to all objects of this type.
1. All wildcard ACL rules for
the object (if any ACL rule
exists for the operation).
2. The first ACL rule that
matches the object's name (if
any ACL rule exists for the
operation).
Users must meet the permissions By default, ServiceNow provides wildcard table rules (*) for the create, read, write, and
of two ACL rules:
delete operations and provides wildcard field rules (*.*) for the personalize_choices, create,
and save_as_template operations. When you create a new table, create new ACL rules for
1. The first ACL rule that
matches the record's field (if the table unless you want to use the provided wildcard ACL rules.
any ACL rule exists for the
operation).
2. The first ACL rule that
matches the record's table (if
any ACL rule exists for the
operation).

Note: ServiceNow uses the high security property Security manager default behavior (glide.sm.default_mode) to determine
whether users can access objects that only match against wildcard table ACL rules. When this property is set to Deny access, only
administrators can access objects that match the wildcard table ACL rules.

Using Access Control Rules

60

Note: The wildcard field ACL rule (*.*) for the create operation reuses the same permissions as the write operation. This means that
the create permissions are the same as the write permissions unless you define an explicit create operation ACL rule.

Evaluating ACL Rule Permission Requirements


An ACL rule only grants a user access to an object if the user meets all of the permissions required by the matching
ACL rules.

The condition must evaluate to true.


The script must evaluate to true or return an answer variable with the value of true.
The user must have one of the roles in the required roles list.
The other matching ACL rules for the object type must evaluate to true.

Record ACL Rules


Record ACL rules consist of two parts:
Table name: the table being secured. If other tables extend from
this table, then the table is considered a parent table. ACL rules for
parent tables apply to any table that extends the parent table.
Field name: the field being secured. Some fields are part of
multiple tables because of table extension. ACL rules for fields in a
parent table apply to any table that extends the parent table.
ACL rules can secure the following record operations:

ACL Rule Workflow to Evaluate Permissions

Operation

Description

execute

Allows users to run an application or script.

create

Allows users to insert new records (rows) into a table.

read

Allows users to display records from a table.

write

Allows users to update records in a table.

delete

Allows users to remove records from a table or drop a table.

edit_task_relations

Allows users to extend the Task table.

edit_ci_relations

Allows users to extend the Configuration Item [cmdb_ci] table.

save_as_template

Allows users to save a record as a template.

add_to_list

Allows users to insert records (rows) into a table from a list.

Using Access Control Rules

61
list_edit

Allows users to update records (rows) from a list.

report_on

Allows users to create reports on the table.

personalize_choices Allows users to personalize the table or field.

Processing Order for Record ACL Rules


ServiceNow processes ACL rules in the following order:
1. Match the object against field ACL rules.
2. Match the object against table ACL rules.
This processing order ensures that users gain access to more specific objects before gaining access to less specific
ones.
A user must pass both field and table ACL rules in order to access a record object.
If a user fails a field ACL rule but passes a table ACL rule, ServiceNow denies the user access to the field
described by the field ACL rule.
If a user fails a table ACL rule, ServiceNow denies the user access to all fields in the table even if the user
previously passed a field ACL rule.

Field ACL Rules


ServiceNow processes field ACL rules in the following order:
1. Match the table and field name. For example, incident.number.
2. Match the parent table and field name. For example, task.number.
3. Match any table (wildcard) and field name. For example,
*.number.
4. Match the table and any field (wildcard). For example, incident.*.
5. Match the parent table and any field (wildcard). For example,
task.*.
6. Match any table (wildcard) and any field (wildcard). For example,
*.*.
The first successful evaluation stops ACL rule processing at the field
level.
This means that when a user passes a field ACL rule's
Matching Workflow for Record ACL Rules
permissions, ServiceNow grants the user access to the record object
secured by the field ACL rule and stops searching for matching field ACL rules. For example, if a user passes the
field ACL rule for incident.number, ServiceNow stops searching for rules that secure the Number field and grants
the user access to the field. If a user passes the field ACL rule for task.number, ServiceNow stops searching for
matching ACL rules and grants the user access to the number field in the parent table and also to extended tables that
use the field.

Using Access Control Rules

62

Table ACL Rules


In most cases there is not an individual field ACL rule for every field in the table the users is trying to access. If no
field ACL rule matches the record object, the user must pass the table ACL rule. Since ServiceNow provides
wildcard table ACL rules that match every table, the user must always pass at least one table ACL rule. ServiceNow
provides additional table ACL rules to control access to specific tables.
ServiceNow processes table ACL rules in the following order:
1. Match the table name. For example, incident.
2. Match the parent table name. For example, task.
3. Match any table name (wildcard). For example, *.
Just like with field ACL rules, ServiceNow grants the user access to the record object secured by the ACL rule and
stops searching for matching ACL rules the first time a user passes a table ACL rule's permissions. A user who
passes the table ACL rule for incident has access to all fields in the Incident table. A user who passes the table ACL
rule for task has access to all fields in the Task table as well as the fields in extended tables. A user who passes the
table ACL rule for any table has access to all fields in all tables.

Multiple ACL Rules at the Same Point in the Processing Order


If ServiceNow matches two or more rules at the same point in the processing order, the user must pass any one of the
ACL rules permissions in order to access the object. For example, if you create two field ACL rules for
incident.number, then a user who passes one rule has access to the number field regardless of whether the user failed
any other field ACL rule at the same point in the processing order.

UI Page ACL Rules


UI page ACL rules specify the UI page to be secured. Use the asterisk character as a wildcard to search for any UI
page. For a list of available UI pages, navigate to System UI > UI Pages.
ACL rules can secure the following UI page operations:
Operation

Description

execute

Allows users to run an application or script.

create

Allows users to insert new UI page records.

read

Allows users to display the UI page.

write

Allows users to update UI page records.

delete

Allows users to remove UI page records.

edit_task_relations

Allows users to extend the Task table.

edit_ci_relations

Allows users to extend the Configuration Item [cmdb_ci] table.

save_as_template

Allows users to save a UI page record as a template.

add_to_list

Allows users to insert UI page records from a list.

list_edit

Allows users to update UI page records from a list.

report_on

Allows users to create reports on UI page records.

personalize_choices Allows users to personalize UI page records.

Since UI pages typically only display read-only information, the most common UI page ACL rule is for the "read"
operation. For an example of limiting access to live feed with this type of rule, see Limiting Live Feed Access by
Role.

Using Access Control Rules

Processor ACL Rules


ACL rules can secure access to the execute operation of all or specific processors (Calgary release). Processor ACL
rules specify the processor you want to secure. Use the asterisk character as a wildcard to search for any processor.
For a list of available processors, navigate to System Definition > Processors.
By default, ServiceNow includes an ACL rule for the EmailClientProcessor to restrict the email client to users with
the itil role. See Enabling the Email Client for more information.

Client-Callable Script Include ACL Rules


ACL rules can secure access to the execute operation of all or specific client-callable scripts (Calgary release). Script
include ACL rules specify the client-callable script include to be secured. Use the asterisk character as a wildcard to
search for any client-callable script include. For a list of available script includes, navigate to System Definition >
Script Includes. You can personalize the list to show the Client callable column.
By default, ServiceNow does not include any ACL rules for client-callable script includes.

Debugging
ServiceNow offers the following ACL rule debugging tools:
Field level debugging
ACL rule output messages
To enable ACL rule debugging, navigate to System Security > Debug Security Rules.
Note: Impersonation can simplify debugging ACL rules. First enable ACL debugging, then impersonate another user to see what
ACL rules the user passes and fails.

Field Level Debugging


With debugging enabled, ServiceNow displays a small bug icon next to each field with an ACL rule. Clicking the
icon lists the ACL rules that apply for the field and the evaluation results.

63

Using Access Control Rules

64

ACL Rule Output Messages


ServiceNow displays ACL rule output messages at the bottom of each list and form. The output message lists the
ACL rule name, the permissions required, and the evaluation result (pass or fail).

Troubleshooting
Here is a list of common ACL rule errors and their solutions. Enable debugging to help troubleshoot an issue.
Error or Symptom

Solution

You cannot access records from a


custom table.

Create a table ACL rule for the custom table granting users access to the table. Without an explicit table
ACL rule, users must pass the permissions in the table wildcard (*) ACL rule, which by default restricts
access to administrators only. Enable debugging and determine what ACL rules are evaluated for the
custom table.

You create a custom ACL rule that


does not work properly.

The most likely problems are that another rule takes precedence over your custom rule in the processing
order or that the user does not meet all the permission requirements for the object type. Enable debugging
and verify that the ACL rule is being evaluated.

Your field ACL rule does not work


properly.

There is likely a table ACL rule that the user has not met. Enable debugging and determine what ACL rules
are evaluated for the field. Verify that there is not a conflicting table ACL rule or duplicate field ACL rule.

Your table ACL rule does not work


properly.

There is either an ACL rule higher in the processing order or a duplicate table ACL rule interfering with
the table ACL rule. Enable debugging and determine what ACL rules are evaluated for the table.

You can see a field in a list but not in


form.

It is possible that the ACL rule conditions or script are being triggered in the list but not in the form.
Enable debugging and determine when the ACL rules evaluate to true. Update the conditions or script to
have the same behavior on the list and form.

You receive an error message when


trying to execute a processor or
client-callable script include

There is an ACL rule for the processor or client-callable script include that the user has not met. If the user
should have access to the object, enable debugging and determine what ACL rules are evaluated for the
processor or script include. Update the ACL rule or the user roles as needed to access the object.

Using Access Control Rules

65

Controlling Whether Script Conditions Apply to Reference Fields


By default, ACL rules ignore the script conditions of a table's reference fields. The default behavior is intended to
improve instance performance. If you want to enable script conditions for reference fields, add the following system
property.
Property

Description

glide.sys_reference_row_check Controls whether the script conditions of Access Control Rules apply to a table's reference fields.

Type: true | false


Default value: false
Location: Add to the System Properties [sys_properties] table

High Security Settings


Warning: This functionality is intended for new instances. Configuring this application on an existing instance may cause changes to
behavior. Please consult with ServiceNow Technical Support before enabling.

Overview
The Platform Security Settings - High plugin is active by default on all new ServiceNow instances. For instances in
which the high security settings are active, observe the following cautions:
Integrations into ServiceNow tables fail unless access control lists (ACL) are defined for the tables being accessed
and the appropriate roles are assigned.
The same ACL requirements apply for import sets that apply to integrations.
Note: For instances running earlier versions, this plugin can be activated by an administrator. After activating the plugin, log out
and log back in for it to take effect.

Platform Security Settings - High automatically activates the Contextual Security plugin if it is not already active. In
addition, Platform Security Settings - High delivers the following settings and features in the context of increasing
the security of your ServiceNow platform.
Features:
High Security Settings: Default property values to harden security on your platform by centralizing all critical
security settings to one location for management and auditing.
Default Deny Property: A new security manager property controls the default security behavior for table access.
Security Administrator Role: A new role used to prevent modification of key security settings and resources. The
Security Administrator role is not inherited by the admin role and must be explicitly assigned.
Access Control Lists: Prevents modification of sensitive and platform-level resources in prior versions.
Property Access Control: Enables the ability to set read and write roles to individual properties in order to prevent
modification.
Elevated Privilege: Allows users to operate in the context of a normal user and elevate to higher security role
when needed.
Transaction and system logs are read only.

High Security Settings

66

Enhancements
Calgary
The following enhancements are available for the Calgary release.
A new system property glide.security.checkacl.before.setvalue controls how an instance
processes ACLs when high security is enabled. By default, high security instances will check ACL rules for all
columns before applying any updates to a row. Setting this property to false causes the instance to apply ACL
rules as each column is processed in alphabetical order. Administrators must add this property to the System
Properties [sys_properties] table.
A new system property glide.security.strict_elevate_privilege forces administrators to
manually elevate to all privileged roles.

Aspen
The following enhancement is available for the Aspen release.
High Security Settings are on by default for all new instances.

Properties
High security settings are controlled by the following properties, accessed from System Security > High Security
Settings.
Note: Access to System Security is restricted to users with the security_admin elevated privilege.

Name

Description

glide.ui.escape_text

Escape XML values at the parser level for the user interface. This will prevent reflected and stored
cross site scripting attacks. Note: This property also disables HTML rendering on the activity
formatter. Default: Yes

glide.ui.escape_all_script

Forces all scripts injected in Jelly to be escaped by default. Use noesc: to preserve special characters.
Default: No

glide.ui.rotate_sessions

Rotate HTTP session identifiers to reduce security vulnerabilities. See: [1] Default: Yes
If you are using the SAML 2.0 plugin for Single Sign-on authentication, set this feature to false.
Otherwise, it interferes with the session information sharing that takes place between ServiceNow and
the Identity Provider.

glide.ui.secure_cookies

Enable secure session cookies: Enable additional cookie security. If checked, strict session cookie
validation is enforced. With version 3 cookies enabled, additional security requirements are also
enforced. Default: Yes

glide.security.strict.updates

Double check security on inbound transactions during form submission (rights are always checked on
form generation). Default: Yes

glide.security.strict.actions

Check conditions on UI actions before execution; normally the conditions are only checked during
form rendering. Default: Yes

glide.security.use_csrf_token

Enable usage of a secure token to identify and validate incoming requests. This token is used to prevent
cross site request forgery attacks. Default: Yes

glide.ui.escape_html_list_field

Escape HTML for HTML fields in a list view. Default: Yes

glide.html.escape_script

Escape JavaScript tags in HTML fields. Default: Yes

High Security Settings

67

glide.ui.forgetme

Remove Remember me check box from login page. Default: Yes

glide.smtp.auth

Authenticate with the SMTP server by the user name and password properties. Default: Yes

glide.script.use.sandbox

Run client generated scripts (AJAXEvaluate and query conditions) inside of a reduced rights
"sandbox". If enabled, only those business rules and script includes with the Client callable checkbox
set to true are available and certain back-end API calls are disallowed. Default: Yes

glide.soap.strict_security

Enforce strict security on incoming SOAP requests. Checking this requires incoming SOAP requests to
go through the security manager for table and field access and checks SOAP users for the correct roles
for using the web service.
[2]
[3]
Default: Yes

glide.basicauth.required.wsdl

Require basic authorization for incoming WSDL requests. Default: Yes

glide.basicauth.required.csv

Require basic authorization for incoming CSV requests. Default: Yes

glide.basicauth.required.excel

Require basic authorization for incoming Excel requests. Default: Yes

glide.basicauth.required.importprocessor

Require basic authorization for incoming import requests. Default: Yes

glide.basicauth.required.pdf

Require basic authorization for incoming PDF requests. Default: Yes

glide.basicauth.required.rss

Require basic authorization for incoming RSS requests. Default: Yes

glide.basicauth.required.scriptedprocessor

Require basic authorization for incoming script requests. Default: Yes

glide.basicauth.required.soap

Require basic authorization for incoming SOAP requests. Default: Yes

glide.basicauth.required.unl

Require basic authorization for incoming unload requests. Default: Yes

glide.basicauth.required.xml

Require basic authorization for incoming XML requests. Default: Yes

glide.basicauth.required.xsd

Require basic authorization for incoming XSD requests. Default: Yes

glide.cms.catalog_uri_relative

Enforce relative links from the URI parameter on /ess/catalog.do. If checked, then only relative URLs
are permitted through the /ess/catalog.do page using the parameter 'uri'. If unchecked, all URLs are
permitted, which may permit linking to external unauthorized content. Default: Yes

glide.set_x_frame_options

Enable this property to set the X-Frame-Options response header to SAMEORIGIN for all UI pages.
The X-Frame-Options HTTP response header can be used to indicate whether or not a browser should
be allowed to render a page in a <frame> or <iframe>. Sites can use this to avoid clickjacking attacks,
by ensuring that their content is not embedded into other sites. [4] Default: Yes

glide.ui.attachment.download_mime_types A list of comma separated attachment mime types that do not render inline in the browser. This will
prevent cross site scripting attacks. For example, text/html forces HTML files to be downloaded to the
client as attachments rather than viewed inline in the browser.
This property is available starting with the Aspen release.
Default: Yes
glide.ui.security.allow_codetag

Allow support for embedding HTML code by using the [code] tag. Default: No

glide.ui.security.codetag.allow_script

Allow embedded HTML (using [code] tags) to contain JavaScript tags. Default: No

glide.script.allow.ajaxevaluate

Enable the AJAXEvaluate processor. Default: No

glide.login.autocomplete

Allow browsers to use autocomplete on password fields on login forms. Default: No

The following properties have been defined in the sys_properties table, but are not visible on the High Security
Settings page.

High Security Settings

68

Name
glide.security.csrf_previous.allow

Description
Allow usage of an expired secure token to identify and validate incoming requests. This token is used to
prevent cross site request forgery attacks. Default: No

glide.security.csrf_previous.time_limit Time in seconds for a secure token to expire. It allows control over the length of time that the previous
CSRF token is valid. When the user session expires, the secure token expires with it unless the "allowing
reuse of expired tokens are allowed" property is enabled and it's within the time frame described by this
property. This token is used to prevent cross-site request forgery attacks. Default: 86400 seconds or 1 day

Default Deny Property


Activating the High Security plugin creates the glide.sm.default_mode security property, which controls the
security manager default behavior when the only matching ACL rules are the wildcard table ACL rules. The High
Security application also includes a set of wildcard table ACL rules for the most common record-based operations:
read, write, create, and delete as well as a significant number of ACLs to provide role-based access to system tables.
For example, there are ACLs that grant sys_script access to the business_rule_admin role because that role is
documented as being able to manage business rules.
The choices for the glide.sm.default_mode property are:
Deny Access: The wildcard table ACL rules restrict the read, write, create, and delete operations on all tables
unless the user has the admin role or meets the requirements of another table ACL rule. Other operations, such as
report_on and personalize_choices, are unaffected by this setting.
Allow Access: The wildcard table ACL rules allow the read, write, create, and delete operations on all tables
unless there are specific table ACL rules in place to restrict such operations.
Note: By default, the wildcard table ACL rules are the only ACL rules that check for the value of the glide.sm.default_mode property.
If you want to control other operations with this setting, create your own ACL rules to check for this property value. See Using Access
Control Rules.

When an instance is upgraded while running the High Security plugin, the glide.sm.default_mode property is set to
Allow Access and can be changed to Deny Access.
When the High Security plugin is activated on a new instance, the glide.sm.default_mode property is set to Deny
Access.
To change the property:
1. Navigate to System Properties > Security.
2. Select Deny Access or Allow Access for the Security manager default behavior.

High Security Settings

69

Security Administrator Role


When the High Security plugin is activated, a new role called security_admin is created and added to the default
System Administrator user. This role is a peer to the admin role and, therefore, is not inherited by users who are
assigned the admin role by default (base system System Administrator, for example). This new role is marked as an
elevated privilege, which means the user who is assigned the role will need to be manually elevated to the role
during an interactive session. The security_admin role protects resources in the platform such as ACL, properties,
and records, that require security to bar access by the normal admin user.

Access Control List for Prior Versions


The following table lists Access Control List entries that were modified or created by the activation of this plugin to
enhance security in prior versions.
Constraint

Type

Access Control

Operation

sys_user_role (Roles)

read

all
records

The "maint" and "nobody" roles cannot be read by any role except "maint"
all other roles can only be read by users with the "role_delegator", "itil", or
"user_admin" roles

sys_user_role (Roles)

delete

all
records

The "maint" and "nobody" roles cannot be deleted by any role except "maint"
all other roles can only be deleted by users with the "admin" role

reset_acl_rules (Reset ACL UI


page)

read

UI Page

This UI page has been removed from the platform. Furthermore access to this UI page is
set to "nobody" so that existing modified pages will not be accessible

sys_app_module (Application
Modules)

write

all
records

sys_app_application
(Application)

write

all
records

sys_properties (Properties)

read

all
records

sys_properties (Properties)

write

all
records

sys_properties (Properties)

delete

all
records

Only users with roles that are set in the "roles" field in the application module record
can modify it
The user with "admin" role can modify any application module that is set with a role
that "admin" can inherit (all roles except "maint" and "security_admin")
Only users with roles that are set in the "roles" field in the application record can
modify it
The user with "admin" role can modify any application that is set with a role that
"admin" can inherit (all roles except "maint" and "security_admin")
Only users with roles that are set in the "read_roles" field in the properties record can
read it
The user with "admin" role can read any property that is set with a role that "admin"
can inherit (all roles except "maint" and "security_admin")
Only users with roles that are set in the "write_roles" field in the properties record can
modify it
The user with "admin" role can modify any property that is set with a role that
"admin" can inherit (all roles except "maint" and "security_admin")
Only users with roles that are set in the "write_roles" field in the properties record can
delete it
The user with "admin" role can delete any property that is set with a role that "admin"
can inherit (all roles except "maint" and "security_admin")

sys_security_acl (Access
Control List)

write

all
records

Only users that have elevated to the "security_admin" role can modify records in
sys_security_acl table

sys_security_acl (Access
Control List)

delete

all
records

Only users that have elevated to the "security_admin" role can delete records in
sys_security_acl table

sys_security_acl_role (Access
Roles)

write

all
records

Only users that have elevated to the "security_admin" role can modify records in
sys_security_acl_roles table

High Security Settings

70

sys_security_acl_role (Access
Roles)

delete

all
records

Only users that have elevated to the "security_admin" role can delete records in
sys_security_acl_roles table

migrate_security (Migrate
Security UI page)

read

UI Page

Access to this UI page is only granted to the user who elevates to the "security_admin"
role

syslog (Log Entry)

write

all
records

Modification of records to this table has been set to the "nobody" role which means
records cannot be modified

syslog (Log Entry)

delete

all
records

Deletion of records to this table has been set to the "nobody" role which means records
cannot be deleted

sysevent (Event)

write

all
records

Modification of records to this table has been set to the "nobody" role which means
records cannot be modified

sysevent (Event)

delete

all
records

Deletion of records to this table has been set to the "nobody" role which means records
cannot be deleted

Property Access Control


Two additional columns are created in the sys_properties (Properties) table.
read_roles: a comma-separated list of role names that are allowed to read all fields of this property
write_roles: a comma-separated list of role names that are allowed to write/modify all fields of this property
Properties listed in the Properties table have read_roles of admin, and write_roles of security_admin. This means
that users with the admin role can view and read the property values, but must elevate to the security_admin role to
modify them.

Elevated Privilege
An elevated privilege is a role that has the elevated_privilege field set to true. After the plugin is activated, a new
security_admin elevated privilege is created and assigned to the default System Administrator user. This role
grants modification access to the High Security Settings and allows the user to modify the Access Control List,
directly import XML files, and access the Scripts - Background module. A user can get an elevated privilege role in
his session only by manually elevating to it. The role is in the user's session only for the duration of the session.
Session timeout or log-out removes the role.

The security admin role with elevated privileges

A role that is an elevated_privilege


does not appear in an assigned user's
session when the user logs in. The user
must manually elevate to that role. See
the following section for details.

High Security Settings

71

Elevating to a Privileged Role


When a user is assigned a role that is an elevated privilege, a lock icon
header.

appears next to the user's name in the


To elevate to a privileged role:
1. Click the icon to select the roles for
which elevated privileges are
activated. The following dialog box
appears.

The welcome header lock

2. Select an elevated role and click


OK. This grants the user elevated
privileges to all resources controlled
by the role for the remainder of the
session. When the user logs out, the
elevated privileges are terminated
and must be reestablished at the next
login. When elevated privileges are
activated, the icon has an unlocked
appearance.

Elevating to the security admin role

If the user's session expires, so


do the elevated privileges.
3. To reestablish the elevated
privilege, click the lock icon, select
the role, and click OK.

Elevated privileges are activated

Note: Any edits being made when the page reloads are lost.

High Security Settings

72

Forcing Administrators to Manually Elevate


Administrators can enable the glide.security.strict_elevate_privilege property to force all users with the administrator
role to manually select the role that they want to elevate to when they click the lock icon. When this property is
disabled, only the security_admin role requires manual selection. When this property is enabled, all elevated roles
require manual selection.

Notifications
Activation of high security settings
also activates security warning
messages. The following is an example
of a message that appears after an
approval. Click Continue to complete
the action without error.

Manually elevating to both the security admin and soap roles

References
[1] http:/ / www. owasp. org/ index. php/ Session_Management#Rotate_Session_Identifiers.
[2] http:/ / wiki. service-now. com/ index. php?title=Contextual_Security
[3] http:/ / wiki. service-now. com/ index. php?title=Web_Services
[4] https:/ / developer. mozilla. org/ en/ the_x-frame-options_response_header

73

Domain 3
Performance Metrics
Overview
You can view a wide range of performance metrics for your instance and for the machine on which your instance is
running, displayed in a graphical format. Add these graphs and their controls to your home page to monitor the
performance of your instances. Some of these graphs are intended for use by ServiceNow Technical Support to
troubleshoot performance issues or help you tune your system for maximum efficiency. Each graph enables you to
filter the data by using different measurements, such as maximum and minimum values, means, and medians. The
available graphs reflect performance in eight functional areas of ServiceNow.
Database
Discovery

Disk Partitions
Linux Stats
Logging
MySQL Overview
Node Metrics
Replication
ServiceNow Servlet

Performance Metrics

Adding Performance Metrics to Your Homepage


A base system graph is available to display performance graphed over time in PST.
1. Click the Add content link in the upper left corner of your homepage.
2. In the Add content dialog box, double-click Performance Graph Controls in the list of available elements to
add Performance Graphs and Performance Graph Sets to the homepage.

3. Select Performance Graphs to add the graphs to the homepage.


4. Select each element you have moved and click on the control bars below the lists to place the performance
elements in your homepage.
For additional information about selecting and displaying items on the homepage, see Customizing Homepages.

Graph Controls
The performance graph controls that you added to your homepage allow you to adjust your view of the graphs as
follows:
Control

Description

Refresh

Set the refresh rate for your graphs from five minutes to one hour, or turn off the refresh feature.

Time
span

Select the amount of data to display in the graph. The time span selected shows the data for that period up to the current time.

Graph
size

Select the physical size of the graph on the page.

Set

Select the graph set (functional area) to display.

CI

The value in this field defaults to the name of the node (instance node ID). The list for clustered environments will contain all the nodes
in the instance, enabling you to view the performance metrics for selected nodes.

74

Performance Metrics

Available Metrics
Each graph has a set of colored check boxes at the top that control the display of available data. Clear a check box to
remove that input from the chart.

Database Graphs
Database graphs display metrics for various database operations (e.g. insertions and deletions) and a current count of
database connections for the selected ServiceNow instance. To view the details of a database, select an instance from
the CI list, and then select a database operation to view from the list of available operations above the chart. Note
that all traffic listed here is specific to your cluster node/instance. If you are looking at the database graph for your
discovery node, it will not include traffic for your UI node or vice versa. If you, like most customers, are running on
a single node, the graph will, of course, show everything.
Database Throughput: Displays the count (per minute) for each type of database operation (inserts, deletes, etc.)
over time.
Database Response: Displays the response time (in milliseconds) for each type of database operation.
DB Connection Use: Shows how many connections this instance has open to the database. Select to display as a
maximum, a minimum, or a mean.

75

Performance Metrics

76

Discovery
Functionality described here requires the Discovery plugin.

Discovery metrics measure the performance of the probes and sensors in your instance as they collect information
about CIs in the network. The available measurements to apply are count, maximum, mean, median, and minimum.
All times in these charts are measured in milliseconds.
Discovery Probe Run Time: Elapsed time, in milliseconds, that probes take to run. Use this chart to check the
performance of your MID Server. Slow run times can indicate a resource problem on the MID Server machine.
Discovery Sensor Queue Time: Indicates how long a sensor task sits in the scheduler queue on the instance
before it runs.
Discovery Sensor Run Time: Measures how long a sensor task takes to run after it is started.

Performance Metrics

Disk Partitions
Select Disk Partitions to view the input and output statistics for partitions on the server hosting your ServiceNow
instance. The available measurements are the read and write requests per minute and the number of bytes read and
written per minute.

Selecting a Partition
You can display the statistics for each partition or the cumulative totals for all partitions. To view cumulative I/O for
the entire disk, select the first line in the drop-down list in the CI field. Select one of the individual partitions from
the list to view the statistics for that partition alone.
Four of the disk partitions that appear in the list are generated as business services and are used to populate the
performance graphs with data. If they are deleted, the instance automatically regenerates them. They appear in the
list of Business Services as shown here:

77

Performance Metrics

The list of disk partitions generated by the platform appear in the performance graphs as shown below:

Linux Stats
The Linux Stats graph displays performance data for the server on which your ServiceNow instance is running.
ServiceNow uses these graphs as a tool to locate and resolve issues with your instance.
CPU Usage: The measurement of this chart indicates the percentage of the available CPUs that are running on
this machine. This is aggregated data and indicates what portion of the machine's resources are being used at any
given time. The most useful metric on this chart is the IOWait time measurement, which can indicate
performance issues.
Load: The load on the Linux machine indicates the average sum of the number of process waiting plus those
processes executing over increments of 1 minute, 5 minutes, and 15 minutes.

CPU Usage Metrics


The following selections are available for CPU metrics:

Idle: No threads are running. This indicates the percentage of the machine's CPUs that are idle.
IOWait: Indicates how long the CPU spends in a waiting state for disk or network I/O.
Nice: View threads with a modified (lower) scheduling priority that configures them to be run when time permits.
System: Displays the percentage of a single CPU that is being used to run system threads.
User: Displays threads initiated by the application (the instance and the database).

78

Performance Metrics

Logging
The charts of logging activity display the mean error log count and the mean number of logs created per minute
within the configured time period. The error logging rate is the most important metric in this group.

79

Performance Metrics

MySQL Overview
The charts in the mySQL Overview display are an aggregate view of all traffic going to your database server. This is
distinct from the charts under the Database section which monitor only queries originating at your particular
application instance.
mySQL Statements: Displays all the database activity - deletes, inserts, selects, and updates.
mySQL Threads: Measures the number of connections to the database and how many active threads are running
on the database.
mySQL Statement - writes: Displays only the database write actions: deletes, inserts, and updates. The select
action represents a large portion of the activity, and removing this view makes it easier to analyze the write
actions.
mySQL Table Locks waited: Displays the number of table locks per second over the configured time period.
This is a very important metric to monitor. The more table locks that exist, the lower the performance.

Node Metrics
Node Metrics displays a set of baseline performance and throughput metrics for a particular application instance
and/or cluster node. Note that most customers are not, in fact, running in a clustered configuration, but you will still
have data here since the system treats those instances as a cluster with only one node.
Those customers running with multiple cluster nodes will be able to view different metrics for each node on their
cluster by changing the CI in the graph control.
Response Time: Displays the maximum, median, and minimum response time for database queries by the
selected node in milliseconds.
Events Logged: Shows the mean number of the events queued and added to the event log by ServiceNow in the
selected time period.
Events Processed: Shows the mean number of the events actually processed by ServiceNow in the selected time
period.
Transactions: Displays the total number of database transactions per minute by the selected node.
Semaphore Use: Shows the number of semaphores in use by the selected node. Semaphores control the number
of user transactions that can be run in parallel.
DB Connection Use: View the maximum, median, and minimum number of database connections in use by the
selected node.

80

Performance Metrics

Replication
Replication is the process whereby an entire instance is replicated on a second machine for failover protection. The
Replication Throughput graph measures the difference in the data (delta) between the production instance and the
replicated instance as user activity changes the database. ServiceNow Technical Support uses this information to
monitor the progress of replicating a customer's instance.

ServiceNow Servlet
Each ServiceNow instance has a servlet.
Sessions: The session data graph can display existing sessions, including those initiated by the MID Server and
external integrations
Transactions:Displays all transactions initiated by users, the MID Server, and external integrations.
Response Time:Displays the interval (in milliseconds) between the time the instance receives a transaction and
the time the instance responds.
Java Memory: Records memory usage and indicates when the instance is running out of memory. This is a very
useful problem indicator.
CPU Usage: Shows aggregated CPU usage for all the instances on the machine. This information is used by
ServiceNow Technical Support to troubleshoot performance issues.
Scheduler: Displays all scheduler activity for the selected instance, including Discovery probes. You can
determine the backlog of scheduled jobs in the queue for a particular time period and compare that against the rate
at which the jobs are being processed during the same period.

81

Performance Metrics

Creating Reports
Overview
ServiceNow puts the power of report creation in the hands of every user of the system. Administrators can create
reports that are viewable by specific groups, or by everybody. Individual users can create custom reports that they
can access at any time. Reports can be scheduled for email delivery at specific times of the day, week or month,
internally and externally. Any report can be made into a gauge which can be added to a ServiceNow homepage.
Combine these powerful features with over 60 customizable, commonly used reports that are delivered with
ServiceNow, and you have the most robust native reporting tool available in any ITSM application on the market
today.

Enhancements
Calgary
The following enhancements are available with the Calgary release.
A new Export to PDF button appears on the reporting form. Users who can export reports can use this button to
create a PDF of a report directly from the report form.
Users who can edit a report can share a report with multiple users or groups.
Changing the visibility of a report now updates the original report. Changing the visibility of a report without the
permissions necessary to edit that report generates a new report instead.
Users who can edit a report can disable the report details block on PDF exports of that report.
The Save as button on the report form now appears as Insert. The behavior of this button did not change.
A Tiny option is now available from the Chart size choice list. The Tiny chart size is approximately one half the
size of the Small chart size.
Certain elements on the report form have moved to accommodate other changes.

82

Creating Reports

83

Running Reports
Reports can be accessed through the left navigation bar. Here are some quick definitions of the modules in the
Report application:
View/Run - The list of available reports. This list will be based on the role the logged in user has to access
individual reports. From this list users can either create a new report or click on any available report to run it.
Chart Colors - The colors of specific sets of data in viewed graphical reports. Once any graphical report is
rendered in ServiceNow, a list of records will be added to this table showing the attributes of what report, what
data set and what color is displayed on that report. By clicking into any of these records, you can adjust the color
used in the report.
Color Definition - The available colors which can be accessed for graphical reports. ServiceNow comes with 143
predefined colors; you can create new ones if you choose, or use this list as a reference guide for customizing the
look of your existing graphical reports.
Scheduled Reports - This is the list of reports that have been scheduled to run at specific times. If an individual is
receiving a report at a specific interval, this is where you'll find it scheduled.

Creating a Report
1. From the left navigation pane, select Reports > View/Run.
2. Click the
button at the top of the list.
3. Define the parameters of the report.
4. Click the Save or Insert button.
Note: When saving a report, avoid characters such as '&', ';', or ','.

Editing an Existing Report


1.
2.
3.
4.

From the left navigation pane, select Reports > View/Run.


Open a report from the list.
Adjust any parameters as needed.
Save the report, and then return to the report list.

Update - Overwrite initial report, returning to the report list


Save - Overwrite initial report, staying on the report form
Insert - Create a new report. Be sure to change the name
Note: If a non-admin user is viewing a global report, clicking Update or Save will not overwrite the initial report: instead, it will
save/update a personalized version of a report belonging to the user.

Creating Reports

84

Creating a Report from a List


1. Navigate to the list for which you want to create a report.
2. Right click on the column header you want to group your report by.
3. Select Pie Chart or Bar Chart from the drop-down menu.
4. Click the
icon to the left of the Reports link.
5. Save the report:
Update - Overwrite initial report, staying on the report form
Save - Overwrite initial report, returning to the report list
Insert - Create a new report. Be sure to change the name, and then return to the report list

Scheduling Reports
Note: You can grant non-admin users rights to schedule reports with the report_scheduler role.

Scheduling reports is a powerful way to automate distribution of the current status of your database tables. Instead of
spending time creating Access or Excel reports and emailing them to team members or executives, you can create a
report and let ServiceNow periodically run it and email the output to the appropriate parties automatically.
1.
2.
3.
4.
5.
6.
7.
8.
9.

Open a report that you want to schedule for distribution.


Click the Schedule at the top of the report.
Select the Users, Groups, or any undefined email addresses you want the report to reach.
Define the interval and time you want the report to be distributed at.
Define a subject for the email.
Define any text information you want to accompany the report, which is sent as an attachment to the email.
Choose an output Type for the report.
Check the Zip Outputbox send the output as a .zip file.
Click Submit.
Note: A scheduled report may not display any data if the report author has a deactivated user account or their role has changed. To
ensure that scheduled reports always run, verify that the Created by field always displays an active user.

Reports are distributed via email. Calendar reports are not currently supported for automatic emailing.
Available report output Type field selections are PDF, PDF-landscape, Excel, CVS, and PNG. Graphical reports
are sent as .png or .pdf files and text reports (lists) are sent as .pdf files. When scheduling a graphical report to be
emailed, select output type PDF or PDF-landscape to include the chart grid data. (Include Grid should be checked
on the report.)
A user must have Notification set to "Email" on their user record to receive reports. An exception to the above is that
an email address directly specified in the "To these addresses" field will always receive the report, even if there's a
matching user record for that address that says "Do not notify".
You can add the Include detail field by personalizing the form. Selecting the Include detail field for a list report
includes a form view for all records from the selected list in the report.
Note: To change the time zone of a scheduled report, run as a user with the desired time zone.

Creating Reports

85

Scheduling Multiple Reports


To schedule multiple reports:
1.
2.
3.
4.

Navigate to Reports > Scheduled Reports and click New.


Populate the form.
Save the record.
Use the Included in Email related list to create additional scheduled reports.

The Included in Email related list will include those reports when the parent report is emailed.

Scheduling Reports as a Report


Scheduled reports are distributed as attachments of different kinds.
To send the report as a link:
1. Navigate to Reports > Scheduled Reports and click New.
2. Populate the form, leaving the Report reference blank.
3. Get the sys_id of the desired report and put the link in the Introductory Message field.
To link the user directly to the report, substituting the instance name and sys_id.
https://INSTANCENAME.service-now.com/sys_report_display.do?sysparm_report_id=SYSID.
To link the user to the report in the frameset:
https:/
/
INSTANCENAME.
do?sysparm_report_id=SYSID.

service-now.

com/

nav_to.

do?url=sys_report_display.

Configuring Thresholds
You can modify the threshold, which determines how many bars or pie wedges are displayed in a chart, or you can
remove the other grouping entirely from your report. The Other Threshhold does not take effect if stacked fields
are specified. In Pivot Table Reports, it applies only to columns, not to rows.

The threshhold default value is displayed directly in the form:

Creating Reports

Administration
The glide.ui.report_expand_header property controls who has access to expand or collapse the report header,
where a report is defined and built. It is a comma-separated list of roles. Default is public, meaning everyone. Find
this property in System Properties > UI Properties with the description, List of roles (comma-separated) that
can expand the report header. If this property does not exist in your instance, you can add a Property to the table.
Note: There is a user preference called 'report.expanded' that may override this behavior. For this property to work correctly, set the
global report.expanded user preference to false and delete all individual user preference settings for report.expanded
that override this behavior. You can manage user preferences under the User Administration application.

Bar Chart Orientation


By default, a bar chart will be drawn vertically when the number of bars to be drawn is less than 10. If there are more
than 10 data groups, the chart will be drawn horizontally. However, you can force either a horizontal or vertical bar
chart orientation in the Type field when creating a report.

Sharing Reports
You can share a report with multiple groups or users starting with the Calgary release. In releases prior to Calgary,
you can share a report with only one group. To share a report with multiple groups and users:
1. From the Visible to field, select Groups and Users.
2. Add user groups or individual users in the respective fields.

86

Creating Reports

87

Publishing Reports
You can make a report visible to anyone - without requiring a login. Users need the report_publisher role to see the
Publish button.
1. Select the report you want to publish.
2. Click Publish.
3. Copy the link and paste it where you want to distribute it. The info message will look similar to this:
Use the following URL for the public report:
https:/
/
www.
service-now.
com/
do?sysparm_report_id=15dfdc80c611227b0127d4d9baa00425

demo/

sys_report_display.

Notes
If you cannot see the data of the report when logged out of the system this is probably because you do not have a
public role on the table being reported on.
If the report has already been published, the Publish button is not available.
You can see a list of published reports by navigating to Reports > Published Reports. This module is inactive
out-of-box. From the module, you can right-click a report in the list to see its Published URL.
When scheduling a report, the name you enter for Run As must have permission to view the records.

Creating Reports

88

Exporting a Report to PDF


Users can export a report to PDF directly from the report form using the Export to PDF button. Clicking this button
displays a dialog box with several options. The Export to PDF button is not available for calendar reports. The
Export to PDF button is available with the Calgary release.
Field

Description

Orientation

Select Portrait or Landscape to set the layout of the resulting PDF.

Delivery

Select Generate now to generate and download the report PDF directly. Select Email me the PDF to send the report PDF to a
specified email address.

Email
Address

Enter the email address to receive the exported report. This field appears only when you select Email me the PDF.

Disabling the Report Details Block


Reports exported to PDF display predefined report attributes in a text
block at the top of the page by default. With the Calgary release, users
who can edit reports can disable the details block. This report details
block is not the same as the default header provided by PDF page
header footer templates. You may want to disable the report details
block when using a custom PDF page header footer template.

To disable the report details block:


1.
2.
3.
4.

Navigate to Reports > View/Run.


Select the report.
Clear the Export Details check box.
Click Save.

Defining an SLA

89

Defining an SLA
Overview
Service Level Agreements (SLAs) allow the service desk to track whether or not their representatives are providing a
certain level of service. The most common use of SLAs is to ensure that incidents are resolved within a certain
amount of time.
A Service Offering SLA is an SLA that applies only to service offerings for business services (requires Service
Portfolio Management plugin and Service Portfolio Management - SLA Commitments plugin). To define a service
offering SLA, navigate to Business Services > Service Offering SLAs > SLAs.

OLAs and Underpinning Contracts


The Task SLA engine provided by the plugin can also be used to define OLAs or Underpinning Contracts in exactly
the same way as SLAs. The only difference between SLAs, OLAs, and Underpinning Contracts is the Type field on
the Task SLA form. Changing the type field does not change the behavior of the Task SLA.
For an example of an OLA, see Defining an OLA for Catalog Fulfillment.

Defining an SLA
When defining an SLA, the Duration field, in coordination with the Schedule field, is critical. For example, select a
5 day 2 hour duration and a 9-5 schedule. The 5 days and 2 hours are considered 122 hours (5x24 + 2). The 122
hours are distributed across the 9-5 schedule at 8 hours per day resulting in 15.25 schedule days (122/8 = 15.25).
To define an SLA:
1. Navigate to Service Level Management > SLA Definitions.
2. Click New.
3. Fill in the form.
Field

Input Value

Name

An identifying name for the SLA.

Type

The type of agreement being defined. This is used for informational purposes and does not change the behavior of the SLA. Choices
are:

SLA
OLA
Underpinning Contract

Table

The task table (table extending Task Table) whose records will be tracked by this SLA.

Workflow

The SLA workflow that determines what activities occur in response to the SLA. For more information, see Creating an SLA
Workflow.

Duration
Type

Determines how the duration of the SLA will be calculated. This can be a User Defined Duration, or a Relative Duration (e.g. "end
of next business day.").

Duration

If Duration Type is User Defined Duration, this is the length of time the SLA will run before it is marked Breached. Note: The
number of days specified in this field are converted into 24 hours. Thus, if a schedule is used (see next field) that has eight hour days,
the duration 1 Day will set the SLA to breach three business days later.

Schedule

The hours during which the SLA should time. This allows SLAs to be defined which only count during business hours. For more
information, see Using Schedules.

Timezone

If the SLA is defined in the SLA Properties (Service Level Management > SLA Properties) as using the SLA Definition's time
zone, this field determines what time zone the SLA will use. For more information, see Using Time Zones.

Defining an SLA

90

Retroactive
Start

Retroactive Start determines the SLA's behavior if it is attached to the task at a point later than the task's creation. If Retroactive
Start is true, then the SLA will time from the task's Created On date and time. If Retroactive Start is false, then the SLA will time
from the date and time that it was attached to the SLA. For example, if an Incident's Priority is changed to 1 - Critical and a Priority 1
SLA is attached at that time, Retroactive Start means that the SLA will count from when the incident was first created, rather than
from when the Incident's Priority changed.

Start
Conditions

Defines conditions (using the Condition Builder) which, if met, attach an SLA to a task on the table specified in the Table field and
begins the timing. Note that all conditions used to define an SLA are case sensitive.

Stop
Conditions

Defines conditions (using the Condition Builder) which, if met, stops the SLA's timer. If these conditions are met before the end of
the duration defined in the Duration Type and Duration fields has elapsed, the SLA's state will be set to Achieved. If these
conditions are no longer met, the SLA will not resume. However, if the Start Conditions are met again, a new SLA will attach.

Pause
Conditions

Defines conditions (using the condition builder) which, if met, pauses the SLA's timer. Once the conditions are no longer met, the
SLA will resume. Pause conditions are not compatible with Relative Durations.
Fields which can be added by personalizing the form:

Condition
class

Accepts the string value of an SLA Condition Rules record to use instead of the global Condition Rules. If blank, the global rules will
be used. For more information, see Modifying SLA Condition Rules.

Reset
Conditions

Defines conditions (using the Condition Builder) which, if met, completes the current SLA and starts a new one.

Example
This example will demonstrate how to use the SLA Plugin to create a Service Level Agreement to ensure that critical
incidents logged in Paris are handled within 1 business day. This example uses the demo data within the system.

Defining the SLA


To define the SLA, navigate to Service Level Management > SLA Definitions, and click new.
Populate the fields with the following:
Name - Name the incident Priority 1 Paris Incident.
Type - Specify the type as SLA. Although the type does not change the behavior of the SLA, the type will help
distinguish between agreements with customers, vendors, and internal departments.
Workflow - Select Default SLA Workflow. To learn how to create a custom Workflow for SLAs, click Creating
a Service Level Management Workflow.
Duration Type - Select End of next business day. This means that, regardless of when the ticket is opened, the
SLA will calculate the end of the next business day and set that as the deadline for the SLA.
Schedule - Select 8-5 weekdays. This means that the timer will run between the hours of 8 and 5 on weekdays.
Once those fields are populated, it is important to populate the condition fields:
Start Condition - Set the following conditions: Location is Paris, Priority is 1 - Critical, and Active is True.
Now the SLA will attach to any active Priority 1 incidents in Paris.
Stop Condition - Set the condition Active is False. This means that once the incident is closed or resolved, the
SLA will stop tracking time.
Pause Condition - Set the conditions Incident is one of Awaiting Problem, Awaiting User Info, or Awaiting
Evidence. This will avoid tracking time while the service desk is waiting for outside events.
The form should look like this:

Defining an SLA

The result is that whenever an incident is listed as being Priority 1 incident in Paris, the following workflow will be
launched:

The workflow will run, pausing if the incident is awaiting user info or evidence, and will be completed if the incident
becomes inactive.

Testing the Service Level Agreement


To test the new SLA:
1.
2.
3.
4.

Navigate to Incident > Create New.


Set Priority to 1 - Critical, and Location to Paris.
Save the incident.
Reload the form.

91

Defining an SLA

Once the incident is saved, a related list of Task SLAs will appear at the bottom, with both the Priority 1 Paris
Incident SLA and the out-of-box Priority 1 Response SLA:

Clicking on the Priority 1 Paris Incident SLA will display information about this instance of the Task SLA:

Clicking the Show Workflow link will display the workflow attached to the SLA's progress:

92

Defining an SLA

Creating an SLA Workflow


Overview
Functionality described here requires the Service Level Agreements (SLA) plugin.
The base system workflow that comes with the plugin is Default SLA Workflow:

This example creates a new Urgent SLA workflow to be used for a priority one ticket.

Creating an SLA Workflow


To create an SLA workflow, navigate to Service Level Management > Workflow Editor. This launches the
Graphical Workflow Editor. Select New in the top left, and populate the first form as follows:
Name: Urgent SLA Workflow.
Table: Task SLA [task_sla]. All SLA workflows must be on the Task SLA table regardless of what table the SLA
will be running against.
If Condition Matches: None. Because no conditions will be specified since it is set to none, the SLA will not run
unless specified by a particular SLA. Note that if this option is not set to None, the workflow runs on any task_sla
record that meets these conditions. If no conditions are specified, the workflow attaches to all new task_sla
records.
The form should now look like this:

93

Creating an SLA Workflow

Click Update. There is now a workflow with a beginning and end. Now it is time to specify what will happen when
the Urgent SLA workflow is triggered.
Suppose the desired process is:
After 33% of the SLA's duration, alert the user assigned to responding to the task.
After 66% of the SLA's duration, notify the assignee's manager.
After 100% of the SLA's duration, notify the Customer Care representative that the SLA has been breached.
To define that process as a workflow:
1.
2.
3.
4.
5.

Drag the activity SLA Percentage Timer onto the arrow between Begin and End.
Name the activity 33% Timer and enter 33 in the Percentage field.
Drag the activity Notification into the empty space below the 33% Timer activity.
Name the activity Notify Assignee.
Click the lock icon on the To field, select the variable picker ( ), and select Task SLA > Task > Assigned
To.

Enter a subject and email body as necessary.

94

Creating an SLA Workflow

6. Click the yellow box on the side of the 33% Timer activity and drag to the new notification box. This creates a
second arrow from 33% Timer to the new notification:

7. Drag the activity SLA Percentage Timer onto the arrow between 33% Timer and End.
8. Name the activity 33% Timer 2 and enter 33 in the Percentage field.
9. Drag the activity Notification into the empty space below 33% Timer 2 activity.
10. Name the activity Notify Assignee's Manager.
11. Click the lock icon on the To field and select Task SLA > Task > Assigned To > Manager.
12. Click Submit.
13. Drag an arrow from 33% Timer 2 to the new notification box.
14. Drag the activity SLA Percentage Timer onto the arrow between 33% Timer 2 and End.
15. Name the activity 33% Timer 3 and place 33 in the Percentage field.
16. Drag the activity Notification into the empty space below the 33% Timer 2 activity.
17. Name the activity Notify Customer Care.
18. Click the lock icon on the To field, locate the Enter Email Address field, and enter
customercare@yourcompany.com.
19. Click Submit.
20. Drag an arrow from 33% Timer 3 to the new notification box.
The workflow should now look like this:

95

Creating an SLA Workflow

21. Click the Workflow Actions icon


and select Publish.
The workflow will now be available to any SLA, and can be edited at any time by opening the workflow editor,
opening the workflow, and checking it out.

Events and Email Notification


Overview
One use for system events in the ServiceNow platform is to control email notification for system activity, such as
when incident records are updated, or change requests are assigned. There are a number of useful events included in
the platform that provides you with a broad view of application activity, but these events might not give you the
detailed view you need or may not suit a customized system. If existing events do not meet your needs, you can
create your own events to watch for specific changes to ServiceNow records. For details on using events to notify
people of system activity, see Email Notifications. For instructions on creating and sending custom emails when
ServiceNow events occur, see the tasks in Email Notifications.

Enhancements
Berlin
The following enhancements are available as of the Berlin release:
Notifications no longer require creating a custom business rule and event. See Email Notifications for information
on the creating notifications without creating custom business rules and events.
Event-based notifications include the Sys ID of the user as parm1 and the user name as parm2
The event state transferred indicates that ServiceNow rotated an event to a different shard of the Event
[sysevent] table.

96

Events and Email Notification

97

Business Rules
A business rule is a piece of JavaScript that you can configure to run when a record is inserted, updated, or deleted,
or as part of a table query. All business rules run either before or after the database action has occurred. Event-based
notifications add event records to the event queue using the following script logis.
If [something is true], then [add a specific event to the queue]
To create a new business rule navigate to System Definition > Business Rules and enter values for the following
fields (see table).
Field

Input Value

Name

A descriptive name for your business rule. For example, Service Catalog Comments.

Table

Select the appropriate database table for this business rule. For example, Request [sc_request].

Order

Type the sequence in which this business rule should run. If there are multiple rules on a particular activity, then the rules will run in the
order specified here, from lowest to highest.

Active

Select the check box (true) to enable this business rule.

When

Select when this business rule should execute: before, at the same time, or after the database operation is complete. For example, select
after to run the business rule after completing database operations.

Insert

Select this checkbox to execute the business rule when adding a record into the database.

Update

Select this checkbox to execute the business rule when updating a record. For example, to update an existing Service Catalog request,
select this check box.

Delete

Select this checkbox to execute the business rule when deleting a record from the database.

Query

Select this checkbox to execute the business rule when querying a table.

Condition Enter a JavaScript condition under which the business rule runs. By adding the condition statement to this field, ServiceNow only runs
the logic in the Script field when this condition is true. If you decide to include the condition statement in the script, leave this field
blank.
Script

Enter the JavaScript you want to run when the condition you define is true.

Events and Email Notification

Building a Script
The incident events business rule comes with the system and defines a number of events that can be triggered by
different actions in the Incident table.

This business rule defines several events, three of which are triggered after a record in the Incident table is inserted
or updated. The first script is:
if (current.operation() != 'insert' && current.comments.changes()) {
gs.eventQueue("incident.commented", current, gs.getUserID(),
gs.getUserName());
}
The condition in this script requires that a change be made to the Comments field in an existing (not inserted)
incident record. If this condition is true, then ServiceNow adds the incident.commented event to the event queue.
The second condition requires that a record be inserted before the event is added to the queue.
if (current.operation() =='insert') {
The third condition is true whenever the incident record is updated (including updates to the Comments field, as
specified by the first script).
if (current.operation() == 'update')
The then part of each script, the gs.eventQueue function, adds the event to the event queue. This statement uses the
following syntax, set off with braces:
gs.eventQueue("incident.updated", current, gs.getUserID(),
gs.getUserName());
The gs.eventQueue function takes the following parameters:

98

Events and Email Notification

Field
Name

99

Input Value
The name of the event triggered, set in quotation marks

Record The record referenced when the condition in the script evaluates to true. Usually this is expressed as current, meaning the current record
the business rule is working on. If the business rule is being triggered as part of a scheduled job, use a GlideRecord argument in its place.
Parm1

Passes a string value. Notification events pass the Sys ID of the user with the gs.getUserID() method (Berlin release). Other scripts can
reference this string value as parm1 using the format ${event.parm1}.

Parm2

Passes a string value. Notification events pass the user name with the gs.getUserName() method (Berlin release). Other scripts can
reference this string values as parm2 using the format ${event.parm2}.

Create a New Event


Administrators can create a custom event to send an email notification if an existing business rule does not provide
the necessary event. For example, you might want to notify people who initiate a Service Catalog request whenever a
comment is added to that request.
It is a best practice to verify there is not an existing event you can use.
1. Navigate to System Policy > Events > Registry.
2. Filter the list on the table your event will affect. For example, select the Requests [sc_request] table.
3. Review the events for the table and determine if there is an existing event you can use.
If you do not find a suitable existing event, you can create your own.
1.
2.
3.
4.

Navigate to System Policy > Events > Registry.


Click New and fill in the form.
Click the Business Rules related link.
Select the event business rule for the table. For example, select the sc request events business rule to create a
custom Request event.
5. In the Script field, add custom event JavaScript (see sample).
6. Click Update.

Sample Event Script


The following sample script adds an request.commented event with the user's Sys ID as parm1 and the user's user
name for parm2.
if (current.operation() != insert && current.comments.changes()) {
gs.eventQueue(request.commented, current, gs.getUserID(),
gs.getUserName());
}

Event States
Events may exist in one of several states:

Events and Email Notification

State

100

Description

Ready

ServiceNow created the event and is it is in queue waiting to be processed.

Processed

The event successfully ran. An event does not necessarily trigger any further action when processed. Additional functionality must
make use of the event.

Error

The event encountered an error durring processing. This state is often caused by invalid event parameters.

Transferred The event was rotated to a different shard of the Event [sysevent] table. When an event is rotated, a duplicate record is created in the
active shard. The Transferred state was added with the Berlin Release.

Global Events
ServiceNow has a global function called global_events() that triggers from a business rule when these3 conditions
occur:

Inserting new records


Updating existing records
Adding comments to an existing record
Assigning a record to a user
Exceeding a record's inactive timer

For example, if you add the script global.events(current) to a business rule on the change_request table,
ServiceNow automatically configures the following events:

change_request.inserted
change_request.updated
change_request.commented
change_ request.assigned
change_ request.inactive

The business rule for global events on the change_request table looks like this:

Sample Scripts from the change events Business Rule


The following scripts are found in the baseline change events business rule. This business rule defines events that
fire after a change request is inserted or updated.
if (current.operation() == 'insert') {
gs.eventQueue("change.inserted", current, gs.getUserID(),
gs.getUserName());
}

Events and Email Notification


if (current.operation() == 'update') {
gs.eventQueue("change.updated", current, gs.getUserID(),
gs.getUserName());
}
if (!current.assigned_to.nil() && current.assigned_to.changes()) {
gs.eventQueue("change.assigned", current,
current.assigned_to.getDisplayValue() ,
previous.assigned_to.getDisplayValue());
}
if (current.priority.changes() && current.priority == 1) {
gs.eventQueue("change.priority.1", current, current.priority,
previous.priority);
}
if (current.risk.changes() && current.risk== 1) {
gs.eventQueue("change.risk.1", current, current.risk, previous.risk);
}
if (current.start_date.changes() || current.end_date.changes() ||
current.assigned_to.changes()) {
if (!current.start_date.nil() && !current.end_date.nil() &&
!current.assigned_to.nil()) {
gs.eventQueue("change.calendar.notify", current,
current.assigned_to, previous.assigned_to);
}
// Remove from previous assigned to, due to assigned_to changing
if (!previous.assigned_to.nil()) {
if (!current.assigned_to.nil() && current.assigned_to.changes()
&&
(!previous.start_date.nil() && !previous.end_date.nil())) {
gs.eventQueue("change.calendar.notify.remove", current,
current.assigned_to, previous.assigned_to);
}
}
// Remove old calendar from current assigned to, due to date changing
else if (!current.assigned_to.nil()) {
if ((current.start_date.changes() && !previous.start_date.nil())
||
(current.end_date.changes() && !previous.end_date.nil())) {
gs.eventQueue("change.calendar.notify.remove", current,
current.assigned_to, current.assigned_to);
}

101

Events and Email Notification


}
}

Using the Knowledge Base


Overview
All users of the ServiceNow application can access the knowledge portal to search for and view role-appropriate
articles. The specific application and modules available vary by role.
The separate Employee Self-Service portal allows employees to access knowledge articles outside the full
ServiceNow application.

Accessing Knowledge
View role-appropriate knowledge articles from these locations.
Knowledge portal: every ServiceNow user can access the knowledge portal through one of these paths:
Self-Service > Knowledge, Service Desk > Knowledge, or Knowledge Base > View. The portal lists the most
recent articles arranged by topic.

Knowledge base list: users who click a topic's View all items link on the knowledge portal see a list of all
articles in that topic that have not passed their valid to date. Unlike a record list, users cannot alter knowledge
base entries with the list editor.
Global text search: users whose roles permit access to global text search can find knowledge articles along with
tasks, policies, service catalog items, and other records. Administrators can tailor which tables are searched.
Homepages: each user has a homepage that appears by default, typically filled with reports, selected knowledge
topics, and other commonly used functions. Users can personalize and rearrange their homepage based on what
information is most useful to them.

102

Using the Knowledge Base


Content pages: the knowledge management team can create content pages that serve as a customer interface for
the knowledge base.
Forms that contain the knowledge icon: users can click the knowledge icon ( ) that appears in some forms to
initiate a knowledge search for the text in the adjacent field. This icon appears by default beside the Short
description field on the Incident and Problem forms. Administrators can configure other forms to include the
knowledge icon, as well.
Reporting: users can easily generate role-appropriate reports on knowledge feedback, development, and usage in
a variety of formats. These reports can be scheduled for email distribution, or added to homepages or content
pages. Users click a report element for a list of related knowledge articles.
Known errors: problems can be marked as known errors which adds them under Problem > Known Errors,
providing quick reference. Although items in the Problem > Known Errors module are not part of the
knowledge base, this information is important to the knowledge centered support (KCS).

Viewing Knowledge Articles


Click a title to view the article.

In addition to the article's content, the page may show these elements, depending on administrator settings:

Breadcrumbs that show the article's topic and category.


Article number, date published, and date last modified.
Feedback area with up to four feedback options and previous user comments, if any.
List of affected products and related tasks (such as incidents or problems).
Permalink URL that can be shared to give others quick access to the article.

103

Using the Knowledge Base

104

Searching the Knowledge Base


Find a specific article by searching the knowledge base in one of these ways:
Knowledge search: the search field above the knowledge page searches knowledge articles and their attachments
by default. This search, available to all users, lets users filter, organize, and refine search results. Use advanced
search to filter search results by topic, category, and search location. Administrators can restrict this function.
Global text search: available to users with role-based permissions, the global text search field in the banner
frame searches the knowledge base as well as other types of records to which the user has access rights.
Forms: the search knowledge icon ( ), which appears on some forms, launches a knowledge search for the text
in the adjacent field. This icon appears beside the Short description field on the Incident and Problem forms by
default; administrators may add it to other forms. The search results and articles appear in a pop-up window. You
can click the Attach to Task button (the word task is replaced by the task name) in an article to add information
about the article to the associated task record.
Content pages: created with the Content Management System (CMS), content pages can include knowledge
search options.
Note: Knowledge search terms are stemmed

[1]

, meaning that searches may return similar words.

Giving Article Feedback


One or more feedback options may appear at the bottom right of the article, depending on administrator settings.
Each option permits a specific type of feedback.
Responding Yes to the "Was This Helpful?" question displays a Thank You message and opens the feedback field.
Enter comments if desired.

Responding "'No"' to the same question displays a Thank You message and opens the feedback field. This selection
may also display a Create Incident link, depending on administrator settings.

Using the Knowledge Base

Clicking the Create Incident link creates an incident record that contains the knowledge search that led to the
article.

In the five-star rating area, move the mouse over the stars to display a rating preview in the header. Click a rating to
select it.

Select the Flag article check box to call the article to the attention of the knowledge management team. Selecting
the Flag article check box makes the Feedback field mandatory. Enter comments to help the knowledge
management team update the article appropriately.

105

Using the Knowledge Base

References
[1] http:/ / en. wikipedia. org/ wiki/ Stemming

Creating Knowledge
Overview
The ServiceNow knowledge base houses the information an organization needs to keep and share. For example, it
might include desktop support information, company/department processes and procedures, and documentation on
internally developed applications.
Add information to the knowledge base by:

Creating articles manually.


Creating articles automatically from an incident.
Creating articles automatically from a problem.
Creating articles automatically from events.

Linking to or importing content stored in another knowledge base.


Publishing managed documents to the knowledge base
By default, most new articles are created as drafts and move through a review state before they are published. Some
exceptions to the standard workflow include posting news from the Problem form and creating an article from an
event.
If the administrator enables the optional knowledge submission workflow, articles created from incidents or
problems become knowledge submissions, which are processed through a different path. For more information, see
Knowledge Workflow.

106

Creating Knowledge

107

Creating Knowledge Manually


Users with the admin, knowledge_admin, or knowledge role can create knowledge base articles directly in the
Knowledge form.
1. Navigate to Knowledge Base > Create New.

2. Select a Topic and Category for the article.


3. Enter a Short description to identify the article in the knowledge portal and search results.
4. In the Text field, enter the article's content.
Use HTML or Wiki Markup to format the content, according to the Article type selection.
5. Fill in other fields on the form, as appropriate (see table).
6. Click Submit.
This table describes all fields and buttons on the Knowledge form. The descriptions identify fields that are available
only to users with specific roles.
Field

Input Value

Number

Do not modify. The record number is assigned by the system and should not be changed.

Topic

Select the topic in which the article should appear in the knowledge portal. To add options, right-click the field label and choose
Personalize Choices.

Category

Select a category to further organize articles in the knowledge portal. Available categories depend on the selected topic. To add
options, right-click the field label and select Personalize Choices.

Published

Enter the date the article was published. The current date is used by default.

Valid to

Enter the date when the article expires. Only Published articles within the valid date range are visible to most users. ServiceNow
supplies a default date. To change the default date, right-click the field label and choose Personalize Dictionary.
This field is available only to users with the admin role.

Creating Knowledge

Image

108

Click the reference lookup icon (


) to select an image that was previously uploaded to the ServiceNow database. The image
appears as an icon beside the article name in the knowledge portal.
This field is available only to users with the admin role.

Article type

Select the markup language to use for formatting the article:

Workflow

HTML: the Text field offers a WYSIWYG interface with a toolbar to apply formatting and create links. Click the HTML
icon on the toolbar to display HTML mode, where you can view and format with HTML commands.
Wiki: the Text field offers Wikitext icon that toggles between a preview of the formatted text and an edit field where you can
enter text with Wiki markup language to define formatting.

Select the workflow state for the article: Draft, Review, or Published. Generally, only Published articles appear in the portal.
Users with role-based permissions might also see articles in the draft or review state in the portal and search results, depending on
administrator settings.
This field is available only to users with the admin role.

Source

Click the reference lookup icon to select the task that formed the basis for this article, if any.
This field is available only to users with the admin role.

Roles

Specify user roles to limit who can view the article. Otherwise, all users can view the article after it is published.
This field is available only to users with the admin role.

Attachment link Select this check box to have this article's link open a file attachment. To upload the attachment, click the paperclip icon in the
upper right corner. The link in the knowledge portal or search results opens the attachment instead of navigating to the text of the
article. You can link to one attachment per article.
This field is available only to users with the admin role.
Display
attachments

Select this check box to display a list of attachments below the article. Although you can link to only one attachment (see the
Attachment link field), you can attach multiple files and list them below the article in article view.
This field is available only to users with the admin role.

Short
Description

Enter text to appear as a title for the article in the knowledge portal and search results.

Text/Wiki

Enter the text of the article. This area accepts either HTML or Wiki Markup, according to the selected Article type. If Article
type is HTML, you can work in WYSIWYG mode, using the toolbar above the text field to apply formatting and create links.
Click the HTML icon on the toolbar to open HTML mode, where you can view and format the text with HTML commands. See
Using HTML Fields for information on using the HTML editor.
If Article type is Wiki, click the Wikitext icon to toggle between an edit field and the formatted text. See Knowledge
Management Wiki Support for information on using wiki tags.

Update

Click the Update button to save any changes made to the form and return to the article list. To save changes and stay on the form,
right-click the header bar and choose Save.

Mark Public /
Mark Internal

Click the Mark Public button to make the article accessible to everyone. This action sets public as the role for the article.

Search for
Duplicates

Click this button to search the knowledge base for existing articles that contain similar content.

Delete

Click this button to delete the knowledge article from the system. You must confirm the request before the record is deleted.

Click the Mark Internal button to make the article accessible only to the roles specified by the administrator. If no roles are
specified, the article is available to the public and there is no change.

Creating Knowledge

Making Attachments Visible


Like other records, you can add attachments to knowledge articles. By default, they appear only to users with the
admin, knowledge_admin, or knowledge role, who can view the knowledge record by navigating to Knowledge
Base > Edit or clicking the Edit Article button when viewing the article.
Select the Display Attachments check box on the Knowledge form to display a list of attachments to users viewing
the article. You might need to personalize the Knowledge form to display this field.

A list of attachments appears below the article if Display attachments is selected.

109

Creating Knowledge

Creating Knowledge from an Incident


Incidents within ITIL processes often generate information that may be needed in the future. ServiceNow can
automatically submit relevant information to the knowledge management process when the incident is closed.
Select the Knowledge check box in the Incident form's the Closure Information section to enable this feature.
Closing the incident triggers the business rule Incident Create Knowledge. By default, the business rule creates a
knowledge article in the Draft workflow state. The incident Short description becomes the article Short
description. The incident Additional comments become the article Text. If the knowledge submission workflow is
enabled, the incident Short description and Additional comments become a knowledge submission instead of an
article. For more information, see Knowledge Workflow.
For example, this is an incident being closed.

And this is the resulting article as it appears in the knowledge base.

110

Creating Knowledge

Creating Knowledge from a Problem


The ServiceNow Problem form includes four options for creating knowledge directly from the problem:

Knowledge check box


Communicate Workaround related link
Post Knowledge related link
Post News related link

Using the Knowledge Check Box


Like incidents, problems within ITIL processes often generate information that may be needed in the future.
ServiceNow can automatically submit relevant information to the knowledge management process when a problem
is closed.
Select the Knowledge check box on the Problem form to enable this feature. Closing the problem triggers the
business rule Problem Create Knowledge. By default, the business rule creates a knowledge article in the Draft
workflow state, ready for a knowledge team member to review and publish. The problem Short description
becomes the article Short description and the problem Work notes become the article Text. If the knowledge
submission workflow is enabled, the problem Work notes become a knowledge submission instead of an article. For
more information, see Knowledge Workflow.

Communicating a Workaround
To update all incidents associated with a problem, go to the Problem form and click the Communicate
Workaround related link. This adds the problem number and the contents of the s Workaround field as a new
entry in the Activity field on all related incidents.
By default, any entries made in an incident Activity field generate an email notification to the Caller on the Incident
form. The Communicate Workaround option on the Problem form quickly and easily communicates workarounds
to multiple users from one place, eliminating the need to manually update each incident.
If group on-call rotation scheduling is in effect when you communicate a workaround, ServiceNow stops the
escalations on the associated incidents because the workaround has been communicated to the end users.
This effectively communicates knowledge to the appropriate audience, but does not create a knowledge article.

Posting Knowledge
To create a new knowledge article from a problem immediately, rather than when the problem closes, go to the
Problem form and click the Post Knowledge related link. The resulting knowledge article contains the following
information:
The problem number and Short description become the knowledge article Short description.
The problem Description and Work notes become the knowledge article Text.
The problem Configuration item becomes the knowledge article Configuration Item for the Affected Products
related list.
The article Topic is set to Known Error.
By default, ServiceNow creates a knowledge article in Draft workflow state. If the knowledge submission workflow
is enabled, the problem Short description and Work notes are placed into a knowledge submission instead of an
article. For more information, see Knowledge Workflow.

111

Creating Knowledge

Posting News
To quickly create and publish a knowledge article in the News topic, go to the Problem form and click the Post
News related link. The resulting knowledge article contains the following information:
The problem number and Short description become the knowledge article Short description.
The problem Description and Work notes become the knowledge article Text.
The problem Configuration Item becomes the knowledge article Configuration Item for the Affected Products
related list.
By default, the Post News related link creates an article in the Published workflow state. These articles appear in
the News topic of the knowledge portal immediately.
If the knowledge submission workflow is enabled, the problem Short description and Work notes are placed into a
knowledge submission instead of an article. For more information, see Knowledge Workflow.

Modifying the UI Actions


Administrators can modify the behavior of the the Communicate Workaround, Post Knowledge, and Post News
related links. Navigate to System Definition > UI Actions and modify the record with the same name as the related
link. For more information, see UI Actions.

Accessing External Knowledge Articles


Use Knowledge Base > Navigation Add-ons to configure access to another knowledge base, either public or
private, or to a public search engine.
The process of importing knowledge base articles depends on how the source data is stored and formatted. If you
need to import knowledge content directly from another source to the ServiceNow knowledge base, please contact
your Account Executive or Professional Services consultant.

112

Configuring Knowledge Properties

113

Configuring Knowledge Properties


Overview
Knowledge properties enable administrators to configure the look and functionality of many knowledge base
features. Access the complete set of knowledge properties by navigating to either Knowledge Base > Properties or
System Properties > Knowledge Management.
The Knowledge Management Properties page divides the available properties into these groups :

Knowledge portal
Article view
Knowledge search
Other related elements

Knowledge Portal Properties


Knowledge portal properties control the look and functionality of the portal page, which is available to all users. This
page lists recent knowledge articles and their publication dates, organized by topic. Each topic contains a View all
items link that displays the Knowledge Base list showing all articles in the topic.
Property

Description

Label for knowledge portal page search site drop-down.


(glide.knowman.name)

Enter label text to identify the ServiceNow knowledge base as


the location to be searched. When a user clicks the Advanced
search link, the filter fields include an option for what to search.
By default, users can choose to search the ServiceNow
knowledge base, identified by this label, or the ServiceNow wiki,
or selected other search sites.

Number of columns on Knowledge portal pages.


(glide.knowman.columns)

Set the number of columns for arranging topics on the knowledge


portal.

Omit empty Knowledge topics and categories.


(glide.knowman.show_only_populated)

Select the Yes check box to display topic sections only if there
are articles for the topic. Clear the check box to show all topic
sections, even those with no assigned articles.

Show Knowledge section descriptions.


(glide.knowman.show_descriptions)

Select the Yes check box to display topic descriptions in the


knowledge portal. To enter these descriptions:
1. Edit an existing knowledge article.
2. Right-click the Topic field label and choose Show Choice
List.
3. Open the record for the topic name and enter the description
into the Hint field.
Clear the check box to omit section descriptions from the
knowledge portal.

Number of Knowledge Base items to preview in a section.


(glide.knowman.section_limit)

Set the maximum number of articles per topic for the knowledge
portal. The specific articles shown depends on the Knowledge
section sort field property setting.

Configuring Knowledge Properties

Knowledge section sort field. (glide.knowman.section_sort)

114
Select the default order for articles within each topic section on
the knowledge portal.

Published: uses the date published.


View count: uses the number of times articles have been
viewed during the period specified in the Number of days
used when summing article views property.
Alphabetically: uses the first letter of the article title (Short
description field).

Knowledge Base section sort direction.


(glide.knowman.section_sort_direction)

Select the order, ascending or descending, in which articles are


listed within each topic section on the knowledge portal. The
value used for sorting is set in the Knowledge section sort field
property.

Show unpublished articles in Knowledge Base portal and topic lists.


(glide.knowman.show_unpublished)

Select the Yes check box to allow users to see unpublished


articles in the knowledge portal and knowledge search results.
Use the subsequent List of roles... properties to designated which
users can see articles in various unpublished states. If this is not
selected, users with appropriate roles can access unpublished
articles through other modules of the Knowledge Base
application.

List of roles (comma separated) that can see articles in the Review workflow
state in the Knowledge portal and Topic list.
(glide.knowman.section.view_roles.review)

Enter role names exactly as they appear in User Administration


> Roles. If Show unpublished articles in Knowledge Base
portal and topic lists is selected, users with these roles see
articles in the Review workflow state in the knowledge portal, in
the topic list that appears when they click a topic title on the
portal, and in knowledge search results.

List of roles (comma separated) that can see articles in the Draft workflow state
in the Knowledge portal and Topic list.
(glide.knowman.section.view_roles.draft)

Enter role names exactly as they appear in User Administration


> Roles. If Show unpublished articles in Knowledge Base
portal and topic lists is selected, users with these roles see
articles in the Draft workflow state in the knowledge portal, in
the topic list that appears when they click a topic title on the
portal, and in knowledge search results.

Show only Knowledge topic titles on portal page (no article links).
(glide.knowman.home_titlesonly)

Select the Yes check box to omit all article titles from the
knowledge portal and show only the topic names. Users can click
the topic title to see the list of related articles.

Number of days (integer, default 30) used when summing article views. Views
older than this are not considered when sorting articles based on view count. 0
means consider all views. (glide.knowman.view_age.days)

Enter a number of days to consider when calculating view count.


This is used only when the Knowledge section sort field
property is set to View count. Enter 0 to have ServiceNow
consider all views, regardless of date.

Preview article when hovering over icon in portal.


(glide.knowman.show_preview_popup)

Select the Yes check box to have ServiceNow display article


number, date published, last date modified, and user comments
when a user points to the article icon.

Automatically place cursor in Knowledge portal search box.


(glide.knowman.portal_search_focus)

Select the Yes check box to have ServiceNow place the cursor in
the search field when a user opens the knowledge portal. Clear
the check box to have users click in the search field before
entering a search term.

Configuring Knowledge Properties

115

Article View Properties


Article view properties give administrators control over the meta data and rating options that appear with articles.
They also let administrators grant access to individual feedback options based on user role.
Property

Description

Show affected products when viewing an article.


(glide.knowman.affected_products.display)

Select the Yes check box to have article view include a


list of products associated with the article content.
Products shown are defined in the Affected Products
related list of the article's Knowledge form.

Show tasks to which an article has been recently attached.


(glide.knowman.recent_tasks.display)

Select the Yes check box to have article view include a


list of tasks associated with the article. Knowledge
articles can be attached to a task by clicking the Attach to
Task button after searching from a form.

Number of attached tasks to display when viewing an article.


(glide.knowman.recent_tasks)

Specify the maximum number of tasks to list in article


view.

Show article rating section, which may optionally include yes/no rating, star rating, and
flagging options. (glide.knowman.show_rating_options)

Select the Yes check box to display the rating options for
users with specific roles. Clear this check box to omit the
rating section for all users, regardless of role.
The Feedback field is always displayed for all users.

List of roles (comma separated) that can see an article's rating section, which may
optionally include yes/no rating, star rating, and flagging option.
(glide.knowman.show_rating_options.roles)

Enter role names exactly as they appear in User


Administration > Roles. If Show article rating
section... is selected, users with the roles listed here see
the yes/no rating, star rating, and flagging options,
according to related property settings.
Be sure to include all roles that should be permitted to see
any of these rating options. Separate properties enable
you to identify specific roles for each option separately.
All roles in those properties must also be listed here.

Show the "Was this article helpful?" yes/no rating option.


(glide.knowman.show_yn_rating)

Select the Yes check box to display the "Was this article
helpful?" rating to users with roles set in the associated
property. This appears only if the Show article rating
section... property is selected.

List of roles (comma separated) that can see yes/no "Was this article helpful?" rating
option. (glide.knowman.show_yn_rating.roles)

Enter role names exactly as they appear in User


Administration > Roles. If both Show article rating
section... and Show the "Was this article helpful?"
properties are selected, users with the roles listed here see
the "Was this article helpful?" rating in article view.
All roles listed here must also be listed in the List of
roles that can see an article's rating section..."
property.

Show "Create Incident" link after a Knowledge article is rated not helpful.
(glide.knowman.create_incident_link.display)

Select the Yes check box to display the Create Incident


link after a user rates an article as not helpful.

URL used for the "Create Incident" link after rating a Knowledge article not helpful.
(glide.knowman.create_incident_link)

Enter the URL for the page where users can create an
incident only if the Show "Create Incident" link..."
property is selected.
To find the URL, open the appropriate page, then
right-click the header bar and choose Copy URL.
Highlight the URL that appears and use the browser's
copy and paste feature to place it into this property field.

Configuring Knowledge Properties

116

Show five-star rating option. (glide.knowman.show_star_rating)

Select the Yes check box to display the five-star rating to


users with roles set in the associated property. This
appears only if the Show article rating section...
property is selected.

List of roles (comma separated) that can see five-star rating option.
(glide.knowman.show_star_rating.roles)

Enter role names exactly as they appear in User


Administration > Roles. If both Show article rating
section... and Show five-star rating option properties
are selected, users with the roles listed here see the
five-star rating option in article view.
All roles listed here must also be listed in the List of
roles that can see an article's rating section..."'
property.

Show "Flag Article" option to identify incomplete/inaccurate articles.


(glide.knowman.show_flag)

Select the Yes check box to display the flag article option
to users with roles set in the associated property. This
appears only if the Show article rating section...
property is selected.

List of roles (comma separated) that can flag incomplete/inaccurate articles.


(glide.knowman.show_flag.roles)

Enter role names exactly as they appear in User


Administration > Roles. If both Show article rating
section... and Show "Flag Article" option properties are
selected, users with the roles listed here see the flag
article option in article view.
All roles listed here must also be listed in the List of
roles that can see an article's rating section...'"
property.

Show "Link" URL in Knowledge articles. (glide.knowman.show_links)

Select the Yes check box to have article view include the
Permalink URL that links directly to the article. Users can
easily copy the URL and share it with others.

Show user comments on knowledge articles.


(glide.knowman.show_user_feedback)

Select an option for showing user comments When


article loads, When user clicks link to show comments,
or Never for users with roles set in the associated
property:

List of roles (comma separated) that can see user comments on an article.
(glide.knowman.show_user_feedback.roles)

Enter role names exactly as they appear in User


Administration > Roles. If the Show user comments on
knowledge articles property is selected, users with the
roles listed here see user comments in article view.

Maximum number of user comments displayed on a knowledge article.


(glide.knowman.feedback.display_threshold)

Set a maximum number of user comments to display.

Knowledge Search Properties


Knowledge search properties give administrators control over the search options available to users and the
presentation of search results.

Configuring Knowledge Properties

117

Property

Description

Display advanced search options.


(glide.knowman.advanced_search_options)

Select an option for displaying advanced search options on


knowledge pages.

Collapse/expand advanced search: displays a link that


allows users to show or hide the advanced search options as
needed.
Always hide advanced search: prevents users from
accessing the advanced search options.
Always display advanced search: shows the advanced
search options at all times.

Number of Knowledge search matches returned.


(glide.knowman.search.rowcount)

Set the maximum number of results to return after any search to


prevent performance problems that can occur with unregulated
searches.

Knowledge search result order. (glide.knowman.order.search)

Select the order for displaying search results:

Number of Views: orders search results based on the


Number of days used when summing article views
property.
Relevancy: orders search results based on content that is
similar to the search term.
Last Modified: orders search results based on modification
date.

Show "Refine results" section on Knowledge search results page.


(glide.knowman.show_refine_results)

Select the Yes check box to have the search results page include
the area that lets users filter the results by topics and categories.

Search method used when searching Knowledge from a task or directly in the
Knowledge Base... (glide.knowman.search.operator)

Select the search approach to use when the search term includes
multiple words.

OR query: returns articles that contain at least one word


from the search term.
AND then OR query: first searches for articles that include
all words in the search term (an AND query). If no matches
are found, an OR query is performed.

Other Knowledge Properties


Additional knowledge properties let administrators control general knowledge management features.
Property

Description

When attaching an article to an incident, copy the content into this When a user searches knowledge from a task form (incident, problem, change
field. (glide.knowman.attach.fields)
request, or other) and clicks the article's Attach to Task button, the system
copies the article number and content into the field specified here. For more
information, see Customizing the "Attach to Task" Button.
Knowledge Management logo to display if running out of the
Service-now.com frames.
(glide.knowman.frameless_logo)

Click the reference lookup tool (


) and choose an image file to be displayed
on knowledge pages that are used outside of the ServiceNow application
frames. For example, the logo image selected here appears if you create a
Content Management System site that includes knowledge pages.

Use submission workflow.


(glide.knowman.submission.workflow)

Select the Yes check box to use the knowledge submission workflow instead of
the standard knowledge workflow. If this option is selected, each time a user
creates knowledge from an incident or problem, the content is placed into a
submission record instead of a draft article. Transforming knowledge
submissions into articles follows a specific workflow.

118

Domain 4
Defining Catalog Items
Overview
Catalog items are goods or services available to order from the service catalog. Administrators and users with the
catalog_admin role can define catalog items, including formatted descriptions, photos, and prices.

Defining Catalog Items


To define a catalog item:
1. Navigate to Service Catalog > Catalog Definition > Maintain Items.
2. Click New.
3. Enter the catalog item details (see table).
4. Click Submit.

5. Define variables for the item, if applicable.

Defining Catalog Items

Field

119

Description

Name

Enter the item name to appear in the catalog.

Category

Select a category for the item. Catalog searches only find items that are assigned to a category.

Workflow or
Execution Plan

Select either a workflow or an execution plan (formerly named delivery plan) to define how the item request is fulfilled. If
you select a workflow, the Execution Plan field is hidden. Clear the Workflow field to select an execution plan.

Price

Set a price for the item and select the currency from the choice list.

Recurring Price

Set a price that occurs repeatedly at a regular interval. For example, a printer maintenance service could have a $100.00
monthly recurring price. For details, see Setting Recurring Price.

Recurring Price
Frequency

Select the time frame for recurrence only if the Recurring Price field has an entry. For example, Monthly or Annually.

Omit Price on Cart

Select this check box to hide the item price in the cart and the catalog listing. See Hiding Prices in the Service Catalog.

Active

Select this check box to make this item active (available to be ordered).

Icon

Upload a 16x16 pixel image to appear as an icon beside the item name in the catalog. If no image is uploaded, the default icon
appears beside this item.

Preview Link

Click Preview Item to preview (in a new window) how the current item definition would look in the catalog.

Short Description

Enter text that appears on the service catalog homepage, search results, and the title bar of the order form.

Ordered Item Link

Specify the record defining a link to more information, as shown on the ordered item screen. See Adding Ordered Item Links
for more details.

Description

Enter a full description of the item. This description appears on the item page and when a user points to the item's icon in the
catalog.

Picture

[Optional] Upload an image of the item.

Fields that can be added by personalizing the form:


Template

[Available for Record Producer items only] Select a template to populate the generated record with predefined values.

No quantity

Select this check box to hide the quantity selector for the item. See Hiding the Shopping Cart and Catalog Item Quantity.

No cart

Select this check box to hide the shopping cart for the item. See Hiding the Shopping Cart and Catalog Item Quantity.

Order

Control the ordering of items in category lists.

Related Lists
Variables

Define variables for the item to provide options for ordering the item. See Using Service Catalog Variables.

Variable Sets

Link an existing variable set to the item to provide multiple options for ordering the item. See Service Catalog Variable Sets.

Approved By
Group

Add the groups that have to approve requests for this item. See Approval Rules.

Approved By

Add the users who have to approve requests for this item. See Approval Rules.

Additional
Categories

Add any aditional categories associated with this item, besides the category selected on the form. See Assigning Multiple
Categories.

Defining Catalog Items

120

Assigning Additional Categories


A catalog item may be available from more than one category. For example, a laptop carrying case may be available
from both Laptops and Cases and Accessories.
To assign an item to more than one category, enter one category in the Category field on the Catalog Item form and
the other categories in the Additional Categories related list.

Setting Recurring Price

Additional Categories

A catalog item can have a recurring


price, as well as an initial price. For
example, a subscription to a mobile
phone contract may cost $500.00, with
an $30.00 monthly recurring price. The

recurring price feature is available in the Calgary release.


The price and the recurring frequency are set on the catalog item record. After the price and frequency are set, the
recurring price appears in the catalog, catalog search results, the catalog page for the item, the shopping cart, and the
order summary screen.

If multiple items with the same recurring price frequency are placed in the same shopping cart, they are grouped
together. The grouping makes it easier to see how much items cost for each frequency (for example, weekly,
monthly, and annually). If the shopping cart contains items with and without recurring costs, they are grouped
separately.

Defining Catalog Items

On a Request record, recurring prices are grouped by frequency and shown in the Recurring Prices related list. In
the example below, two items each have a monthly recurring cost of $100.00 and their prices are grouped as a single
record of $200.00 monthly. Another item with an annual recurring cost of $500.00 is listed as a separate record.

If a Request record contains multiple items with the same recurring frequency, click the arrow next to the
corresponding Recurring Prices record to view details. In the example below, two items (the mobile phone and the
sales laptop) each have a monthly recurring cost and are grouped together under the Monthly Recurring Prices
record, but listed separately when the Recurring Prices record is expanded. Only one item has an annual recurring
cost.

121

Defining Catalog Items

122

Hiding the Shopping Cart and Catalog Item Quantity


To hide the shopping cart or quantity for a service catalog item:
1.
2.
3.
4.

Navigate to Service Catalog > Catalog Definition > Maintain Items.


Select the catalog item.
Personalize the form to add the No quantity and No cart fields.
Select the No quantity check box to hide the quantity selector for anyone ordering that item.

Alternatively, you can make the quantity selector visible to certain roles with the List of roles
(comma-separated) that can use the quantity selector in the shopping cart property
(glide.sc.allow.quantity ) on the Service Catalog Properties page.
5. Select the No cart check box to hide the shopping cart for the item.

Catalog item definition

Defining Catalog Items

123

Visible quantity and


shopping cart

Hidden quantity and shopping cart

Defining Item Quantities


By default, the service catalog offers quantity choices from 1 to 5, allowing customers to select item quantities
within that range. This quantity selection applies automatically to all items, assuming these items do not have the
quantity selector hidden).
To increase or reduce the quantities that a customer can select for catalog items:
1. Navigate to System Definition > Choice Lists.
2. Filter the list for records with Table set to sc_cart_item and the Element set to quantity. The existing quantity
choices appear.
3. Add quantity choices, modeling them after the existing ones.
For example, to increase the
quantity range from 1-6, add a
new "6" record.

Choice lists

To reduce the quantities available for


catalog items, delete the relevant
quantity records. For example, to
reduce the quantity range to 1-3, delete

the records for "4" and "5".

Adding Ordered Item Links


Catalog administrators can provide a link on the ordered item screen, linking to more information about an item.
After users order the item, they can click the link to receive details about the item. The URL text and link can be
defined once and reused across multiple items - for example, for standard ordering terms and conditions. Ordered
item links are available in the Calgary release.
Links are rendered with an added parameter providing the sys_id of the requested item. For example, if the link is
mylink.com, it is rendered as mylink.com?req_item=abcde12345. This can be useful for virtual provisioning
situations.
To create an ordered item link:
1.
2.
3.
4.
5.
6.

Navigate to Service Catalog > Catalog Definition > Ordered Item Links.
Click New.
Enter a Name for the ordered item link.
Enter Link text to display as the link. For example, Click here to see more information about the iPhone.
Enter the exact Link URL. For example, http://www.mylink.com.
Click Submit.

Defining Catalog Items

124

To add an ordered item link to an item:


1.
2.
3.
4.
5.

Navigate to Service Catalog > Catalog Definition > Maintain Items.


Click an item Name.
In the Ordered Item Link field, click the reference lookup icon.
Click an ordered item link Name.
Click Update.

Editing Catalog Items from the Service Catalog


To edit a catalog item from the service catalog listing, right-click the header and select one of the following options:

Personalize Variables: add or remove variables from an item.


New Variable: create a new variable for the item.
Personalize Item: edit the item definition.
Personalize Client Scripts: edit the catalog client scripts for the item.
Personalize UI Policies: edit the catalog UI policies for the item.

Catalog item listing

Record Producer

Record Producer
Overview
A record producer is a specific type of catalog item that allows end users to create task-based records (such as
incident records) from the service catalog. Record producers provide a simplified alternative to the regular
ServiceNow form interface for creating records.
Note: ServiceNow does not recommend creating Requested Item records from record producers. Requested Item records should only
be created using catalog items.

Defining a Record Producer


To define a record producer:
1.
2.
3.
4.

Navigate to Service Catalog > Catalog Definition > Record Producers.


Click New or select the record producer to edit.
Fill in the fields on the Record Producer form (see table).
Click Submit.

After you submit the form, ServiceNow adds the Variables and Variable Sets related lists.
5. Open the record again to define variables for the record producer.

125

Record Producer

126

Field

Description

Name, Category, Order, Icon, Roles,


As for standard catalog items.
Active, Short description, Description, Picture
Table name

Table in which the record producer creates records.

Template

Static assignments for fields on the created record.

View

CMS views in which the item is visible.

Preview Link

Link that opens a preview of the item.

Script

Scripts that should be run to dynamically assign values to specific fields on the created record.

Populating Record Data


To populate data with a record producer, use any combination of the following methods:
Create a variable on the record producer with the same name as the field in the target record. For example, a
variable named caller_id on a Create a New Incident record producer populates the caller_id field on the
new incident record.
Define a template to assign a static field value for all records created by the record producer.
Define a script that uses any variable or server-side objects and functions to assign values.
Use current.*FIELD_NAME* to reference fields on the record being created.
Use producer.*VARIABLE_NAME* to reference values entered by the end user.

Redirect After Submitting a Record Producer


To redirect an end user to a particular page after submitting a record producer, define the redirect link in the Script
field using producer.redirect. For example, the following code redirects a user to their homepage after the record
producer is submitted:
producer.redirect="home.do";

Using Service Catalog Variables

127

Using Service Catalog Variables


Overview
Administrators and users with the catalog_admin role can create service catalog variables and add them to a service
catalog item, to provide options when ordering that item. The variables define questions to ask the customer ordering
the catalog item.

Creating Variables for Catalog Items


1.
2.
3.
4.

Navigate to Service Catalog > Maintain Items.


Select the desired catalog item.
In the Variables related list, click New.
Select the variable type - some additional fields may be displayed depending on the type, see Variable Types for
more information about extra fields.
5. Fill in fields (see table).
6. If applicable, apply roles to control
who can create, read, or update the
information in the variable.
7. Click Submit.
Standard fields available are:

Variable Definition

Field

Description

Name

A unique name for the variable

Order

A number defining the order in which that variable appears.

Cat item

The catalog item using the variable.

Include none

An option to include or exclude None as a selection choice for the variable (available for some variable types only).

Question

The question to display to the end user.

Show help

[Optional] An option for providing additional information when the user requests it. See Defining Help Information for
information about setting up this additional information.

Default value

The default value for the variable.

Active

An option for making the variable active (available).

Mandatory

An option for making the variable mandatory as part of the ordering process.

Global

An option to show the variable in all catalog tasks within service catalog workflows or execution plans by default. The variable
must be attached to individual catalog tasks if this option is not selected.

Using Service Catalog Variables

Visible on
Bundles

An option to display the variable on bundles.

Visible on
Guides

An option to display the variable on order guides.

Visible
Elsewhere

An option to display the variable on other types of catalog items (such as content items and record producers)

Defining Help Information


To include help information for a variable:
1. Select the Show help option.
Additional fields appear, to define the Help tag and Help text.
2. In the Help tag field, enter the short descriptive text that should appear between the question and the responses.
For example, Click here for help or More Information.
3. I n the Help text field, enter the expanded help text that appears when the user clicks the Help tag.

128

Using Service Catalog Variables

Applying Roles
Apply role-based restrictions to a catalog variable to control which users can create, write (update), read, and delete a
value for the variable.

This example shows that, for the the CPU Speed variable used by the Executive Desktop catalog item, only users
with the itil role can write (update) or create a value for that variable.
Note: You may need to personalize the variable form to add the Create / Read / Update / Write roles fields

To add role-based restrictions to a variable, click the lock icon by each field and select the roles that should have the
associated access to a value for the variable:

129

Using Service Catalog Variables

130

Defining Question Choices


Some variable types present the user with a list of choices. For example, a multiple choice variable (such as What
kind of email account do you want?) requires you to define the available choices (such as Exchange and UNIX).
To define question choices for a
variable:
1. Open the variable definition.
2. In the Question Choices related
list, click New.
3. Enter the question choice details
and save the record.
Question choice

Price: and Recurring price:


variables may affect the item's

price and recurring price (if used).


Order: the number defining the order this appears when displayed.
Question: the actual question being asked for that variable.
Text: the choice presented to the user.
Value: the value stored in the database.
4. Repeat steps 2 - 3 for each available choice, to define the full set of choices for that variable.

Question choice

Service Catalog Order Guides

131

Service Catalog Order Guides


Overview
An order guide gives customers an easy way to order multiple related items as a single request, It uses :
A single initial screen, where the customer fills in some initial information.
A set of selected catalog items based on conditions derived from the initial information.
For example, a New Employee Hire order guide contains items that new employees typically receive, from which the
customer selects appropriate items and options. If the new employee selects the optional business cards, that item is
then included as part of the request.

Creating Order Guides


To create an order guide:
1. Navigate to Service Catalog > Catalog Definition > Order Guides.
2. Click New.
3. Enter these order guide details and save the record.
Name: enter the guide name to appear in the catalog.
Order to cart: select the check box to allow users to continue shopping after completing the order guide.
When this check box is selected, users see the Add to Cart button instead of the Check Out button on the
order guide (you may need to personalize the form to add this field).
Two step: select the check box to enable two step ordering (rather than the default three step ordering).
Category: select the category heading under which the guide appears.
Short description: enter a summary of the order guide purpose.
Description: enter a description that appears on the first page of the order guide. Apply formatting by using
the HTML editor.
4. Define any cascading variables.
5. Define any rules for including items in the order guide.

Enabling Two Step Order


Guides
By default, order guides present the
user with a three step process:
1. Describe Needs: the initial screen
2. Choose Options: filling in details
for the items ordered
3. Check Out: review and, if
necessary, edit item information
before submitting the request
Order guide definition

Order guides allow for an optional two


step mode that omits the Check Out
step. Upon completion of the Choose

Options step, the selected items are automatically ordered.


To set an order guide to use the two step checkout model, select the Two step check box in the Order guide form.

Service Catalog Order Guides

132

Adding Cascading Variables


You can add cascading variables to an order guide, to be used by catalog items requested.
1.
2.
3.
4.

Open the order guide definition.


In the Variables related list, click New.
[Required] Enter a Name so this variable can be used in the rule base.
Enter the remaining variable details and save the record.

Order guide cascading variable

Note: These variables must have corresponding variables defined in the relevant catalog items. See Cascading Order Guide
Variables for more information.

Creating Rules
The rule base lists all the rules that apply to the order guide. These rules determine the conditions under which items
are included in the order guide.
To create rules for an order guide:
1. Open the order guide definition.
2. In the Rule base related list, click
New.
3. Set these values:
Rule base

The item to include in the order guide if this rule is true.


The position within the order guide to place this item.
4. Click Submit.

One or more conditions that


must be true for this rule to
apply.

Service Catalog Order Guides

133

Setting rule conditions


Any question asked of the user in the order guide can be used as part of a condition.
For example, this rule states that if the new employee's job title is CEO or CFO or CTO or Director, and the
department is IT, then an executive desktop is included in their New Hire order.
This rule states that if the new
employee selects the business_cards
check box, then business cards appear
in the order.

Example 1

Example of use
This example shows an order guide in
operation.
1. The system prompts the user for
information:
Example 2

2. The system uses the rule base to


generate options:

Order guide

Service Catalog Order Guides

134
3. The user configures each item:

Order guide

4. The system takes the user to


checkout:

Order guide

Service Catalog Order Guides

135

Order guide

Defining a Service Catalog Workflow


Overview
Use the Graphical Workflow Editor to create service catalog workflows that drive catalog request fulfillment.
After creating a workflow, attach it to any catalog item in the Workflow reference field on the item form.
Creating a workflow involves:
Defining the new workflow fields.
Defining workflow activities.
Publishing the new workflow.

Defining a Service Catalog Workflow

Defining a Service Catalog Workflow: Example


This section defines an example service catalog workflow to fulfill a laptop request.
See the standard workflow documentation for more information about defining workflows.

Stage 1: Create a New Workflow


1. Navigate to Workflow > Workflow Editor.
2. Select New.

3. Fill in the New Workflow form (see the table for field descriptions).
4. Click Submit.
ServiceNow displays a graphical representation of the new workflow that shows an Activities pane on the
right.

136

Defining a Service Catalog Workflow

Field

137

Input Value

Name

Laptop Fulfillment

Table

Requested Item [sc_req_item] Please keep the following information in mind:

Workflows on the Service Catalog Requested Item [sc_req_item] table should fulfill the request of a single catalog item. Each
requested item can trigger its own fulfillment workflow, which runs when those specific items are ordered. We recommend you
use this table for workflows for requested items.
Note: To enable approval-type workflows to operate smoothly, make sure that the appropriate users have the correct role,
and that the role grants access to the necessary tables for users in all the relevant departments and domains.

Workflows on the Request [sc_request] table always run when a service catalog request is made, regardless of what item was
ordered. These workflows usually control the entire request process, which may involve delivering several parts (the request
items). So Request table workflows are not usually assigned to a specific item from the maintain item form. If you do use the
Request table for service catalog requests, you should add conditions to the workflow to make sure it only runs when the correct
item is requested.

Run after bus. Select this check box. This is required to assure that a workflow with approvals runs properly. If this field does not appear, it must
rules run
be added. To personalize this form, submit it, then navigate to Workflow > Workflow Versions, select one of the workflows, and
personalize the form as normal.
Expected
time

Days 7 Hours 00:00:00. Because workflows cannot calculate the end time (not all of the activities within the workflow have defined
times), the Expected time on the workflow becomes the Delivery Time on the catalog request.

Schedule

8-5 weekdays. See Using Schedules for more information.

Timezone

US/Pacific. The timezone that the schedule applies to.

Description

A workflow for the fulfillment of laptop requests.

Stage 2: Add Activities


1. In the Activities pane, expand Approvals and drag the activity Approval - User onto the arrow between Begin
and End.
This activity generates an approval from the manager of the person requesting the laptop.
2. Fill in the form that appears with:
Name: Manager's Approval
Stage: Waiting for Approval
User: Click the lock icon ( ), and then click the variable picker icon (
For > Manager.

). Select Request > Requested

3. Click Submit.
4. Expand Utilities in the Activities pane and drag the activity Set Values to the space below the approval.
5. Drag from the yellow box beside Rejected on the Approval - User activity to the new Set Values activity.
6. Drag again from the yellow box beside Always on the Set Values activity to End.

Defining a Service Catalog Workflow


This activity marks the request as rejected if the manager rejects the request and then ends the workflow.
7. Fill in the form that appears with:
Name: Rejected
Stage: Completed
Set These Values: Approval and Rejected

8. Drag the activity Set Values onto the the arrow between Approval - User and End, and the fill in the form.
This activity marks the request as approved if a manager approves it.
Name: Approved
Stage: Fulfillment
Set These Values: Approval and Approved
9. Drag the activity Create Task onto the arrow between Approved and End, and then fill in the form.
This task tells Procurement to procure a laptop for the user.

Name: Laptop Procurement


Stage: Fulfillment
Task type: Catalog Task [sc_task]
Priority: 3 - Moderate
Fulfillment group: Procurement
Short description: Procure a Laptop

10. Drag the activity Notification onto the arrow between Laptop Procurement and End, and then fill in the form.
This task informs the requester that their laptop has been procured.
Name: Procurement
Stage: Fulfillment

138

Defining a Service Catalog Workflow


To: Click the lock icon ( ), and then click the variable picker icon (
Subject: Your laptop has been procured.

139
). Select Request > Requested For.

11. Drag the activity Create Task onto the arrow between Procurement and End, and then fill in the form.
This task tells Hardware to configure the laptop and prepare it for use.

12.

Name: Set Up Laptop


Stage: Fulfillment
Task Type: Catalog Task
Priority: 3 - Moderate
Fulfillment Group: Hardware
Short Description: Set Up Laptop
Drag the activity Create Task onto the arrow between Set Up Laptop and End, and then fill in the form.
This task tells the requester to come pick up the laptop.

Name: Pick Up Laptop


Stage: Delivery
Task Type: Catalog Task
Priority: 3 - Moderate
Assigned to: Leave this field blank. The Advanced script assigns this task to the user who requested the item.
Short Description: Pick Up Laptop
Advanced: Select the check box and set the Advanced Script value to:
task.assigned_to=${current.requested_for};
13. Drag the activity Log Message onto the arrow between Pick Up Laptop and End, and then fill in the form.
This leaves a message in the log to record the successful completion of the workflow.
Name: Delivered
Stage: Completed
Message: The laptop delivery workflow is complete.
See Approval and Rollback Activities for more information about activities.

Defining a Service Catalog Workflow

Stage 3: Publish the Workflow


Open the Workflow Actions menu (
) and select Publish to publish the workflow.
The resulting workflow should look like this:

140

141

Domain 5
System Update Sets
Overview
An update set is a group of customizations that can be moved from one instance to another. This feature allows
administrators to group a series of changes into a named set and then move them as a unit to other systems. In most
cases, update sets allow customizations to be developed in a development instance, moved to a test instance, and
then applied to a production instance.
Before using the System Update Sets application, review the Getting Started with Update Sets guide.

Enhancements
Calgary
The following enhancements have been added as of the Calgary release:
You can now change the Active field on a tracked table and still receive subsequent upgrades to the rest of the
record.
A new dictionary attribute (update_exempt) allows you to specify additional fields that you can change
without skipping subsequent updates to the rest of the record. See Excluding Fields from Updates.
A new field (replace_on_upgrade) in the Customer Updates [sys_update_xml] table determines whether a record
with customer changes should be upgraded to the next software version. This field works with the new
update_exempt dictionary attribute, which allows you to exclude fields from updates.
Update records are modified to include application file records. This feature allows update sets to track and
transfer the customized record and its file record in a single update record. Preview and compare do not detect
differences in application files, and application file records on the target system are automatically overwritten
when you commit an update set.
You can navigate between a customer update record and the customized object or the application file for the
object.
When you preview a remote update set, the message now indicates whether errors or warnings are detected.
If any changes are marked as Skip, a confirmation message appears when you commit the update set.
Update sets preview now indicates an error if a type mismatch is detected between a column on the target instance
and in the update set.
Changes that will result in data loss are automatically skipped when you commit an update set. A warning is
added in the update log when a change is skipped.

System Update Sets

Aspen
The following enhancements have been added as of the Aspen release:
You can now compare versions and revert changes to objects on a table with the update_synch attribute
(such as business rules). See Comparing Versions. The Versions [sys_update_version] table has been added to
support this feature.
The preview function now detects a Problem if an updated object does not exist on the local system or in the
current update set. See Resolving Problems. The Update Problems [sys_update_preview_problem] table has been
added to support this feature.
The BaseLine update set has been removed.
A new access control rule restricts the ability to delete update sets.
A warning message now appears when a Customer Update (sys_update_xml) entry is deleted.
Customer updates (sys_update_xml records) with no Update Set value are no longer ignored during an upgrade.
Reports are available for tracking customer updates. See Reporting on Updates.
A UI Policy has been added to make sys_m2m (many-to-many) fields mandatory.

Developing Customizations with Update Sets


A common process for developing customizations with update sets is:
1.
2.
3.
4.
5.
6.

Create an update set on the development instance.


Make customizations and changes on the development instance.
Mark the update set as Complete.
Log in to the test instance and retrieve the completed update set from the development instance.
Commit the update set on the test instance, and test customizations thoroughly.
If the update set has problems in the test instance, repeat steps 1 - 6 to develop the fix on the development
instance with another update set.
7. Log in to the production instance and retrieve the completed update set from the development instance. If the
update set required a fix, retrieve both update sets.
8. Commit the update set on production. If the update set required a fix, commit both update sets in the order they
were made.
To learn more, see Using Update Sets.

Understanding Update Sets


Each update set is stored in the Update Set [sys_update_set] table, and the customizations that are associated with the
update set (entries in the Customer Update [sys_update_xml] table) appear as a related list on the update set record.
When a tracked object is customized, a corresponding record is added in the Customer Updates [sys_update_xml]
table and is associated with the user's current update set. The associated file record is tracked and transfered along
with the customized object in a single update record (Calgary release). A corresponding record is also added to the
Versions [sys_update_version] table (Aspen release).
Administrators can compare two versions and revert to a specific version of an object.
Administrators can suppress versions for specific tables.
Administrators can specify fields on tracked tables that you can change without skipping updates to the rest of the
record.

142

System Update Sets

143
Note: Do not directly modify Customer Updates [sys_update_xml] records.

System-Maintained Update Sets


The Default update set provides system functionality and should not be changed, deleted, or moved between
systems. Use this update set to make changes to an instance without adding the changes to any user-created update
sets.
If a user does not have a current update set selected, changes are tracked in the Default update set.
If the Default update set is marked Complete, the system creates another update set named Default1 and uses it
as the default update set.

Determining Which Customizations are Tracked


Update sets track customizations of only some objects using one of the following methods:
The update_synch attribute on the table
Special handlers for changes that require updates to multiple tables
Manual unloading for homepages
Update sets cannot be used to transfer other system changes or data. In general, update sets capture configuration
information but not task or process data. For example, update sets track service catalog item definitions and related
configuration data like variables and variable choices. However, if you test the service catalog by placing orders, the
orders (requests, items, catalog tasks) are not tracked by update sets.

The update_synch Attribute


To see a list of tables on which customizations are tracked, navigate to System Definition > Dictionary and filter on
attributes CONTAINS update_synch.
A default rule blocks the use of the update_synch attribute on a table for which it is not predefined to avoid the
following issues:
Some core tables require special update handling because they represent information on multiple tables. When the
update_synch attribute is added to these tables, duplicate update records are created, causing major conflicts
that are difficult to troubleshoot and repair.
Using the update_synch attribute to migrate data records between instances can cause performance issues, as
it is not intended for this purpose. To migrate data, use an instance-to-instance import.
Warning: Do not add the update_synch attribute to a dictionary record. When improperly used, this attribute can cause major
performance issues or cause the instance to become unavailable.

System Update Sets

144

Special Handlers
Some changes require special handlers because they represent information on multiple tables. These changes are
packaged into one update set entry so that all records are properly updated when the customization is committed. The
following changes are tracked with special handlers:

Workflows
Form sections
Lists
Related lists
Choice lists
Content pages (in Content Management)
Database changes
System dictionary entries
Field labels

Using Homepages with Update Sets


Homepages are not added to update sets by default. To add a homepage to the current update set:
1. Navigate to Homepage Admin > Pages.
2. Right-click a homepage record.
3. Select Unload Portal Page.

Excluding Fields from Updates


Administrators can specify fields on tracked tables that you can change
without skipping updates to the rest of the record. This feature applies
to changes you make after the Calgary release. During subsequent
software upgrades, the value of the excluded field is preserved, while
the rest of the record receives updates. For example, you may want to
select the Client callable check box for a script include, but still
receive upgrades to the script.
To exclude a field from updates, add the dictionary attribute:
Add the homepage to the current update set

update_exempt

Note:

Values for excluded fields are not retained when you revert customizations to a default software version. For example, you
activate a UI macro and change the XML script. Later, a software upgrade contains a feature for the macro that you would like to
implement, so you revert your customizations. The default version replaces the entire customized version, and you now need to
reactivate the macro.
If you also change a field that is not update_exempt, then updates are skipped for the entire record (the entire customization is
preserved during upgrades).

System Update Sets

145

Tracking the Active Field


By default, the Active field on a tracked table is treated as update_exempt even if the attribute is not present
(Calgary release). To specify that changing the Active field preserves the entire record (it is not excluded), add the
following attribute to the Active field on the table:
update_exempt=false

Overwriting Customizations During Upgrades


When you change any non-excluded fields on a record, a corresponding record is added in the Customer Updates
[sys_update_xml] table and the replace_on_upgrade field is set to false (Calgary release). To prevent
customizations from being overwritten by system upgrades, the upgrade process automatically skips changes to these
objects.
You may want to overwrite your customizations with the next software version. For example, you may change a
script to implement a temporary workaround for a problem that is fixed in the next version. You would want to
overwrite your workaround with the default version to ensure that you receive any future enhancements to the script.
1. Enter sys_update_xml.list in the navigation filter.
2. Open the most recent update record for the customized object. For example, to find the update record for the
ArrayUtil script include, filter by Target name is ArrayUtil and find the most recently created record.
3. Personalize the form to add the Replace on upgrade field, if necessary.
4. Select the Replace on upgrade check box and click Update.

Application and Modules


The following modules are included in the System Update Sets application:

Update Source: defines the instances from which to retrieve update sets. See
Transferring Update Sets.

Retrieved Update Sets: lists the update sets that have been retrieved from update
sources.
Update Log: shows the history of committing update sets.

Local Update Sets: lists the update sets created on the instance. See Creating
Update Sets.
Merge Update Sets: provides the ability to merge update sets.
Enable Update Set Picker: enables the Update Set picker in the navigation header.
Disable Update Set Picker: disables the Update Set picker.

System Update Sets application

Granting Access to the Update Set Picker


Use the Update Set picker to select the update set in which you track customizations.

System Update Sets

146
To remove the Update Set picker, navigate to System Update Sets >
Disable Update Set Picker. To restore it, navigate to System Update
Sets > Enable Update Set Picker.

Update Set Picker

By default, only administrators can use the Update Set picker. To grant
access to additional users:

1. Navigate to sys_properties.list.
2. Create a new property:
Name: glide.ui.update_set_picker.role
Value: enter the role that has access to the Update Set picker (in addition to administrators).
Note: This property accepts only one role. To give access to multiple roles, create a new role (example,
update_set_picker) and include that role in the roles that need access.
3. Click Submit.

Suppressing Versions
Administrators can suppress entries in the Versions table by setting a property.
1. Navigate to sys_properties.list.
2. Create a new property:
Name: glide.update.suppress_update_version
Type: string
Value: enter a comma-separated list of tables for which updates are not tracked in the Versions
[sys_update_version] table. You cannot compare and revert versions for tables in this list. The default value is
sys_user,sys_import_set_row.

Getting Started with Update Sets

Getting Started with Update Sets


Overview
Because update sets make changes to an instance, review the following best practice information to avoid errors and
performance issues. Learn how to plan the update process and avoid common pitfalls.

Planning the Update Process


Before working with update sets, create a standard process for moving customizations from instance to instance.
Review the following items to ensure that there are no problems during the update set process:
1. Check that both instances are the same version.
Customizations may not work if they rely on code that has changed between versions.
2. Determine the changes to make in a single update set.
ServiceNow recommends limiting update sets to a maximum of 100 records. This maximum value helps to
prevent conflicts and makes reviewing the update set easier.
3. Ensure that all base system records have matching sys_id fields.
Some base system records are created on an instance after provisioning and do not match between different
instances, leading to problems with update sets. The best way to avoid this issue is to:
1. Provision production and sub-production instances.
2. Clone the production instance onto the sub-production instance.
4. Identify a common path for update sets to move from instance to instance and maintain that model.
Never migrate the same update set from multiple sources. Best practice is to move update sets from dev to test
and then from test to production.
5. Plan for when to commit the update set to production.
Avoid committing an update set to a production instance during business hours. The instance may perform
slower temporarily as the update set applies.
6. Make sure update set names are clear.
Create a naming convention to coordinate changes from multiple developers and to reference when
committing the changes to another instance.
If update sets are being generated as fixes for problems, consider including the problem ticket in the name (for
example, PR10005 - Duplicate Email Issues Fix).
If more than one update set is needed to address a problem, include a sequence number in the naming
convention so that update sets are applied in the order that they were created (for example, PR10005 Duplicate Email Issues Fix and PR10005.2 - Duplicate Email Issues Fix).
7. Know which customizations are carried over and which are not.
Not all changes to an instance are tracked by update sets.
Learn how to determine which customizations are tracked.
Review the base system tables for which customizations are tracked.
Update sets do not remove columns or fields. Perform these tasks manually on the target instance if they are
crucial to the customization.
Review Backing Out Update Sets to see which customizations can be reversed once applied.
8. Before making any customizations, double-check that the correct update set is selected.

147

Getting Started with Update Sets

Avoiding Common Pitfalls


In addition to planning the process, make sure to avoid common pitfalls:
1. Do not delete update sets.
If an update set is deleted, any updated records may be overwritten in the next update.
2. Do not include the system_id field from the ldap_server_config record in an update set.
An update set from a working configuration points to the wrong system_id node for the target instance and
does not work.
3. Do not back out the Default update set. This action causes damage to the system.
4. Never change the update set field value (update_set) in a Customer Update record (sys_update_xml).
If a customization is made in the wrong update set, take the following action:
1. Switch to the desired update set.
2. Modify the object (record) that was originally changed. You can make a trivial change, such as personalizing a
field.
3. Save the record.
4. Back out the change just performed, and then save the record again.
This action ensures that the latest version of the object is included in the desired update set and prevents
duplicate updates for the same object in a single update set.
5. Do not mark an update set as Complete until it is ready to migrate.
Once an update set is complete, do not change it back to In progress. Instead, create another update set for the
rest of the changes, and make sure to commit them together in the order that they were created. Naming
conventions may help in this case (for example, Performance Enhancements and Performance
Enhancements 2).
6. Do not manually merge updates into an update set.
Always use the Merge Update Sets module. This tool compares duplicate files between update sets and
selects the newest version. Only update sets that are In progress can be merged.
7. If a committed update set has a problem in the test instance, build the fix in another update set in the development
instance. Commit this set to the test instance, and then make sure both sets are migrated to the production instance
and committed in the order they were made.
8. Always preview an update set before committing it.
9. Set completed update sets on the production instance to ignore.
This state ensures the update set is not reapplied when cloning the instance.
10. Keep a to-do list of manual changes and data loads that need to be completed after an update set is applied.
11. Do not allow your update set to grow too large.
Limit update sets to 750 entries or less per update set.
12. Do not make too many changes at one time.
Verify that the correct changes have been made incrementally.

148

Using Update Sets

149

Using Update Sets


Overview
An update set is a group of customizations that can be moved from one instance to another. For example, a set of
enhancements to incident management can be grouped in an update set called Incident Management 2.0. While
Incident Management 2.0 is marked as the current update set, all changes are tracked in it. Once the update set is
marked as complete, it is ready to be moved to a test or production instance.
Each update set is stored in the Update Set [sys_update_set] table, and the customizations that are associated with the
update set (stored in the Customer Update [sys_update_xml] table) appear as a related list on the update set record.
The general process for using update sets is:
1. Review the Getting Started with Update Sets page to learn how to plan the update process and avoid common
pitfalls.
2. Use update sets to make customizations on a development instance.
Create an update set.
Perform customizations.
If necessary, report on updates.
If necessary, merge update sets.
Compare local sets to ensure the desired changes are ready to move.
3. Mark the update set as Complete.
4. Transfer the update set to another instance according to your test process. See Transferring Update Sets.

Creating Update Sets


To create a new update set:
1. Navigate to System Update Sets > Local Update Sets and click New.
2. Enter update set details (see table).
3. Click Submit.

Update set record

Field

Description

Name

Enter a unique name for the update set. You can use naming conventions to organize update sets. For example, add the problem
number to the name of the update that fixes it, or use sequence numbers to keep track of the order in which update sets need to be
committed. To learn more, see Getting Started with Update Sets.

State

Select In Progress for a new update set.


In Progress update sets can track customizations and can be selected from the Update Set Picker. Completed update sets can be
transferred from one instance to another.
Select Completed only when you are certain that the update set is complete. Once it is marked Completed, do not set it back to In
Progress. Instead, create a new update set with further customizations, and make sure to commit the update sets in the order that they
were marked Completed.
Select Ignore when you are no longer working on an update set but do not want it to be transferred to another instance. You should
always set Completed update sets on the production instance to Ignore. This state ensures the update set is not committed again
when cloning the instance.

Using Update Sets

150

Created By

Automatically populates your user name when you submit a new update set record.

Created

Automatically populates the timestamp when you submit a new update set record.

Release Date Enter the date on which you plan to release the update set.
My Current
Set

Select the check box to add your customizations to this update set. This field does not apply to all users; it only applies to the user
who selects it.
The Update Set Picker is a better method for choosing a current set because it appears at the top of the page and allows for easy
switching between In Progress update sets.

Description

Enter a description of the update set.

Performing Customizations with Update Sets


To add changes to update sets:
1. Select the desired update set from the Update Set Picker. Any customizations you make are now added to this
update set.
2. Perform a customization on a tracked table.

Comparing Versions
Update Set Picker

You can compare versions of any object for which changes are tracked,
such as a form, list, or business rule. This feature is available with the
Aspen release. Administrators can suppress versions for specific tables.

To compare versions of an object:


1. Use one of the following methods to view a list of versions for an object.
For forms or lists, right-click the header and select Personalize > Form Layout or Personalize > List
Layout. Under Related Links click Show Versions.
For tables that use the update_synch attribute (such as business rules), add the Versions related list to the form.
2. Select the check boxes next to the two versions to compare.
3. In the Actions on selected rows list, select Compare. A
comparison appears. Deletions are highlighted in red, additions in
green, and modifications in yellow.
Select the versions to compare

Compare two versions

Note: Click Revert to this Version to revert to the older version of the object. This option is available only when changes can be
reverted (see Reverting Changes).

Using Update Sets

151

Reverting Changes
You can revert changes, if needed. This feature is available with the Aspen release.
To revert changes:
1. View a list of versions for an object (see Comparing Versions).
2. Right-click a version and select Revert to this version.
3. Click OK to confirm the action.
The selected version becomes the current version.
Note:

You can compare versions before reverting a change.


You cannot revert database changes.
You can revert to the most recent out-of-box version. You cannot revert to an older out-of-box version.

Viewing Changes in an Update Set


To see which customizations are associated with an update set:
1. Navigate to System Update Sets > Local Update Sets.
2. Select the update set name.
3. View the Customer Updates related list.
You can compare any update to the current version. Right-click the update record and select Compare to
Current.

Navigating Updated Records


You can navigate between a customer update record and the
customized object or the application file for the object (Calgary
release).
Navigate from an update record to:
Update set with changes to the incident list
layout and and the mark_closed business rule

The customized object, such as the application menu record, by


clicking the Show Related Record related link.

The application file record for the object by clicking the Show Application File related link.

Using Update Sets

152
Navigate from a customized object or
an application file to the current
customer
update
record
by
right-clicking the form header and
selecting Show Latest Update.

Show Related Record

Reporting on Updates
Run a report to view
customizations to an instance.

the

To view update set reports:


1. Navigate to Reports > View / Run
and locate the Customer Update
section.

Show Latest Update

2. Run any of the available reports or


create a new report. The following
reports are available with the Aspen
release.

Application Changes (Incident): displays all changes made to the incident table. Select a different table and
run the report again to view all changes to another application.
My Changes: displays all changes made by the current user, grouped by table name.

Merging Update Sets


You can merge multiple update sets into one for easy transfer.
To merge update sets:
1.
2.
3.
4.

Navigate to System Update Sets > Merge Update Sets.


Use the slushbucket to select the update sets to merge.
Enter a name for the new update set. Updates are added to this set when the original sets are merged.
Click Merge selected.
The new update set is created and changes from the original sets are moved to the new set. Only changes that
are not merged into the new set remain in the original sets.

Using Update Sets

153

If the same object is updated in both sets (for example, both update sets modify the Incident form), only the
most recent change is moved to the merged update set. The other update remains in its original update set to
provide a record of the changes that were not moved. You may want to validate that the correct changes were
moved to the new set by viewing the update set.
After merging and validating, it is a good idea to delete or empty the original update sets to avoid committing
an older change by mistake. The system does not remove the updates that were not merged into the new set.

Comparing Local Update Sets


System Update Sets Preview enables administrators to preview local
and remote (retrieved) update sets and compare these sets with one
another to resolve conflicting changes. Compare local update sets to
identify collisions and ensure that the proper changes are being
committed. Resolve all conflicts before moving an update set between
instances.
Merge update sets

1. Navigate to System Update Sets > Local Update Sets.

2. Select the check boxes beside the update sets to compare.


3. In the Action choice list, select Compare Update Sets.
The progress screen appears as ServiceNow generates the collision report.

4. Click Go to the Collision Report when the report is complete.


The Update Set Collisions list appears, showing all the changes in the selected sets.
5. Inspect the list for collisions by locating duplicate Collision Numbers that show the same change in separate
update sets.

6. Resolve the collision by deleting the unwanted update record from one of the update sets.
a. Click the link in the Sys update column for the unwanted update (sys_ui_list_incident_null in our
example).
b. Click Delete.
Note: You must open the update record to delete the record. You cannot delete the update by selecting
the check box beside the entry in the Update Set Collisions list and using the Delete action. When you
delete the update record, the customization is not backed out of the instance. Only the record of the
customization is deleted.

Using Update Sets

7. Run the comparison again to make sure all the collisions have been resolved.

Understanding Collisions
A collision is an update that has a newer update locally.
Most updates are compared by name, except for table records that have a different "sys_id" on another system as part
of their name. This does not include table records in the base system or table records created in one system and
moved to another system, but only table records created separately in each system.
Some of these records may include:

System Properties [sys_properties] table


Configuration Item tables
Knowledge Base tables
Report tables
Homepage Admin tables
Service Catalog tables: Category [sc_category] table and Catalog Items [sc_cat_item] table
System Policy tables: Email Notifications [sysevent_email_action] table and Assignment Rules
[sysrule_assignment] table
System Definition tables: Application Menus [sys_app_application] table, Business Rules [sys_script] table, and
Client Scripts [sys_script_client] table

154

Using Update Sets

Completing Update Sets


When you have completed the customizations and compared local update sets to resolve conflicts, mark the update
set as Complete.
1. Open the update set record.
2. Change the State of the update set from In progress to Complete.
The update set is available for other instances to retrieve. See Transferring Update Sets.
No additional customizations are tracked in the update set.

Transferring Update Sets


Overview
An update set is a group of customizations that can be moved from one instance to another.
The general process for using update sets is:
1. Review the Getting Started with Update Sets page to learn how to plan the update process and avoid common
pitfalls.
2. Use update sets to make customizations on a development instance. See Using Update Sets.
3. Transfer the update set to another instance according to your test process.
Retrieve the update set.
Preview the update set to resolve any conflicts.
Resolve any problems.
4. Commit the update set and test customizations.
5. If necessary, back out or delete the update set.
6. Repeat steps 3 5 as necessary to complete the test process and to commit the customizations to production.

Retrieving Update Sets


To retrieve a completed update set from another instance:
1. [Optional] If IP address access control is enabled on the source instance, set up the target instance as an
exception.
2. Navigate to System Update Sets > Update Source and click New to define an update source. Populate the fields
as follows:
Name: enter a unique name that indicates which instance from which this update set source will pull update
sets.
Type: specify whether the source instance is a Development, Test, or UAT instance.
URL: specify the URL of the source instance.
Note: make sure the URL begins with https:// or http:// (whichever is appropriate for the connection) or the
synchronization may fail.
Username select the username for logging in to the source instance.

155

Transferring Update Sets


Password: enter the password for the username specified. The user account specified must have the admin
role.
Short Description: enter any other relevant information about the data source.

3. Right-click the header bar and select Save.


4. Click Retrieve Completed Update Sets. This brings any update sets marked as Completed from the source
instance to the target instance.
5. Navigate to System Update Sets > Retrieved Update Sets.
The update sets from the source instance are now on this table.

Transferring with IP Access Control


If IP address access control is enabled on the source instance, complete the following steps before transferring an
update set:
1. Contact ServiceNow Technical Support to obtain the IP Address for the target instance.
2. On the source instance, navigate to System Security > IP Address Access Control.
3. Add the IP address from step one as an exception.

Transferring with Basic Authentication


If the source instance has basic authentication turned on for SOAP requests, you must use a valid UID and password
pair to pull update sets.

Transferring with an XML File


Update sets can also be unloaded as an XML file and then transferred to any instance. For more information, see
Saving Customizations in a Single XML File.

Previewing Remote Update Sets


System Update Sets Preview compares update sets retrieved from a remote instance to preview sets already saved on
the local instance. Conflicting changes are evaluated by relative age. Administrators must preview update sets and
resolve conflicting changes before committing the update sets.
To compare retrieved update sets:
1. Navigate to System Update Sets > Retrieved Update Sets.
2. Select an update set from the list.
3. Under Related Links click Preview Update Set.
Note: You must preview the update set before you can commit it.

156

Transferring Update Sets


ServiceNow displays a preview of the selected update set and compares the changes with retrieved and local
update sets in the instance. If a change is shared by another update set, the change is marked with one of the
following Dispositions, depending on which change is the newest:

Update
Insert
Delete
Collision/Update
Collision/Insert
Collision/Delete
A change appears as a collision in the update set you are viewing if the change is older than the same change
in another update set. Newer changes in the current update set are marked as updates. In the following
example, Incident Release 1 is the retrieved update set. The Update Set Preview shows a Collision/Update
between the change to the Change Request form sections in the Incident Release 1 update set and a newer
change in the Production Incident update set. Conversely, the change to the Change Request form layout in
the Incident Release 1 update set is newer than the same change in the local Production Incident update set
and is marked as an Update.

4. To view the conflicting updates, click the highlighted collision link in the Disposition column.
The two versions of the record are displayed with the differences marked by a color key. The change types are:
Modified, Added, or Removed.

157

Transferring Update Sets

158

5. To resolve the collision, select either Commit or Skip from the list in the Proposed action field.
Remember that the perspective here is that of the retrieved (remote) update set, and this action either accepts
or rejects the change from the remote update set. The default proposed action for resolving a conflict is Skip.

6.
7.
8.
9.

Click Update to save the action.


Select each collision and determine the action to take, until all collisions have been resolved.
Preview the update set again and resolve any problems that are detected (available with the Aspen release).
Run the comparisons again to make sure the correct updates are being applied.

Resolving Problems
The preview function detects a problem if an updated object does not exist on the local system or if the object exists
in another update set that has not been applied. For example, an update modifies the form layout for a table that has
not been created in the local instance. Resolve all problems before committing an update set to an instance.
This feature is available with the Aspen release.
To resolve problems:
1. Preview the update set. Problems are noted in the Problem column of the Update Set Preview list, as follows:
Error: the object does not exist on the system. Note that this function compares the display name and not the
sys_id for groups. Alternately, a type mismatch is detected between a column on the target instance and in the
update set (Calgary release). For example, the target instance has a field called due_date of type date and the
retrieved set has the same field with a type string.
Warning: the object exists in another remote update set that has not been applied.
2. Open a preview entry for which a problem is detected.
3. View the Update Problems related list to see what objects are
missing or mismatched.
Problems detected in an update set

You may need to personalize the form to add the related list.

Transferring Update Sets

159
4. Resolve the problem:

Missing objects

To resolve a missing object error, either create the object on the


instance or transfer and commit the update set that creates the
object.
To resolve a type mismatch error, change the field type on the
source instance and transfer the update set again. Or, if the type
change is intentional, change the proposed action for the update
to Commit. Note that changing the data type can result in data
loss.

To resolve a warning, either commit the other remote update set first or move the update to the other update
set.
5. Repeat steps 2 4 for each problem.
6. Preview the update set again to ensure that all problems are resolved.

Committing Update Sets


Warning: Committing an update set can affect performance on an instance and should not be done during business hours.

When you have previewed the update set and resolved any conflicts or problems, commit the update set.
1. Navigate to System Update Sets > Retrieved Update Sets and select the update set from the list.
2. Click Commit Update Set.

3. If any updates have a proposed action of Skip, a confirmation message appears when you commit the update set
(Calgary release).
Click Cancel to return to the preview and reevaluate the change. None of the updates are applied.
Click OK to skip the change and continue committing the changes that are marked as Commit.
A progress screen appears and displays a completion message when the update set has been successfully
committed.

Transferring Update Sets

160

4. [Recommended] Change the State of the update set to Ignore when you are no longer working on it but do not
want it to be transferred to another instance.
You should always set completed update sets on the production instance to Ignore. This state ensures the
update set is not reapplied when cloning the instance.
5. [Recommended] Navigate to System Update Sets > Update log and look for warnings that contain unsafe edit
(Calgary release).
The system automatically skips any changes that will result in data loss, such as changing the type of a field
that contains data. You must manually make any of these changes, if necessary. Use caution when making
changes that affect production data.

Backing Out Update Sets


You can back out changes to existing records. Navigate to the update set record and click Back Out. Once the back
out is complete, the update set is deleted. It is not recommended to back out an update set if other update sets have
been applied more recently.
Impact: Backing out update sets reverses all changes. Carefully review the contents of an update set before backing
it out to avoid causing issues. Do not back out the Default update set as you may damage the configuration of the
instance.
The Back Out button reverses both record-level updates and changes to the dictionary.
The following table illustrates the expected behavior of backing out an update set:
Customer Update

Back out action

A new table

The table is dropped, deleting any data on it.

A new field

The field is dropped from the database, deleting any data on it.

A deleted field

The field is restored to the database, restoring any lost data.

A resized field

The field resize is reversed. If the field has been increased, data is truncated first to avoid errors.

A personalized form The form is reverted to its previous state.


A record is inserted

The record is deleted.

A record is deleted

The record is restored with its original data.

The Back Out button is available only on the most recent update set.

Transferring Update Sets


If backing out an update set as described above is not sufficient, another solution is to create and commit a new
update set to reverse the customizations.

Deleting Update Sets


To undo customizations, back out the update set.
Administrators can delete an update set only when it is empty (no sys_update_xml entries are associated with it) and
is not the current update set. For example, after merging update sets you may choose to delete the original sets. This
function is restricted by an access control rule (ACL) on the Update Set [sys_update_set] table (as of the Aspen
release).
Deleting update sets that contain sys_update_xml entries is restricted because:
It does not undo the updates.
It removes any record of who applied the customizations.
It removes the sys_update_xml entries associated with the update set, so customizations are overwritten when the
instance is upgraded.

Deleting Update Entries


Deleting sys_update_xml entries is not recommended because:
It removes the record of modifications to the instance.
Your customizations may be overwritten when the instance is upgraded.
When you try to delete an update entry, a warning message appears (available with the Aspen release). Click OK to
confirm the deletion.

Upgrades and the Release Cycle


Overview
The ServiceNow release cycle is designed to provide optimal stability and quality, with the flexibility to quickly
address problems and deliver new features. ServiceNow uses the concept of a family for a given feature set. A family
contains:
A feature releases, which contain new functionality and fixes to existing functionality.
Patch releases and hotfixes, which provide problem fixes and are released as needed.
Customers are notified prior to the start of an upgrade rollout period. Release notes are available for all releases.
Customer customizations are typically preserved throughout all upgrades.

161

Upgrades and the Release Cycle

162

Release Terminology
Release Type
ServiceNow uses the concept of a family for a given feature set. A family includes all versions, patches, and hotfixes
for a feature release. For example, Aspen Patch 1 Hotfix 2 is in the Aspen family.
This table defines the types of releases that may be available in a family.
Type

Scope

Upgrade Policy

Feature
release

Introduces new features.1


Includes all available fixes to existing functionality.
Is production-oriented; quality and stability are of the highest
priority throughout the life cycle.

Applied automatically during the rollout period.


Customers receive advanced notification.

Patch
release

Supports existing functionality with a collection of problem fixes.


Includes all previously issued hotfixes for a given release.
Does not include new features.

Applied as needed on a per customer basis.


ServiceNow provides patches for the current and
previous two feature releases.

Hotfix

Supports existing functionality with a specific problem fix for a


feature release.
May not include any previous fixes for a given release.
Does not include new features.

Applied as needed on a per customer basis.


ServiceNow provides hotfixes for the current and
previous two feature releases.

A feature provides a complete solution that customers can implement to add value to their organization. New
features are only available as part of a feature release. Features are supported with patches and hotfixes.

Release Availability
Customers can upgrade instances to current releases. Current releases may be in a state of general availability (GA)
or controlled availability (CA). The following table explains the differences between GA and CA.
All releases are supported with patches and hotfixes for the current release and two prior feature releases.
Controlled Availability
(CA)
Recommended for use in production environments
Fully supported with patches and hotfixes for the current release and two prior feature
releases
Successfully completed quality review, testing, and validation
Customers receive at least 30 days notice before upgrade
Customers can waive 30 days notice to upgrade
Recommended for use by all customers
Recommended for early adopters of new features and fixes

General Availability
(GA)

Upgrades and the Release Cycle

163

Release Cycle (Diagram)


The following diagram illustrates a hypothetical release cycle based on the types of releases that ServiceNow offers.
The example progresses as follows:
1.
2.
3.
4.
5.
6.

New features are released in Feature Release 1.


Hotfix 1 contains fixes for problems in Feature Release 1.
Hotfix 2 contains fixes for different problems in Feature Release 1.
Patch Release 1 contains the fixes in Hotfix 1 and Hotfix 2, plus additional fixes for Feature Release 1.
Hotfix 3 contains fixes for different problems in Feature Release 1.
Feature Release 2 contains the fixes in Hotfix 1, Hotfix 2, Hotfix 3, Patch Release 1, and additional fixes. It also
contains new features.

Release Name & Upgrade Process

A hypothetical release cycle

The Aspen release introduces a new naming convention based on an


alphabetical system (rather than seasons or months). For example, the
first release is Aspen. Hotfixes and patch releases are now the only
interim releases that are available. Previously, releases occurred three
times a year (called February or Winter, June or Spring, and October
or Fall) and interim releases (called Preview or Stable) were available.

ServiceNow introduces a new upgrade process as of the Aspen release. For the first time, early adopters have an
opportunity to install this release before it becomes generally available. Also, upgrades occur over a window of
several weeks, rather than all at once. Customers receive notification before upgrades.

Customer Control over Upgrades


Upgrade Notification Schedule
Customers and partners are notified by email 30 days prior to the start of the rollout period for an upgrade. Release
documentation is available at the time of notification, but specific details may change prior to the upgrade.
Upgrades are rolled out in phases to all instances. Customers are not notified of the exact date or time that a specific
instance will be upgraded.

Customizations
Customer customizations are typically preserved by the upgrade process by the following mechanism.
When an object is customized, a corresponding record is added in the Customer Updates [sys_update_xml] table.
This table maintains the current version information for all objects that have been customized.
To prevent customizations from being overwritten or broken by system upgrades, the upgrade process
automatically skips changes to objects that have a current version in the Customer Updates table.
You may want to overwrite certain customizations when a software upgrade contains a feature that you would like to
implement. To revert a customized object to the system default version, see Reverting Customizations.

Upgrades and the Release Cycle

164

Checking Your Release Version


System administrators can check which release is running on an instance:
1.
2.
3.
4.

Navigate to System Diagnostics > Stats.


Locate the Build name (Berlin release), Build date, and Build tag.
[Available with the Berlin release] Match the build name to the release name in the Release Notes.
Match the build date and tag to the build date and tag in the Release Notes.

Confirming an Upgrade
To confirm that a recent upgrade to a
feature release has been performed:

View Stats or point to the header logo

1. Navigate to System Logs > Events


and find the event
system.upgraded. This event can
trigger the System Upgraded
notification. If the event has a State
of error, the notification is not sent;
however, the upgrade may have
completed successfully.

2. Navigate to System Diagnostics > Upgrade Log and locate the message "Notifying HI that upgrade has been
completed."
Note: To confirm that a patch has been applied, find the system.patched event. You can create a notification for this event; it is not
available by default.

Configuring a Completed Upgrade Notification


To configure an instance to send an email when an upgrade is successfully completed:
1.
2.
3.
4.

Navigate to System Policy > Notifications.


Open the System Upgraded notification.
Select an appropriate contact in the User field.
Click Update.

The selected user now receives a notification when an upgrade is successfully completed.

Upgrades and the Release Cycle

165

FAQ
Can I get only some of an
upgrade's features?

System Upgraded notification

No, but some features are released as


plugins that are not activated by
default. For more information about a
particular release, review release
documentation or preview features on
the demo instance [1]. We appreciate
feedback and strive to ensure upgrades

go as smoothly as possible, with no "surprises" for the user community.

If our instance is more than one release behind, can we still upgrade directly?
Yes, ServiceNow fully supports the current and previous feature release as well as any interim hotfixes and patch
releases.

References
[1] https:/ / servicenow. com/ demo

166

Domain 6
Import Sets
Import Sets

Importing Data Using Import Sets

Using the Coalesce Field

Importing from Another ServiceNow Instance

Data Sources

Adding JDBC Drivers for Data Sources not Supported in Out-of-Box Systems

SQL Server Integrated Authentication for Windows

Viewing the Import Log

Import Run History

Scheduling Data Imports

Web Proxy

Creating New Transform Maps

Transform Map Scripts

Import Set Scheduled Cleanup

Troubleshooting Import Set Performance

Overview
Import Sets is a powerful tool used to import data from various data sources, and then map that data into
ServiceNow tables. The Import Sets table acts as a staging area for records imported from a data source.
Note: Data should not be imported in extremely large chunks. Creating an extremely large import set can cause delays and system
outages.

A transform map determines the relationships between fields displaying in an Import Set table and fields in an
existing ServiceNow table, such as the Incidents or Users table.
Importing sets will skip records when the data in the instance matches the data being imported.
Note: Import Sets run as user System. Therefore, Import Sets cannot add data to encrypted fields.

Import Sets

General Parameters
Import sources:
Files:
Excel
XML
CSV
Network (supported online data
retrieval methods):
HTTP
FTP
JDBC
Transformation Mapping:
Transformation is flexible to
your needs.
Flowchart of Import Set application operating parameters
Specification can be as simple
as having the application
auto-match field names from source and destination.
Mapping can also use advanced logic utilizing the full power of the ServiceNow scripting environment.
A single import set field can also be mapped to multiple fields on a production table.
Import destinations:

Any table within ServiceNow is a potential destination for transformation of an import set.
Any field within a table can serve as a potential destination for transformation from a field within an import
set.

167

Import Sets

System Import Sets


Load Data: Data source records are references imported data
or location to retrieve data from.
Create Transform Map: is used to specify how data uploaded
into an Import Set should be transfered onto production tables.
They allow for extremely detailed customization of import
operations.
Run Transform: Transform map scripts allow for
customization of import operations using a robust programming
interface that can be used to introduce advanced logic. Import
Sets Map scripting is fully integrated into the ServiceNow
scripting environment and can access the objects thereof.

Administration
Modules used for configuring data sources, transform maps and
setting up schedules for executing import sets.

Data Sources
Data Sources is a module of the Import Sets application. A data
source can be from a file or a JDBC connection. Files can be local
and uploaded from the browser or can be accessed by defining a remote data connection as the file retrieval method.
Data sources are used to create an import set so that data can be processed, if necessary, prior to being mapped onto a
production table. When using import sets to map data from one ServiceNow table to another, it is not necessary to
define a data source; this can be done simply by using the import set mapping tools. Importing sets will skip records
when the data in the instance matches the data being imported.
See Data Sources for more information.

Transform Maps
A transform map is a set of field maps that determines the relationships between fields in an import set and fields in
an existing ServiceNow table (such as Incidents or Users). Once defined, it is possible to reuse existing transform
maps for mapping data from an import set to a ServiceNow table.
The Transform Map module allows for defining destinations for imported data on any ServiceNow tables. Transform
mapping can be as simple as dragging and dropping to specify linking between source fields on an import set table
and destination fields on any ServiceNow table. When using transform mapping, you can also dynamically map
source and destination fields by using ServiceNow scripting objects and functionality.
See Creating New Transform Maps for more information.

168

Import Sets

Scheduled Imports
Scheduled Imports make it is possible to specify that certain import operations should occur at some regular interval.
If a remote data source is chosen, it will be refreshed via the remote connection prior to the import operation.
See Scheduling Data Imports for more information.

Advanced
Import Sets: Table of all import sets. An import set is a set of records imported from a data source that can be
mapped to an existing table and serves as a staging location for storing imported data.
Progress: Show the progress of scheduled import set jobs that are running in the background.
Transform History: Log of completed import operations (where an import set was transformed onto a
production).
Transform Errors: Log of all errors encountered during any import operations.
Import Log: Log of all Import Set application operations.

Import Set Tables


Cleanup: Graphical tool used for deleting old data or removing no longer needed import set tables.
Scheduled Cleanup: Schedule regular deletion of import set data older than a set number of days. Only data is
removed, not the import table itself.
It is strongly recommended that you activate this job to ensure your import tables do not get extremely large.
Deleting records older than seven days should be sufficient.
Import Set Tables: Expandable list of previous import set will contain references to the most recent import set
records that have been uploaded from a data source.

Terminology Defined
Import Sets: ServiceNow table that acts as a staging location for records imported from some data source.
Transformation: in the context of ServiceNow, System Imports Sets, refers to the synchronization of data in an
import set table with data on a production table according to rules that are defined in an import set table.
Foreign record insert: A foreign record insert occurs when an import makes a change to a table that is not the target
table for that import. This happens when updating a reference field on a table, for example when updating the value
for caller on an incident the import is actually updating the sys_user table of ServiceNow.

Field Descriptions
Number: Unique identifier for an Import Set
State: Gives the current status of the Import Set either loading, loaded or processed, where loading refers to an
Import Set still currently being imported from a data source, loaded to an Import Set fully uploaded from a data
source but not yet transformed onto a production table and processed to an Import Set fully uploaded and already
transformed onto a production table since the last refresh from the datasource.
Data source: The data source from which this Import Set is populated with data
Table name: The name of the Import Set
Created: Date the Import Set was created
Load Completed: Date and time the Import Set was last updated from the datasource
Load Runtime: Length of time for the last update from the datasource to complete

169

Import Sets

170

This is an example of the Import Sets table form view. From here it
is possible to view information on the status of the last data
retrieval operation that was done for a certain Import Set.

This is an example of the Import Sets table list view.

Using the Coalesce Field


Import Sets

Importing Data Using Import Sets

Using the Coalesce Field

Importing from Another ServiceNow Instance

Data Sources

Adding JDBC Drivers for Data Sources not Supported in Out-of-Box Systems

SQL Server Integrated Authentication for Windows

Viewing the Import Log

Import Run History

Scheduling Data Imports

Web Proxy

Creating New Transform Maps

Transform Map Scripts

Import Set Scheduled Cleanup

Troubleshooting Import Set Performance

Overview
In an import, coalescing on a field (or set of fields) means the field will be used as a unique key. If a match is found
using the coalesce field, the existing record will be updated with the information being imported. If a match is not
found, then a new record will be inserted into the database.

Updates Only
To only update records where a match is found, and skip records where a match is not found, specify a coalesce field
and add the following script as an OnBefore script to the transform map.

Using the Coalesce Field

171

if (action == 'insert')
ignore = true;

Data Sources
Import Sets

Importing Data Using Import Sets

Using the Coalesce Field

Importing from Another ServiceNow Instance

Data Sources

Adding JDBC Drivers for Data Sources not Supported in Out-of-Box Systems

SQL Server Integrated Authentication for Windows

Viewing the Import Log

Import Run History

Scheduling Data Imports

Web Proxy

Creating New Transform Maps

Transform Map Scripts

Import Set Scheduled Cleanup

Troubleshooting Import Set Performance

Overview
Data Sources is a module of the Import Sets application. Data sources are used to create an import set so that data
can be processed, if necessary, prior to being mapped onto a production table. The data source type describes the
origin of data:
File: Data is in a recognized file format, accessible locally or remotely through several file retrieval methods
JDBC: Data is in a database, accessible using JDBC. We currently support Oracle, MySQL, MS SQL Server,
Sybase and DB2 drivers.
LDAP: Data is in an LDAP server, accesible through the LDAP or LDAPS ports, 389 and 636 respectively.
Note: When using import sets to map data from one ServiceNow table to another, it is not necessary to define a data source, rather
this can be done simply by using the import set mapping tools. Importing Sets will skip records when the data in the instance matches
the data being imported. For instructions on creating transform maps, see Creating New Transform Maps.

Data Sources

172

File Types
You can import a file from a local source, a remote network server, or another instance by providing a path and
authentication information. For file type import sets, you can select from a list of different file retrieval methods,
including FTP, FTPS, SCP, and HTTPS.
|

When you select a data source of type File, the following fields are displayed:
Field

Description

Name

Unique name of this data source.

Import set table


Label

A label is a tag on a piece of data. Labels are logical, descriptive names that are localizable.

Import set table name ServiceNow uses the label you entered to construct a unique table name. This prevents namespace collision with an already
existing table.
Type

Select File from the drop-down list.

Format

Select one of the following formats from the list: CSV, CSV (tab), Excel, XML.

Zipped

Select this check box if the import file is compressed.

Xpath for each row

XPath expression which selects the nodes which are to become rows in the import table. The children of the selected nodes
will become the columns in the rows.

Expand node
children

if an element which is to become a column contains further child elements, should these be converted into additional
columns, or should the column value be an XML fragment?

File retrieval method

Choose the appropriate retrieval method for this file. See File Retrieval Methods for details.

File path

Path to the import file

SCP authentication
method

Select to authenticate with a Username and Password or with a Public key. Note: You cannot authenticate to data sources
with a public-private key pair. Use username/password authentication instead.

Server

Type the name of the server from which the file will be imported.

User name

Type the user name for authentication on the file server.

Password

Type the password for authentication on the file server.

Private keyfile

Note: This is a legacy field for SCP authentication with a public-private key pair. You cannot authenticate to data sources
with a public-private key pair. Use username/password authentication instead.

Currently ServiceNow supports file imports in XML, CSV (character-separated values) and Excel (XLS) formats.

Data Sources

173

Example XLS data source file


XLS refers to the Microsoft Excel file format. This is the default format for spreadsheets created in Excel for
versions 2003 and older. The new XLSX file format that is the default format for Excel 2007 is not currently
supported. If importing a list from Excel 2007 then it is necessary to use the "save as" feature and specify XLS
format (versus XLSX).
Note: All .xls files must use the 1900 date system as opposed to the 1904 date system as the latter will cause your dates to be
imported with a year that is 4 years earlier than what your spreadsheet displays. Refer to MS Support for additional information
about date systems.

Example XML data source file


XML data source definitions have an additional field to specify the "XPath for each row". This is an XPath [1]
expression to select the elements whose children will be converted to rows in the import set table. Each selected
element will cause a row to be created in the import set table. The children of the selected element will be converted
into columns in the row. For example, to import the asset information from the sample XML file below, the XPath
expression should be specified as "/export/asset". This expression matches the 3 <asset> elements in the file, so 3
rows will be created. Although one could also specify "//asset" this expression is much less efficient for large files. It
is strongly recommended that you use the absolute location path form for XPath expressions when using the XML
loader. In other words, avoid expressions containing "//" unless strictly necessary.
Be careful not to specify an insufficiently restrictive XPath expression with a large XML file. For example, the
expression "/export" would be wrong for the sample file below, since it matches the document (root) element. In
general, you should never specify an XPath expression which matches the root element unless you want everything
in the document to be made into a single row. Specifying an insufficiently restrictive XPath expression when
attempting to load large XML files could result in lengthy processing times and incorrect output. For this reason, it is
best to test and debug XML data source specifications with small XML files containing only a few rows worth of

Data Sources
data. Once the specification has been tested, you can run it again with the full file.
Notice that the <userInfo> elements contained within <asset> contain child elements. This will cause a column
called "userInfo" to be created containing XML for the userInfo element. If Expand child nodes is checked,
individual columns will also be created for userInfo/lastName and userInfo/firstName. If Expand child nodes is not
checked, only the userInfo XML column will be created.
<?xml version="1.0" encoding="utf-8"?>
<export>
<asset>
<assetTag>AT-01939</assetTag>
<type>Desktop</type>
<os>Windows 7 Professional</os>
<lastlogondate>12-07-2010 12:31:24</lastlogondate>
<userInfo>
<lastName>Loo</lastName>
<firstName>David</firstName>
</userInfo>
<isenabled>true</isenabled>
</asset>
<asset>
<assetTag>AT-53480</assetTag>
<type>Desktop</type>
<os>Windows 7 Professional</os>
<lastlogondate>09-07-2010 13:25:53</lastlogondate>
<userInfo>
<lastName>Merritt</lastName>
<firstName>Norris</firstName>
</userInfo>
<isenabled>true</isenabled>
</asset>
<asset>
<assetTag>AT-55782</assetTag>
<type>Desktop</type>
<os>Unknown</os>
<lastlogondate>01-01-1900 00:00:00</lastlogondate>
<userInfo>
<lastName>Currie</lastName>
<firstName>Mike</firstName>
</userInfo>
<isenabled>true</isenabled>
</asset>
</export>

174

Data Sources

175

Example CSV data source file


CSV, character-separated value files are used as a cross-compatible file format for transferring files across
platforms. A CSV file is a text file that define a grid, where columns are defined by commas and rows are defined by
line breaks. For the purpose of defining precise spacing for Importing strings quotes can be used as wrappers, but
they are not necessary.
"user_name","name","email","sys_created_on","active"
"jared.laethem","Jared Laethem","jared.laethem@yourcompany.com","2008-02-24 22:21:32","true"
"jerrod.bennett","Jerrod Bennett","jerrod.bennett@yourcompany.com","2007-08-12 12:12:18","true"
"eric.schroeder","Eric Schroeder","eric.schroeder@yourcompany.com","2007-07-03 11:50:20","true"
"rob.woodbyrne","Rob Woodbyrne","rob.woodbyrne@yourcompany.com","2007-07-03 11:49:57","true"
"admin","System Administrator","admin@yourcompany.com","2007-07-03 11:48:47","true"
"christen.mitchell","Christen Mitchell","christen.mitchell@yourcompany.com","2007-05-16 15:26:42","true"
"rob.phillips","Rob Phillips","rob.phillips@yourcompany.com","2007-01-22 11:25:34","true"
"davin.czukowski","Davin Czukowski","davin.czukowski@yourcompany.com","2006-07-11 14:01:26","true"
"luke.wilson","Luke Wilson","luke.wilson@yourcompany.com","2006-02-07 15:29:48","true"
"bow.ruggeri","Bow Ruggeri","bow.ruggeri@yourcompany.com","2005-07-07 11:39:58","true"
"don.goodliffe","Don Goodliffe","don.goodliffe@yourcompany.com","2005-05-02 12:28:40","true"
"david.loo","David Loo","david.loo@yourcompany.com","2005-02-22 16:00:00","true"
"guest","Guest","guest@yourcompany.com","2004-05-01 17:00:00","true"
"fred.luddy","Fred Luddy","fred.luddy@yourcompany.com","2004-05-01 17:00:00","true"

To process CSV files that are delimited by any character other than a comma:
Note: This is an advanced step to create a CSV import. Normally, you would upload the data and import it directly using System
Import Sets, which will create this CSV data source for you automatically.

1. Create the data source using one of the following methods:


Click New on the Data Source list.
Create the data source using the Attachment file retrieval method.
2. Attach the CSV file to this data source.
3. Personalize the Data Source form and add the CSV Delimiter field.
4. Type the character you want as the delimiter for the CSV file in this field.
For example, you might use the pipe symbol ( | ).
5. Test load the data source.
The CSV loader will parse the CSV file, expecting it to be delimited (separated) by "|".

Data Sources

176

Encoding
The default character set used for decoding the imported CSV file is WINDOWS-1252. It may become necessary to
use a specific type of encoding such as utf-8 when importing a CSV document. This can be done within a data
source using the properties field. To use utf-8 encoding when importing a CSV file as an attachment:
1. If the 'Properties' field does not exist on your Data Source form, personalize the form and add it.
2. We add this property in the following format 'charset=<your encoding type>' (i.e. charset=utf-8).
Refer to the picture below to see what this data source would look like with this property added:

File Retrieval Methods


After defining the files that are compatible for importing, the next configuration step for the file data source is to
define how the file can be imported. The following file retrieval methods are available to copy the file from where it
resides to ServiceNow to be loaded into an import set.
Note: For the import to succeed, your FTP server and client must be set up for the same authentication mechanism that you select
here. Refer to the following article for an explanation of the protocols support [2]

Data Sources

177

Method

Description

Attachment

Attach a file to the record and import that file in an import set.

File

Select a file to import from a local drive or a network location (this is unusual). Selecting this method provides a field to specify
the network path. The Aspen Release limits your selection to one of these file locations for increased security.

Tomcat home. For example, /Apache Tomcat.


Glide system home. For example, /<Tomcat home>/webapps/glide/itil/WEB-INF/.
Temporary directory. For example, /tmp or /var/tmp depending on how your system is configured.

If you need to specify an arbitrary network path, consider using a different file retrieval protocol such as FTP or SCP where you
can secure the communications channel.
[3]

SFTP

Retrieve a file using SFTP

FTP

Retrieve a file from an FTP

FTPS (Auth
SSL)

[5]
An FTP Secure
authentication command issued through the Secure Socket Layer (SSL) protocol. This method is also known as
explicit FTP over SSL.

FTPS (Auth
TLS)

[5]
An FTP Secure
authentication command issued through the Transport Layer Security (TLS) protocol. This method is also
known as explicit FTP over TLS.

. Fields are provided for the server name and logon credentials.

[4]

server in your network. Fields are provided for the server name and logon credentials.

FTPS (Implicit In implicit security, the FTPS [5] server defines a specific port for the client (990) to use for secure connections. Implicit security
SSL)
automatically begins with an SSL connection the moment an FTPS client connects to an FTPS server.
FTPS (Implicit In implicit security, the FTPS [5] server defines a specific port for the client (990) to use for secure connections. Implicit security
TLS)
automatically begins with a TLS connection the moment an FTP client connects to an FTP server.
[6]

HTTP

Retrieve a file using HTTP

HTTPS

[7]
Retrieve a file using HTTPS . Fields are provided for the server name and logon credentials. Use this method to transfer data
between ServiceNow instances.

SCP

The Secure Copy protocol (SCP)


the Secure Shell (SSH) protocol..

. FIelds are provided for the server name and logon credentials.

[8]

securely transfers files between a local and a remote host or between two remote hosts, using

FTP Extended Properties


The following table describes properties that are available for customizing your FTP data source. To enter these
properties, you must personalize the layout of your data source form, and add the Properties field. When you
specify more than one property, be sure to use a comma "," to separate them.
Property name

Description

Example value

Data
Source

connection.passive Sets the behavior for the FTP connection to establish a passive connection.
Defaults to false or active.

connection.passive=true

FTP, FTPS

connection.timeout The number of milliseconds to wait before timing out the FTP connection attempt.
Defaults to 10 seconds.

connection.timeout=10000 FTP, FTPS

remove_file

When this value is set to true, the remote file will be deleted after the import.
Defaults to false, or don't remove.

remove_file=true

FTP, FTPS,
SFTP

rename_file

When this property is set to true the remote file will be renamed to "<file
name>.imported". Defaults to false, or not to rename file.

rename_file=true

FTP, FTPS,
SFTP

Data Sources

178

JDBC Types
A JDBC data source is a data source that retrieves its data via a JDBC driver (usually type 4 'network'), and has a
requirement that the JDBC connection is available either directly from the ServiceNow instance (a VPN setup
required), or via a MID Server installed inside your firewall that can access the database port. Note that any JDBC
call from the MID server is never encrypted. Limit the rights available to the MID user whenever making JDBC calls
from a MID server.
JDBC connections are supported for the following databases:
SQL Server Type

Port

MySQL

3306

MS SQL Server

1433

Oracle

1521

Sybase

5000

DB2 Universal

> 50000

A data source record for a JDBC connection looks like this:

Note: Oracle DATE fields will be loaded as ServiceNow datetime fields.

The following fields are available when you select a JDBC connection:
Field

Description

Name

Unique name of this data source.

Import set table


Label

A label is a tag on a piece of data. Labels are logical, descriptive names that are localizable.

Import set table


name

ServiceNow uses the label you entered to construct a unique table name. This prevents namespace collision with an already
existing table.

Type

Select JDBC from the drop-down list.

Use MID Server

Select a MID Server to use to connect to this data source.

Data Sources

Format

179
Select one of the following formats (databases) from the list:

DB2 Universal
MySQL
Oracle
SQL Server
Sybase

Instance name

To ensure connectivity, provide the instance name for a SQL Server that receives a new port number dynamically after each
reboot. This field only appears when SQLServer is selected as a data source format.

Database name

Type the name of the database instance.

Database port

Type the port number for the database.

Use integrated
authentication

Select this check box to allow the JDBC connection to use the ID of the user configured for the Windows MID Server service
for SQL Server authentication. For additional details, see SQL Server Integrated Authentication for Windows.

User name

Type the user name for authentication on the database server.

Password

Type the password for authentication on the database server.

Server

Type the name of the server from which the data will be imported.

Query

Select the type of query to run: All rows from Table or Specific SQL. If you select to run a SQL statement, the SQL statement
field appears.

Query timeout

Specify the number of seconds the JDBC driver will wait for a query (SELECT) to complete. Zero means no timeout. If timeout
is exceeded, the integration considers the JDBC result inaccessible and places it in an error state.

Connection
timeout

Specify the number of seconds before MID Server connection cache pool closes and removes it from the pool. Zero means no
timeout.

Table name

Type the name of the table from which the data is being exported.

SQL statement

Type a SQL statement to extract the desired data from the database.

Use last run


datetime

This selection controls the amount of data that is retrieved from a database during an import run. If this check box is unselected,
then all rows in the table specified are imported, every time. You might want to use this setting if this is a one-time import, or if
all the data in the target table is new. If this check box is selected, two additional fields appear, enabling you to select a datetime
value to limit imported data to delta values only.

Last run datetime

The datetime value in this field is automatically populated from the database field you select below and represents the latest
value from the previous run. This value acts as a dynamic filter to restrict the number of records retrieved to those records that
have changed since the data source's last runtime.

Last run database


field

Select the field name from the source table that will be used as the filter in the next run.

SQL Statement Requirements


JDBC queries that run SQL statements must specify a column name. For example, this query specifies the column
name ServerID.
Select Distinct 'server_name:' + CONVERT(VarChar, lg.ResourceID) As
'ServerID'
,LastHWScan
,Account0
,Category0
Fromv_GS_WORKSTATION_STATUSsInner Join
v_GS_LocalGroupMembers0lg
On s.ResourceID = lg.ResourceID
WhereType0 = 'Local'
And Category0 = 'SystemAccount'

Data Sources

180

JDBC Connection Settings


You can control how ServiceNow communicates with a JDBC data source by adding the following properties.
Name

Description

glide.jdbcprobeloader.retry

The number of times a JDBC probe loader attempts to process data returning from a JDBC data source. Sleeps
on the value defined in "glide.jdbcprobeloader.retry_millis" between retries.

Type: integer
Default value: 60
Location: Add the property

glide.jdbcprobeloader.retry_millis How many milliseconds a JDBC probe loader waits in between retry attempts to process data from a JDBC data
source.

Type: integer
Default value: 5000
Location: Add the property

LDAP Types
Note: It is unusual that you will configure an LDAP data source directly.

An LDAP data source is automatically created when configuring your instance to integrate with LDAP. For detailed
information on integrating LDAP with your ServiceNow instance, see LDAP Integration. A data source record for
LDAP looks like this:

The following LDAP fields are provided:


Field

Description

Name

Unique name of this data source.

Import set table


Label

A label is a tag on a piece of data. Labels are logical, descriptive names that are localizable.

Import set table


name

ServiceNow uses the label you entered to construct a unique table name. This prevents namespace collision with an already
existing table.

Type

Select LDAP from the drop-down list.

LDAP target

Select a target from the list of your LDAP OU definitions.

Data Sources

181

References
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]

http:/ / www. zvon. org/ xxl/ XPathTutorial/ General/ examples. html


http:/ / en. wikipedia. org/ wiki/ FTPS''
http:/ / en. wikipedia. org/ wiki/ SFTP
http:/ / en. wikipedia. org/ wiki/ File_Transfer_Protocol
http:/ / en. wikipedia. org/ wiki/ FTPS
http:/ / en. wikipedia. org/ wiki/ HTTP
http:/ / en. wikipedia. org/ wiki/ HTTPS
http:/ / en. wikipedia. org/ wiki/ Secure_copy

Scheduling Data Imports


Import Sets

Importing Data Using Import Sets

Using the Coalesce Field

Importing from Another ServiceNow Instance

Data Sources

Adding JDBC Drivers for Data Sources not Supported in Out-of-Box Systems

SQL Server Integrated Authentication for Windows

Viewing the Import Log

Import Run History

Scheduling Data Imports

Web Proxy

Creating New Transform Maps

Transform Map Scripts

Import Set Scheduled Cleanup

Troubleshooting Import Set Performance

Overview
Scheduled Imports make it is possible to specify that certain import operations should occur at some regular interval.
If a remote datasource is chosen then it will be refreshed via the remote connection prior to the import operation. To
create a Scheduled Data Import navigate to System Import Sets > Administration > Scheduled Imports.

Scripting Options
Scheduled Import Pre and Post scripts have access to the following
JavaScript objects:

Sample Schedule Data Import record

Scheduling Data Imports

182

Object
cancel

Description
Set this object to true to stop the import action.

glide.scheduled_import.stop_on_error Set this object to true to stop the import process when the parent scheduled import generates an error
map

Specify the transform map you want the scheduled import to use. The transform map must be an existing
GlideRecord object.

data_source

Specify the data source you want the scheduled import to use.The data source must be an existing
GlideRecord object.

Cancelling Out of a Scheduled Import


Use the Pre-script field to evaluate the conditions of the import and determine whether to cancel the import process.
To cancel the import process use the following call:
cancel = true;

Canceling dependent Scheduled Imports


One import set can depend on the results of another import set. Use the following code to stop the current import set
when the parent import set generates an error:
glide.scheduled_import.stop_on_error = true;

Specifying a Transform Map


Typically, you define the transform map as part of the data source. If you want to override the data source transform
map and use another one in certain conditions, you can use the following call:
map = "LDAP User Import";

Specifying a Data Source


Typically, you define the data source with the Scheduled Data Import record. If you want to override this data source
and use another data source in certain conditions, you can use the following call:
data_source = "Example LDAP Users";

Creating New Transform Maps

183

Creating New Transform Maps


Import Sets

Importing Data Using Import Sets

Using the Coalesce Field

Importing from Another ServiceNow Instance

Data Sources

Adding JDBC Drivers for Data Sources not Supported in Out-of-Box Systems

SQL Server Integrated Authentication for Windows

Viewing the Import Log

Import Run History

Scheduling Data Imports

Web Proxy

Creating New Transform Maps

Transform Map Scripts

Import Set Scheduled Cleanup

Troubleshooting Import Set Performance

Overview
A transform map is a set of field maps that determine the relationships
between fields in an import set and fields in an existing ServiceNow
table (such as Incidents [incident] or Users [sys_user]). After transform
maps have been defined they can be reused for mapping data from an
import set to a ServiceNow table.

Transform maps in the import process

The Transform Maps module enables an administrator to define


destinations for imported data on any ServiceNow tables. Transform
mapping can be as simple as a drag and drop operation to specify
linking between source fields on an import set table and destination
fields on any ServiceNow table. Use transform mapping to map source

and destination fields dynamically.

Creating New Transform Maps


Every import operation to a ServiceNow production table requires at least one transform map that will be associated
with an import set. The transform map specifies the data relationships between the import set and the target table.
Every transformation requires that you either create a new transform map or select an existing one.
To create a new transform map, navigate to System Import Sets > Create Transform Map and fill in the transform
map fields.

Creating New Transform Maps

184

Transform Map Fields


The Transform Map form has these fields.
Field

Input Value

Name

Enter a user-friendly label for identifying the transform map.

Source table

Select the import table containing the raw import set data. An import table is any table that extends the Import Set Row
[sys_import_set_row] table.

Active

Select whether the transform map is available for use.

Run Business Rules

Select whether to run business rules while the transformation inserts or updates data into the target table.

Enforce Mandatory
Fields

Select whether to enforce mandatory fields on the target table.

Copy Empty Fields

Select whether to clear fields with existing values when an incoming field contains an empty value. See Using NULL as a
Field Value for information on how to import empty values.

Created

Lists the transform map creation date. This field is automatically populated.

Target table

Select the table where you want transformed data to be placed.

Order

Enter the order in which to apply transform maps in the event that more than one map fits the conditions. ServiceNow runs
transform maps from lowest to highest Order.

Run Script

Select whether to display the Script field. See transform map script for special variables available to transform map scripts.

Script

Enter the transform map script you want to use to transform field values in the source table to the target table. ServiceNow
runs the transform map script in addition to any Field Maps.

Field Maps

Use this related list to add one or more field maps. ServiceNow runs the transform Field Maps in addition to any transform
script.

Transform scripts

Use this related list to add one or more transform map scripts. A transform script allows you to apply extra business logic a
specified stage of the transformation.

The sample User import transform map looks like this.

Using NULL as a Field Value


The string NULL has a particular role in the code for the ServiceNow
platform and is a reserved word. It should not be used as a field value
in import set transform maps or anywhere in the First name or Last
name fields. The reserved word is NULL in all capital letters. A field
with the value Null or null, for example, is acceptable. NULL
should be used only to clear out a particular field.

Creating a Field Map


Field maps establish a relationship between a field in an import set
table and a field in the target table. The field map determines what
values from the source table the transformation adds to the target table.
Sample transform map record

To create a field map:


1.
2.
3.
4.

Navigate to System Import Sets > Transform Maps.


Select the transform map to which you want to add a field mapping.
From the Field Maps related list, click New. Enter the field map fields.
Click Save.

Creating New Transform Maps

185

5. Repeat steps 3-4 for each field mapping.


6. Click Update.

Field Map Fields


The field map form has these fields.
Field

Input Value

Source table

Displays the table where the raw import set data is loaded (the source for the transformation). This field is automatically populated
from the transform map.

Source field

Select the field on the source table to be transformed. This may be blank if the Source table only contains raw data.

Map

Displays the transform map that uses this field mapping. This field is automatically populated.

Date format

This field is available if the target field is a date or date-time field. This field specifies the date format of the source field. See
Changing the Date Format.

Choice action

This field is available if the target field is a choice list or reference field. This field specifies what to do if the import set contains a
reference or choice value other than those available. Select one of these options:

create: Create a new choice or record in the reference table.


ignore: Ignore the new value from the source table.
reject: Skip the entire row (record) containing the new value and continue to the next row.

Use source
script

Select this check box to use a script instead of the Source field.

Source script

Enter a script to determine the source of this field mapping instead of the Source field. The script should return the answer
variable. For example, this source script combines information from multiple sources into a single value. See Using a Script to
Calculate a Source Value.

Target table

Select the table where the data will be placed after it is transformed.

Target field

Select the field where the values from the source field will be stored.

Referenced
value field
name

Select the column name (not field label) in the reference table where the transform map searches for values that match entries in
the Source field. The Referenced value field name is present only when the Target field is a reference field.
The transform map compares the Source field value to the values in the specified reference table column. If the reference table
column contains a value that matches the Source field, the transform map places a reference to that record into the Target field.
If the reference table does not contain a matching value, the transform map creates a record in the reference table for the new
value, and then places a reference to the Sys ID of that record into the Target field.
If the Referenced value field name is blank, the transform map compares the Source field values with the Display Value from
the reference table. The same processing occurs: if a match is found, the transform map places a reference to the record into the
Target field. If no match is found, the transform map creates a record in the reference table and then places a reference to the
record into the Target field.
For example, in the LDAP User Import transform map, there is a mapping for the u_l field to the location field of the target User
[sys_user] table. The location field in the User table is a reference field to the Location [cmn_location] table.
If the Referenced value field name is blank, the transform map compares the Source field values to the display value (the name
column) for the Location table. Suppose the source u_l field contains the value "100 Park Boulevard, San Diego, CA". In this case,
the Location table contains a record with the same value in the name column, and the transform map places a reference to this
record into the Target table.
If the Referenced value field name contains a different column name, such as city, then the transform map looks for the value
"100 Park Boulevard, San Diego, CA" in the city column instead of the name column.

Coalesce

Select this checkbox to match records in the source table to existing records in the target table. When true, the import set
application attempts to match source values to existing target values. When false, the import set application always creates new
records for each transformation. If multiple fields are set to coalesce, all coalesce values are used to match an existing record. If
two fields are set for coalescing and a matching value is found on one of the coalescing fields but not on the other, a new record is
inserted.

Creating New Transform Maps

186

Coalesce
empty fields

Select this check box to match an empty source field value to an empty target field value. For example, the User transform map
coalesces on the email field. With this option is selected, a source record containing an empty email address coalesces to a target
record containing an empty email address.

Coalesce case
sensitive

Select this check box to have case sensitive coalesce values result in the creation of new records. By default, values marked as
Coalesce are used in a case insensitive lookup for existing records. Case insensitive records only update existing records and do
not cause the creation of new records.

A completed field map record with coalescence enabled might look like this:

Mapping Options
The mapping of fields can be done in a number of ways depending on
the circumstances of the import and whether data must be transformed
Sample field mapping
prior to transformation onto a production table. It is also important to
note that any given import operation may require taking advantage of
multiple mapping methods, and these methods can be readily used in conjunction with one another.

Automatic Mapping Utility


The simplest mapping method is where all of the field names of the import sets match the names of the fields on the
production tables onto which the data will be transformed. In this case, simply click Auto map matching fields in
the related list in the Table Transform Map form and confirm proper matching. If there are any discrepancies in
terms of how fields were automatically matched, these can easily be corrected using the mapping assist utility. When
all fields are matched properly, click Transform in the related lists to begin transforming data onto the destination
table.

Mapping Assist Utility


The mapping assist utility provides a visually intuitive environment for specifying mapping between import set fields
and production table fields. With the mapping assist utility it is possible to map a single source field (field on an
import set table) to multiple destination fields (fields on a production table).

Changing the Date Format


If the date format of the source field does not match the format of the
target field, you can set a date format mapping to transform dates from
one format to another. For example, this mapping specifies that the
date format of the CSV source file uses the MM-dd-yyyy format.
Mapping assist utility

Date format options include:

Sample date field mapping

Creating New Transform Maps

187

Date format options

Date Format

Description

dd-MM-yyyy

Day-month-year

dd-MM-yyyy hh:mm:ss

Day-month-year hours-minutes-seconds

dd-MM-yyyy hh:mm:ss z Day-month-year hours-minutes-seconds timezone


MM-dd-yyyy

Month-day-year

MM-dd-yyyy hh:mm:ss

Month-day-year hours-minutes-seconds

MM-dd-yyyy hh:mm:ss z Month-day-year hours-minutes-seconds timezone


yyyy-dd-MM

Year-day-month

yyyy-MM-dd

Year-month-day

yyyy-MM-dd hh:mm:ss

Year-month-day hours-minutes-seconds

You can specify a custom date format using HH to denote 24 hour time. Converting from a 24 hour to 12 hour date
format may cause times from 12:00 to 12:59 to be formatted as 00:00.

Mapping to a Duration Field


ServiceNow duration fields use a special data type that lists the number of milliseconds the duration value is. To map
import data to a duration field use one of the following methods to transform source values into a duration.
Calculate the duration from a start and end date
Convert an existing duration value into a ServiceNow duration value

Calculating a Duration Value from a Start and End Date


If the import source has a start and end date, you can calculate a duration with JavaScript.
1. Navigate to System Import Sets > Transform Maps.
2. Select the transform map you want to calculate a duration value. For example, the Notification transform map
that imports into the Incident table.
3. Select the Run script checkbox.
4. Enter JavaScript to transform the start and end dates into a duration. See the sample script.
5. Click Update.
This sample script transforms the source.u_start and source.u_end fields to a duration value in the target.duration
field. Change the field names to match your source and target fields as needed.
target.duration = gs.dateDiff(source.u_start.getDisplayValue(),
source.u_end.getDisplayValue(),false);

Creating New Transform Maps

188

Convert a Duration Value into a ServiceNow Duration Value


If the import source already contains a start date and a duration value, you can convert the existing duration into a
ServiceNow duration. For example, you might have a Excel data source that lists a duration in seconds. ServiceNow
expects durations to have millisecond values.
1. Navigate to System Import Sets > Transform Maps.
2. Select the transform map you want to calculate a duration value. For example, the Notification transform map
that imports into the Incident table.
3. Select the Run script checkbox.
4. Enter JavaScript to convert existing duration value into a ServiceNow duration value. See the sample script.
5. Click Update.
This sample script converts a duration in seconds (from the source.u_duration field) to a duration in milliseconds (in
the target.duration field). Change the field names to match your source and target fields as needed.
//Transform the value in source.u_duration from seconds to milliseconds
target.duration.setDateNumericValue(source.u_duration*1000);
This sample script converts a duration already in milliseconds (from the source.u_duration field) to a ServiceNow
duration (in the target.duration field). Change the field names to match your source and target fields as needed.
//Transform the value in source.u_duration to ServiceNow format
target.duration.setDateNumericValue(source.u_duration);

Using a Script to Calculate a Source Value


Administrators may want to use a source script instead of the Source field when:

The source value is not in the format for the mapped target value.
You want to lookup a value before mapping to the target field.
The source value must be computed from multiple fields.
You need to create a compounded or calculated coalesce value in the target field.

For example, this source script computes the value of the user_name field when it is blank in the source.
A source script expects the calculated value to be set in the global
variable answer.

Mapping Binary or BLOB Fields


Sample source field script

ServiceNow uses a special process to import binary and binary large


object (BLOB) data from JDBC data sources. All binary data is
automatically converted into a record in the Attachment Record [sys_attachment] table before the transformation
occurs. The import set table only stores the attachment record's sys_id value in the import table field instead of the
actual binary value. For example, suppose you use a JDBC data source to import data from a CA Service Desk
system. Because Service Desk stores each record's key value as binary data, when you import the Service Desk key
values into a ServiceNow table, the ServiceNow field only contains a system ID reference to the corresponding
binary data in the Attachment Record [sys_attachment] table rather than the actual binary data.
Transform maps can access the attachment using the GlideRecord programming API in an onAfter script. The script
needs to run in an onAfter event because the target.sys_id object is only available after the data is placed in the
import set table. For example, to map the resultant attachment to the target transform record, you can use the
following script.

Creating New Transform Maps


var agr = new GlideRecord("sys_attachment");
agr.addQuery("sys_id", source.u_blob_field); // the source field needs
to be mapped to the source that is the BLOB
agr.query();
if (agr.next()) {
agr.table_name = "cmdb_ci"; // the target table of the transform map
agr.table_sys_id = target.sys_id; // the target record
agr.content_type = source.u_contentype; // the content type string if
available,
// this becomes the mime
encoding when clicking on an attachment link
agr.update(); // finally, move/re-attach the attachment to the target
row
}
If you are mapping directly to the db_image table, run the following onAfter script to get the image to display:
var strTemp = source.u_file_name;
var fType = strTemp.substr(-3);
var iCont = "";
if (fType == 'jpg') {
iCont = 'jpeg';
} else {
iCont = fType;
}
var agr = new GlideRecord("sys_attachment");
agr.addQuery("sys_id", source.u_blob_field);
agr.query();
if (agr.next()) {
agr.table_name = "ZZ_YYdb_image";
agr.table_sys_id = target.sys_id;
agr.content_type = 'image/' + iCont;
agr.file_name = 'image';
agr.update();
}

Using Multiple Transform Maps


Multiple transform maps can be applied to a single data source. One import set row is created per transform map.
This behavior can cause a large number of temporary records to be generated.

189

Article Sources and Contributors

Article Sources and Contributors


Using Forms Source: http://wiki.servicenow.com/index.php?oldid=169077 Contributors: Cheryl.dolan, Davida.hughes, Emily.partridge, Guy.yedwab, Joe.Westrich, Joseph.messerschmidt,
Phillip.salzman, Rachel.sienko, Wallymarx
Personalizing Forms Source: http://wiki.servicenow.com/index.php?oldid=159673 Contributors: CapaJC, Emily.partridge, G.yedwab, Guy.yedwab, Joe.Westrich, Joseph.messerschmidt,
Phillip.salzman, Rachel.sienko, Swood, Vhearne
Personalizing Lists Source: http://wiki.servicenow.com/index.php?oldid=163876 Contributors: CapaJC, David.Bailey, Emily.partridge, G.yedwab, Gabriel.finney, Guy.yedwab,
Joseph.messerschmidt, Mark.stanger, Peter.smith, Rachel.sienko, Steve.wood, Swood, Vhearne
Creating New Fields Source: http://wiki.servicenow.com/index.php?oldid=122942 Contributors: Cheryl.dolan, Guy.yedwab, Joe.Westrich, Joseph.messerschmidt, Steve.wood, Vaughn.romero
Creating a Custom Application Source: http://wiki.servicenow.com/index.php?oldid=162393 Contributors: Cheryl.dolan, Rachel.sienko
Administering Application Menus and Modules Source: http://wiki.servicenow.com/index.php?oldid=160983 Contributors: CapaJC, Cheryl.dolan, G.yedwab, Guy.yedwab, Jared.laethem,
Joseph.messerschmidt, Mark.stanger, Phillip.salzman, Rachel.sienko, Steve.wood, Suzannes, Swood, Vaughn.romero, Vhearne
Creating a Custom Table Source: http://wiki.servicenow.com/index.php?oldid=167542 Contributors: CapaJC, Cheryl.dolan, Emily.partridge, G.yedwab, Guy.yedwab, Joseph.messerschmidt,
Mark.stanger, Rachel.sienko, Steve.wood, Swood, Vaughn.romero, Vhearne
Introduction to Assets and Configuration Source: http://wiki.servicenow.com/index.php?oldid=123075 Contributors: George.rawlins, Gflewis, Guy.yedwab, Joseph.messerschmidt,
Steve.wood, Swood, Sydney.nickell
Adding Existing Gauges to a Homepage Source: http://wiki.servicenow.com/index.php?oldid=148840 Contributors: CapaJC, Cheryl.dolan, G.yedwab, Guy.yedwab, Jessi.graves,
Joe.Westrich, Joseph.messerschmidt, Mark.stanger, Neola, Rob.woodbyrne, Swood, Vhearne, Wallymarx
Creating Users and Associating to a Group Source: http://wiki.servicenow.com/index.php?oldid=170029 Contributors: CapaJC, Cheryl.dolan, Guy.yedwab, Joe.Westrich,
Joseph.messerschmidt, Neola, Phillip.salzman, Steve.wood, Suzannes, Swood, Vaughn.romero, Vhearne
Creating Groups Source: http://wiki.servicenow.com/index.php?oldid=159708 Contributors: CapaJC, Cheryl.dolan, Emily.partridge, G.yedwab, Guy.yedwab, Jeremiah.hall,
Joseph.messerschmidt, Neola, Peter.smith, Suzannes, Vhearne
Creating Roles Source: http://wiki.servicenow.com/index.php?oldid=144555 Contributors: Cheryl.dolan, Emily.partridge, Guy.yedwab, Joseph.messerschmidt, Neola, Suzannes, Swood
Role Delegation Source: http://wiki.servicenow.com/index.php?oldid=144549 Contributors: CapaJC, Emily.partridge, Joseph.messerschmidt, Neola, Pat.Casey, Swood
Using Access Control Rules Source: http://wiki.servicenow.com/index.php?oldid=162076 Contributors: CapaJC, G.yedwab, Grant.hulbert, Guy.yedwab, Joseph.messerschmidt, Neola,
Phillip.salzman, Rachel.sienko, Steve.wood, Suzannes, Swood, Vaughn.romero
High Security Settings Source: http://wiki.servicenow.com/index.php?oldid=168487 Contributors: Cheryl.dolan, David Loo, David.Bailey, Emily.partridge, G.yedwab, Gadi.yedwab,
Guy.yedwab, Jason.lau, John.andersen, Joseph.messerschmidt, Neola, Peter.smith, Phillip.salzman, Rachel.sienko, Steve.wood, Swood, Vaughn.romero, Wallymarx
Performance Metrics Source: http://wiki.servicenow.com/index.php?oldid=147815 Contributors: CapaJC, Emily.partridge, G.yedwab, Joseph.messerschmidt, Neola, Pat.Casey, Rachel.sienko,
Steve.wood, Swood, Wallymarx
Creating Reports Source: http://wiki.servicenow.com/index.php?oldid=162310 Contributors: CapaJC, Cheryl.dolan, Davida.hughes, Emily.partridge, G.yedwab, Guy.yedwab, Jared.laethem,
Joseph.messerschmidt, Mark.stanger, Michael.randall, Mike.malcangio, Peter.smith, Rob.woodbyrne, Steve.wood, Suzannes, Swood, Vaughn.romero, Vhearne
Defining an SLA Source: http://wiki.servicenow.com/index.php?oldid=168240 Contributors: David.Bailey, Davida.hughes, Emily.partridge, Guy.yedwab, Joseph.messerschmidt,
Rachel.sienko, Steve.wood, Suzannes, Swood
Creating an SLA Workflow Source: http://wiki.servicenow.com/index.php?oldid=157414 Contributors: Davida.hughes, Emily.partridge, G.yedwab, Guy.yedwab, Joseph.messerschmidt,
Nick.roberts, Rachel.sienko, Steve.wood, Suzannes, Swood, Voytek.blonski
Events and Email Notification Source: http://wiki.servicenow.com/index.php?oldid=149121 Contributors: CapaJC, Chuck.tomasi, G.yedwab, Grant.hulbert, Guy.yedwab, Ishrath.razvi,
Jgrinter, Joe.Westrich, Joseph.messerschmidt, Mark.stanger, Neola, Rachel.sienko, Steve.wood, Swood, Vaughn.romero, Vhearne
Using the Knowledge Base Source: http://wiki.servicenow.com/index.php?oldid=172037 Contributors: Cheryl.dolan, David.Bailey, Rachel.sienko
Creating Knowledge Source: http://wiki.servicenow.com/index.php?oldid=168450 Contributors: Cheryl.dolan, David.Bailey
Configuring Knowledge Properties Source: http://wiki.servicenow.com/index.php?oldid=130302 Contributors: Cheryl.dolan, Mhobson
Defining Catalog Items Source: http://wiki.servicenow.com/index.php?oldid=150401 Contributors: CapaJC, David.Bailey, G.yedwab, Guy.yedwab, Joseph.messerschmidt, Pat.Casey,
Rachel.sienko, Rob.woodbyrne, Steve.wood, Swood, Vhearne, Wallymarx
Record Producer Source: http://wiki.servicenow.com/index.php?oldid=164240 Contributors: CapaJC, Cheryl.dolan, David.Bailey, Eric.jacobson, Guy.yedwab, Jared.laethem, Jessi.graves,
John.roberts, Joseph.messerschmidt, Rachel.sienko, Suzannes, Vhearne
Using Service Catalog Variables Source: http://wiki.servicenow.com/index.php?oldid=157012 Contributors: CapaJC, Cheryl.dolan, David.Bailey, Emily.partridge, Guy.yedwab,
Joseph.messerschmidt, Pat.Casey, Rachel.sienko, Rob.woodbyrne, Steve.wood, Swood, Vhearne
Service Catalog Order Guides Source: http://wiki.servicenow.com/index.php?oldid=152551 Contributors: CapaJC, Cheryl.dolan, David.Bailey, Gadi.yedwab, Guy.yedwab, John.andersen,
Joseph.messerschmidt, Pat.Casey, Rachel.sienko, Swood, Vhearne
Defining a Service Catalog Workflow Source: http://wiki.servicenow.com/index.php?oldid=153794 Contributors: David.Bailey, G.yedwab, Guy.yedwab, Ishrath.razvi, Joe.Westrich,
Joseph.messerschmidt, Peter.smith, Rachel.sienko, Russ.sarbora, Steve.wood, Swood
System Update Sets Source: http://wiki.servicenow.com/index.php?oldid=168577 Contributors: Annmarie, Brozi, CapaJC, Cheryl.dolan, Emily.partridge, G.yedwab, Guy.yedwab,
Jared.laethem, Jerrod.bennett, Jessi.graves, Joseph.messerschmidt, Michael.hoefer, Peter.smith, Rachel.sienko, Steve.wood, Suzannes, Swood, Vhearne
Getting Started with Update Sets Source: http://wiki.servicenow.com/index.php?oldid=157852 Contributors: Cheryl.dolan, Emily.partridge, G.yedwab, Guy.yedwab, Joseph.messerschmidt,
Rachel.sienko, Steve.wood, Swood
Using Update Sets Source: http://wiki.servicenow.com/index.php?oldid=158076 Contributors: Annmarie, CapaJC, Cesar.sandoval, Cheryl.dolan, Danijel.stanojevic, David Loo, Don.Goodliffe,
G.yedwab, Gadi.yedwab, Guy.yedwab, John.roberts, Joseph.messerschmidt, Michael.hoefer, Pat.Casey, Rachel.sienko, Steve.wood, Swood, Vhearne, Wallymarx
Transferring Update Sets Source: http://wiki.servicenow.com/index.php?oldid=157854 Contributors: Emily.partridge, Joseph.messerschmidt, Rachel.sienko
Upgrades and the Release Cycle Source: http://wiki.servicenow.com/index.php?oldid=169053 Contributors: Andrew.martin, Cheryl.dolan, Joseph.messerschmidt, Nicholas.roberts,
Rachel.sienko, Vaughn.romero
Import Sets Source: http://wiki.servicenow.com/index.php?oldid=136241 Contributors: CapaJC, David Loo, Emily.partridge, G.yedwab, Guy.yedwab, Ishrath.razvi, Jared.laethem, Jessi.graves,
Joseph.messerschmidt, Rachel.sienko, Rob.woodbyrne, Steve.wood, Swood, Vhearne

190

Article Sources and Contributors


Using the Coalesce Field Source: http://wiki.servicenow.com/index.php?oldid=169276 Contributors: CapaJC, Gflewis, Guy.yedwab, Richard.senecal, Steve.wood, Swood, Vaughn.romero,
Vhearne
Data Sources Source: http://wiki.servicenow.com/index.php?oldid=167174 Contributors: CapaJC, David Loo, David.Bailey, David.dixon, G.yedwab, Guy.yedwab, Jared.laethem, Jessi.graves,
Jonathan.sparks, Joseph.messerschmidt, Norris.merritt, Pinnacle ls, Rob.woodbyrne, Steve.wood, Swood, Valor, Vaughn.romero, Vhearne, Wallymarx
Scheduling Data Imports Source: http://wiki.servicenow.com/index.php?oldid=134474 Contributors: CapaJC, David Loo, Guy.yedwab, Jared.laethem, John.andersen, Joseph.messerschmidt,
Rob.woodbyrne, Steve.wood, Swood, Vaughn.romero, Vhearne
Creating New Transform Maps Source: http://wiki.servicenow.com/index.php?oldid=164102 Contributors: CapaJC, Cheryl.dolan, Chuck.tomasi, David Loo, Emily.partridge, G.yedwab,
Gabriel.finney, Guy.yedwab, Jared.laethem, Joseph.messerschmidt, Neola, Rob.woodbyrne, Steve.wood, Swood, Vaughn.romero, Vhearne

191

Image Sources, Licenses and Contributors

Image Sources, Licenses and Contributors


Image:ResponseClock.png Source: http://wiki.servicenow.com/index.php?title=File:ResponseClock.png License: unknown Contributors: Rachel.sienko
Image:FormElements.png Source: http://wiki.servicenow.com/index.php?title=File:FormElements.png License: unknown Contributors: Rachel.sienko
Image:Back.png Source: http://wiki.servicenow.com/index.php?title=File:Back.png License: unknown Contributors: Rachel.sienko
Image:FormTitleMenu.png Source: http://wiki.servicenow.com/index.php?title=File:FormTitleMenu.png License: unknown Contributors: Rachel.sienko
Image:Attachments.png Source: http://wiki.servicenow.com/index.php?title=File:Attachments.png License: unknown Contributors: Rachel.sienko
Image:Previous.png Source: http://wiki.servicenow.com/index.php?title=File:Previous.png License: unknown Contributors: Rachel.sienko
Image:Next.png Source: http://wiki.servicenow.com/index.php?title=File:Next.png License: unknown Contributors: Rachel.sienko
Image:ToggleTabs.png Source: http://wiki.servicenow.com/index.php?title=File:ToggleTabs.png License: unknown Contributors: Rachel.sienko
Image:FormTitleBar.png Source: http://wiki.servicenow.com/index.php?title=File:FormTitleBar.png License: unknown Contributors: Rachel.sienko
Image:FormContextMenu.png Source: http://wiki.servicenow.com/index.php?title=File:FormContextMenu.png License: unknown Contributors: Rachel.sienko
Image:Reference_icon.png Source: http://wiki.servicenow.com/index.php?title=File:Reference_icon.png License: unknown Contributors: Rachel.sienko, Rob.woodbyrne
Image:FieldIndicator1.png Source: http://wiki.servicenow.com/index.php?title=File:FieldIndicator1.png License: unknown Contributors: CapaJC
Image:Expand.png Source: http://wiki.servicenow.com/index.php?title=File:Expand.png License: unknown Contributors: Rachel.sienko
Image:Collapse.png Source: http://wiki.servicenow.com/index.php?title=File:Collapse.png License: unknown Contributors: Rachel.sienko
Image:DeleteCondition.png Source: http://wiki.servicenow.com/index.php?title=File:DeleteCondition.png License: unknown Contributors: Rachel.sienko
Image:Embedded.png Source: http://wiki.servicenow.com/index.php?title=File:Embedded.png License: unknown Contributors: Rachel.sienko
Image:Simultaneous_update.png Source: http://wiki.servicenow.com/index.php?title=File:Simultaneous_update.png License: unknown Contributors: Rachel.sienko
Image:Warning.gif Source: http://wiki.servicenow.com/index.php?title=File:Warning.gif License: unknown Contributors: CapaJC
Image:InsertMenuItem.png Source: http://wiki.servicenow.com/index.php?title=File:InsertMenuItem.png License: unknown Contributors: CapaJC, Rachel.sienko
Image:Dirty_form.png Source: http://wiki.servicenow.com/index.php?title=File:Dirty_form.png License: unknown Contributors: Rachel.sienko
Image:PersonalizeFormLayout.png Source: http://wiki.servicenow.com/index.php?title=File:PersonalizeFormLayout.png License: unknown Contributors: CapaJC, Vaughn.romero
Image:SlushBucketView.png Source: http://wiki.servicenow.com/index.php?title=File:SlushBucketView.png License: unknown Contributors: CapaJC
Image:InsertProperty1.png Source: http://wiki.servicenow.com/index.php?title=File:InsertProperty1.png License: unknown Contributors: CapaJC, Guy.yedwab, Swood
Image:RelatedList.png Source: http://wiki.servicenow.com/index.php?title=File:RelatedList.png License: unknown Contributors: Rachel.sienko
Image:CustomerUpdateForm.png Source: http://wiki.servicenow.com/index.php?title=File:CustomerUpdateForm.png License: unknown Contributors: Rachel.sienko
Image:CustomerUpdateIndicator.png Source: http://wiki.servicenow.com/index.php?title=File:CustomerUpdateIndicator.png License: unknown Contributors: Rachel.sienko
Image:FormUpdatePreference.png Source: http://wiki.servicenow.com/index.php?title=File:FormUpdatePreference.png License: unknown Contributors: Rachel.sienko
Image:PersonalizeListLayout1.png Source: http://wiki.servicenow.com/index.php?title=File:PersonalizeListLayout1.png License: unknown Contributors: CapaJC, Swood
Image:PersonalizeListLayout.png Source: http://wiki.servicenow.com/index.php?title=File:PersonalizeListLayout.png License: unknown Contributors: Rachel.sienko
Image:Personalize List Calculation.gif Source: http://wiki.servicenow.com/index.php?title=File:Personalize_List_Calculation.gif License: unknown Contributors: Swood
Image:List control2.png Source: http://wiki.servicenow.com/index.php?title=File:List_control2.png License: unknown Contributors: Don.Goodliffe, Steve.wood, Swood
Image:save_row.png Source: http://wiki.servicenow.com/index.php?title=File:Save_row.png License: unknown Contributors: Rachel.sienko
Image:InsertNewRow.png Source: http://wiki.servicenow.com/index.php?title=File:InsertNewRow.png License: unknown Contributors: Rachel.sienko
Image:List control3.png Source: http://wiki.servicenow.com/index.php?title=File:List_control3.png License: unknown Contributors: Don.Goodliffe, Steve.wood, Swood
Image:List control4.png Source: http://wiki.servicenow.com/index.php?title=File:List_control4.png License: unknown Contributors: Don.Goodliffe, Steve.wood, Swood
Image:List control5.png Source: http://wiki.servicenow.com/index.php?title=File:List_control5.png License: unknown Contributors: Don.Goodliffe, Swood
Image:Personalize List UI Action.png Source: http://wiki.servicenow.com/index.php?title=File:Personalize_List_UI_Action.png License: unknown Contributors: Don.Goodliffe, Swood
Image:AddNewField.png Source: http://wiki.servicenow.com/index.php?title=File:AddNewField.png License: unknown Contributors: CapaJC, Steve.wood
Image:Mandatory_Fields_Create3.png Source: http://wiki.servicenow.com/index.php?title=File:Mandatory_Fields_Create3.png License: unknown Contributors: Swood
Image:DefaultValueConstant.png Source: http://wiki.servicenow.com/index.php?title=File:DefaultValueConstant.png License: unknown Contributors: CapaJC
Image:Default value2.png Source: http://wiki.servicenow.com/index.php?title=File:Default_value2.png License: unknown Contributors: Don.Goodliffe
Image:DefaultValue.png Source: http://wiki.servicenow.com/index.php?title=File:DefaultValue.png License: unknown Contributors: CapaJC
Image:DependentValue.png Source: http://wiki.servicenow.com/index.php?title=File:DependentValue.png License: unknown Contributors: CapaJC
Image:UniqueNumber1.png Source: http://wiki.servicenow.com/index.php?title=File:UniqueNumber1.png License: unknown Contributors: CapaJC
Image:ApplicationTables.png Source: http://wiki.servicenow.com/index.php?title=File:ApplicationTables.png License: unknown Contributors: Rachel.sienko
Image:ApplicationsPicker.png Source: http://wiki.servicenow.com/index.php?title=File:ApplicationsPicker.png License: unknown Contributors: Rachel.sienko
Image:ConflictDialog.png Source: http://wiki.servicenow.com/index.php?title=File:ConflictDialog.png License: unknown Contributors: Rachel.sienko
Image:MoveFile.png Source: http://wiki.servicenow.com/index.php?title=File:MoveFile.png License: unknown Contributors: Rachel.sienko
Image:ApplicationFile.png Source: http://wiki.servicenow.com/index.php?title=File:ApplicationFile.png License: unknown Contributors: Rachel.sienko
Image:UpdateSet.png Source: http://wiki.servicenow.com/index.php?title=File:UpdateSet.png License: unknown Contributors: Rachel.sienko
Image:DeleteApplication.png Source: http://wiki.servicenow.com/index.php?title=File:DeleteApplication.png License: unknown Contributors: Rachel.sienko
Image:DeleteApplicationFinished.png Source: http://wiki.servicenow.com/index.php?title=File:DeleteApplicationFinished.png License: unknown Contributors: Rachel.sienko
Image:RestoreRecords.png Source: http://wiki.servicenow.com/index.php?title=File:RestoreRecords.png License: unknown Contributors: Rachel.sienko
Image:ApplicationCategory1.png Source: http://wiki.servicenow.com/index.php?title=File:ApplicationCategory1.png License: unknown Contributors: CapaJC
Image:Application.png Source: http://wiki.servicenow.com/index.php?title=File:Application.png License: unknown Contributors: CapaJC, Guy.yedwab, Rachel.sienko
Image:Module.png Source: http://wiki.servicenow.com/index.php?title=File:Module.png License: unknown Contributors: CapaJC, Guy.yedwab
Image:ExternalLink1.png Source: http://wiki.servicenow.com/index.php?title=File:ExternalLink1.png License: unknown Contributors: CapaJC, Guy.yedwab, Swood
Image:RequestTable.png Source: http://wiki.servicenow.com/index.php?title=File:RequestTable.png License: unknown Contributors: Rachel.sienko
Image:CreateModule.png Source: http://wiki.servicenow.com/index.php?title=File:CreateModule.png License: unknown Contributors: Rachel.sienko
Image:AutoNumber.png Source: http://wiki.servicenow.com/index.php?title=File:AutoNumber.png License: unknown Contributors: Rachel.sienko
Image:TableSecurity.png Source: http://wiki.servicenow.com/index.php?title=File:TableSecurity.png License: unknown Contributors: Rachel.sienko
Image:ExtendTable.png Source: http://wiki.servicenow.com/index.php?title=File:ExtendTable.png License: unknown Contributors: Rachel.sienko
Image:NewCMDBclass.png Source: http://wiki.servicenow.com/index.php?title=File:NewCMDBclass.png License: unknown Contributors: Rachel.sienko
Image:Table Creator.png Source: http://wiki.servicenow.com/index.php?title=File:Table_Creator.png License: unknown Contributors: Steve.wood
Image:Newtable1.png Source: http://wiki.servicenow.com/index.php?title=File:Newtable1.png License: unknown Contributors: CapaJC
Image:Related Items field.png Source: http://wiki.servicenow.com/index.php?title=File:Related_Items_field.png License: unknown Contributors: Guy.yedwab
Image:Plus.gif Source: http://wiki.servicenow.com/index.php?title=File:Plus.gif License: unknown Contributors: CapaJC
Image:CI Relationship Page.png Source: http://wiki.servicenow.com/index.php?title=File:CI_Relationship_Page.png License: unknown Contributors: Guy.yedwab, Steve.wood

192

Image Sources, Licenses and Contributors


Image:Flat layout.gif Source: http://wiki.servicenow.com/index.php?title=File:Flat_layout.gif License: unknown Contributors: Guy.yedwab
Image:Flat tree view.png Source: http://wiki.servicenow.com/index.php?title=File:Flat_tree_view.png License: unknown Contributors: Guy.yedwab, Steve.wood
Image:Tree layout.gif Source: http://wiki.servicenow.com/index.php?title=File:Tree_layout.gif License: unknown Contributors: Guy.yedwab
Image:Tree view.png Source: http://wiki.servicenow.com/index.php?title=File:Tree_view.png License: unknown Contributors: Guy.yedwab, Steve.wood
Image:Bsm.gif Source: http://wiki.servicenow.com/index.php?title=File:Bsm.gif License: unknown Contributors: Guy.yedwab
Image:Relationship map.png Source: http://wiki.servicenow.com/index.php?title=File:Relationship_map.png License: unknown Contributors: Guy.yedwab, Steve.wood
Image:CI_Related_Lists.png Source: http://wiki.servicenow.com/index.php?title=File:CI_Related_Lists.png License: unknown Contributors: Swood
Image:Add content.png Source: http://wiki.servicenow.com/index.php?title=File:Add_content.png License: unknown Contributors: Rob.woodbyrne
Image:Add.png Source: http://wiki.servicenow.com/index.php?title=File:Add.png License: unknown Contributors: CapaJC
Image:Sections close.png Source: http://wiki.servicenow.com/index.php?title=File:Sections_close.png License: unknown Contributors: Rob.woodbyrne
Image:Mk gauge btn.png Source: http://wiki.servicenow.com/index.php?title=File:Mk_gauge_btn.png License: unknown Contributors: Rob.woodbyrne
Image:Add to home btn.png Source: http://wiki.servicenow.com/index.php?title=File:Add_to_home_btn.png License: unknown Contributors: Rob.woodbyrne
Image:New.png Source: http://wiki.servicenow.com/index.php?title=File:New.png License: unknown Contributors: CapaJC
Image:Try it.png Source: http://wiki.servicenow.com/index.php?title=File:Try_it.png License: unknown Contributors: Rob.woodbyrne
Image:Role Delegator1.png Source: http://wiki.servicenow.com/index.php?title=File:Role_Delegator1.png License: unknown Contributors: Swood
Image:Role Delegator Change.png Source: http://wiki.servicenow.com/index.php?title=File:Role_Delegator_Change.png License: unknown Contributors: Swood
Image:Role User Record.png Source: http://wiki.servicenow.com/index.php?title=File:Role_User_Record.png License: unknown Contributors: Swood
Image:Role Delegator List.png Source: http://wiki.servicenow.com/index.php?title=File:Role_Delegator_List.png License: unknown Contributors: Swood
Image:Role Audit.png Source: http://wiki.servicenow.com/index.php?title=File:Role_Audit.png License: unknown Contributors: Swood
Image:Role Delegation.png Source: http://wiki.servicenow.com/index.php?title=File:Role_Delegation.png License: unknown Contributors: Swood
Image:Role Change Request.png Source: http://wiki.servicenow.com/index.php?title=File:Role_Change_Request.png License: unknown Contributors: Swood
Image:acl_workflow.png Source: http://wiki.servicenow.com/index.php?title=File:Acl_workflow.png License: unknown Contributors: Vaughn.romero
Image:acl_evaluate_permissions.png Source: http://wiki.servicenow.com/index.php?title=File:Acl_evaluate_permissions.png License: unknown Contributors: Vaughn.romero
Image:acl_matching.png Source: http://wiki.servicenow.com/index.php?title=File:Acl_matching.png License: unknown Contributors: Vaughn.romero
Image:Acl debug.png Source: http://wiki.servicenow.com/index.php?title=File:Acl_debug.png License: unknown Contributors: Pat.Casey, Vaughn.romero
Image:Acl debug list.png Source: http://wiki.servicenow.com/index.php?title=File:Acl_debug_list.png License: unknown Contributors: Pat.Casey, Vaughn.romero
Image:Caution-diamond.png Source: http://wiki.servicenow.com/index.php?title=File:Caution-diamond.png License: unknown Contributors: John.roberts
Image:SecurityManagerDefault.png Source: http://wiki.servicenow.com/index.php?title=File:SecurityManagerDefault.png License: unknown Contributors: Neola
Image:sec_admin_role.png Source: http://wiki.servicenow.com/index.php?title=File:Sec_admin_role.png License: unknown Contributors: David Loo
File:Icon-elevated.png Source: http://wiki.servicenow.com/index.php?title=File:Icon-elevated.png License: unknown Contributors: Guy.yedwab
Image:welcome_header_lock.png Source: http://wiki.servicenow.com/index.php?title=File:Welcome_header_lock.png License: unknown Contributors: David Loo, Steve.wood
Image:elev_select.png Source: http://wiki.servicenow.com/index.php?title=File:Elev_select.png License: unknown Contributors: David Loo, Steve.wood
Image:elevated_header.png Source: http://wiki.servicenow.com/index.php?title=File:Elevated_header.png License: unknown Contributors: David Loo, Steve.wood
Image:elevated_roles.png Source: http://wiki.servicenow.com/index.php?title=File:Elevated_roles.png License: unknown Contributors: Phillip.salzman
Image:Highsecuritywarning.png Source: http://wiki.servicenow.com/index.php?title=File:Highsecuritywarning.png License: unknown Contributors: Peter.smith, Steve.wood, Wallymarx
Image:Perf Metrics Add Content.gif Source: http://wiki.servicenow.com/index.php?title=File:Perf_Metrics_Add_Content.gif License: unknown Contributors: CapaJC, Swood
Image:Perf Metrics Filter Buttons.gif Source: http://wiki.servicenow.com/index.php?title=File:Perf_Metrics_Filter_Buttons.gif License: unknown Contributors: Swood
Image:Perf Metrics Database.gif Source: http://wiki.servicenow.com/index.php?title=File:Perf_Metrics_Database.gif License: unknown Contributors: Swood
Image:Plugin.gif Source: http://wiki.servicenow.com/index.php?title=File:Plugin.gif License: unknown Contributors: CapaJC
Image:Perf Metrics Discovery.gif Source: http://wiki.servicenow.com/index.php?title=File:Perf_Metrics_Discovery.gif License: unknown Contributors: Swood
Image:Perf Metrics Disk Partitions1.gif Source: http://wiki.servicenow.com/index.php?title=File:Perf_Metrics_Disk_Partitions1.gif License: unknown Contributors: Swood
Image:Business Services Disk Partitions.gif Source: http://wiki.servicenow.com/index.php?title=File:Business_Services_Disk_Partitions.gif License: unknown Contributors: Swood
Image:Perf Metrics Disk Partitions2.gif Source: http://wiki.servicenow.com/index.php?title=File:Perf_Metrics_Disk_Partitions2.gif License: unknown Contributors: Swood
Image:Perf Metrics Linux Stats.gif Source: http://wiki.servicenow.com/index.php?title=File:Perf_Metrics_Linux_Stats.gif License: unknown Contributors: Swood
Image:Perf Metrics Logging.gif Source: http://wiki.servicenow.com/index.php?title=File:Perf_Metrics_Logging.gif License: unknown Contributors: Swood
Image:Perf Metrics SQL.gif Source: http://wiki.servicenow.com/index.php?title=File:Perf_Metrics_SQL.gif License: unknown Contributors: Swood
Image:Perf Metrics Node2.gif Source: http://wiki.servicenow.com/index.php?title=File:Perf_Metrics_Node2.gif License: unknown Contributors: Swood
Image:Perf Metrics Servlet.gif Source: http://wiki.servicenow.com/index.php?title=File:Perf_Metrics_Servlet.gif License: unknown Contributors: Swood
Image:New gray.png Source: http://wiki.servicenow.com/index.php?title=File:New_gray.png License: unknown Contributors: Rob.woodbyrne
Image:Expander icon.png Source: http://wiki.servicenow.com/index.php?title=File:Expander_icon.png License: unknown Contributors: Rob.woodbyrne
Image:Optional other.png Source: http://wiki.servicenow.com/index.php?title=File:Optional_other.png License: unknown Contributors: Guy.yedwab, Jared.laethem
Image:Optional other fall.png Source: http://wiki.servicenow.com/index.php?title=File:Optional_other_fall.png License: unknown Contributors: Guy.yedwab
Image:Reporting - Multi group.png Source: http://wiki.servicenow.com/index.php?title=File:Reporting_-_Multi_group.png License: unknown Contributors: Joseph.messerschmidt
Image:Reporting - Direct export.png Source: http://wiki.servicenow.com/index.php?title=File:Reporting_-_Direct_export.png License: unknown Contributors: Joseph.messerschmidt
Image:Reporting - Export Details.png Source: http://wiki.servicenow.com/index.php?title=File:Reporting_-_Export_Details.png License: unknown Contributors: Joseph.messerschmidt
Image:SLA Example.png Source: http://wiki.servicenow.com/index.php?title=File:SLA_Example.png License: unknown Contributors: G.yedwab, Guy.yedwab
Image:SLA Workflow.png Source: http://wiki.servicenow.com/index.php?title=File:SLA_Workflow.png License: unknown Contributors: G.yedwab, Guy.yedwab
Image:Test Incident.png Source: http://wiki.servicenow.com/index.php?title=File:Test_Incident.png License: unknown Contributors: G.yedwab, Guy.yedwab
Image:Test SLA.png Source: http://wiki.servicenow.com/index.php?title=File:Test_SLA.png License: unknown Contributors: G.yedwab, Guy.yedwab
Image:Test SLA2.png Source: http://wiki.servicenow.com/index.php?title=File:Test_SLA2.png License: unknown Contributors: G.yedwab, Guy.yedwab
Image:Test Workflow.png Source: http://wiki.servicenow.com/index.php?title=File:Test_Workflow.png License: unknown Contributors: G.yedwab
Image:Workflow Properties.png Source: http://wiki.servicenow.com/index.php?title=File:Workflow_Properties.png License: unknown Contributors: Guy.yedwab, Steve.wood
Image:VariablePicker.png Source: http://wiki.servicenow.com/index.php?title=File:VariablePicker.png License: unknown Contributors: Guy.yedwab
Image:Variablepicker2.png Source: http://wiki.servicenow.com/index.php?title=File:Variablepicker2.png License: unknown Contributors: Guy.yedwab
Image:Notification.png Source: http://wiki.servicenow.com/index.php?title=File:Notification.png License: unknown Contributors: Guy.yedwab
Image:SLA Workflow2.png Source: http://wiki.servicenow.com/index.php?title=File:SLA_Workflow2.png License: unknown Contributors: Guy.yedwab
Image:SLA workflow3.png Source: http://wiki.servicenow.com/index.php?title=File:SLA_workflow3.png License: unknown Contributors: Guy.yedwab
Image:Workflow Actions.png Source: http://wiki.servicenow.com/index.php?title=File:Workflow_Actions.png License: unknown Contributors: Guy.yedwab
Image:Service Catalog Request.gif Source: http://wiki.servicenow.com/index.php?title=File:Service_Catalog_Request.gif License: unknown Contributors: Swood
Image:Incident Events.png Source: http://wiki.servicenow.com/index.php?title=File:Incident_Events.png License: unknown Contributors: Swood
Image:Change Request Global.gif Source: http://wiki.servicenow.com/index.php?title=File:Change_Request_Global.gif License: unknown Contributors: Swood

193

Image Sources, Licenses and Contributors


Image:Knowledge Base.png Source: http://wiki.servicenow.com/index.php?title=File:Knowledge_Base.png License: unknown Contributors: Bgblkfly, Cheryl.dolan, Guy.yedwab
image:Book.png Source: http://wiki.servicenow.com/index.php?title=File:Book.png License: unknown Contributors: CapaJC, Guy.yedwab
Image:ArticleView.png Source: http://wiki.servicenow.com/index.php?title=File:ArticleView.png License: unknown Contributors: Cheryl.dolan
Image:Book.png Source: http://wiki.servicenow.com/index.php?title=File:Book.png License: unknown Contributors: CapaJC, Guy.yedwab
Image:HelpfulYes1.png Source: http://wiki.servicenow.com/index.php?title=File:HelpfulYes1.png License: unknown Contributors: Cheryl.dolan
Image:HelpfulNo1.png Source: http://wiki.servicenow.com/index.php?title=File:HelpfulNo1.png License: unknown Contributors: Cheryl.dolan
Image:KB_CreateIncident.png Source: http://wiki.servicenow.com/index.php?title=File:KB_CreateIncident.png License: unknown Contributors: Cheryl.dolan
Image:FiveStarRating.png Source: http://wiki.servicenow.com/index.php?title=File:FiveStarRating.png License: unknown Contributors: Cheryl.dolan
Image:KBFeedback_Flagged.png Source: http://wiki.servicenow.com/index.php?title=File:KBFeedback_Flagged.png License: unknown Contributors: Cheryl.dolan
Image:Knowledge_Form.png Source: http://wiki.servicenow.com/index.php?title=File:Knowledge_Form.png License: unknown Contributors: Cheryl.dolan
Image:Icon-referencelookup.png Source: http://wiki.servicenow.com/index.php?title=File:Icon-referencelookup.png License: unknown Contributors: Guy.yedwab
Image:Kb attach1.jpg Source: http://wiki.servicenow.com/index.php?title=File:Kb_attach1.jpg License: unknown Contributors: John.roberts
Image:Kb attach2.jpg Source: http://wiki.servicenow.com/index.php?title=File:Kb_attach2.jpg License: unknown Contributors: John.roberts
Image:InctoKno.png Source: http://wiki.servicenow.com/index.php?title=File:InctoKno.png License: unknown Contributors: Guy.yedwab, Steve.wood
Image:InctoKno2.png Source: http://wiki.servicenow.com/index.php?title=File:InctoKno2.png License: unknown Contributors: Guy.yedwab
Image:Cspc-new.png Source: http://wiki.servicenow.com/index.php?title=File:Cspc-new.png License: unknown Contributors: David.Bailey
Image:Additional.png Source: http://wiki.servicenow.com/index.php?title=File:Additional.png License: unknown Contributors: Guy.yedwab, Rachel.sienko
Image:recurring_price.png Source: http://wiki.servicenow.com/index.php?title=File:Recurring_price.png License: unknown Contributors: Suzannes
Image:recurring_shop_cart.png Source: http://wiki.servicenow.com/index.php?title=File:Recurring_shop_cart.png License: unknown Contributors: Suzannes
Image:recurring_price_rollup.png Source: http://wiki.servicenow.com/index.php?title=File:Recurring_price_rollup.png License: unknown Contributors: Suzannes
Image:recurring_price_request_rollup.png Source: http://wiki.servicenow.com/index.php?title=File:Recurring_price_request_rollup.png License: unknown Contributors: Suzannes
Image:Catalog_No_Quantity.png Source: http://wiki.servicenow.com/index.php?title=File:Catalog_No_Quantity.png License: unknown Contributors: Rachel.sienko, Swood
Image:Catalog_Item_View_Quantity.png Source: http://wiki.servicenow.com/index.php?title=File:Catalog_Item_View_Quantity.png License: unknown Contributors: Swood
Image:Catalog_Item_Hide_Quantity.png Source: http://wiki.servicenow.com/index.php?title=File:Catalog_Item_Hide_Quantity.png License: unknown Contributors: Swood
Image:CatalogQuantity1.png Source: http://wiki.servicenow.com/index.php?title=File:CatalogQuantity1.png License: unknown Contributors: CapaJC, Guy.yedwab, Swood
Image:Variable personalize.png Source: http://wiki.servicenow.com/index.php?title=File:Variable_personalize.png License: unknown Contributors: CapaJC, Pat.Casey, Rachel.sienko, Swood
Image:Record Producer.png Source: http://wiki.servicenow.com/index.php?title=File:Record_Producer.png License: unknown Contributors: Cheryl.dolan
Image:VariableDefinition.png Source: http://wiki.servicenow.com/index.php?title=File:VariableDefinition.png License: unknown Contributors: Rachel.sienko
Image:Variable help expanded.png Source: http://wiki.servicenow.com/index.php?title=File:Variable_help_expanded.png License: unknown Contributors: CapaJC, Guy.yedwab, Pat.Casey
Image:Var roles.png Source: http://wiki.servicenow.com/index.php?title=File:Var_roles.png License: unknown Contributors: CapaJC, David.Bailey, Guy.yedwab, Pat.Casey
Image:assignvariablerole.png Source: http://wiki.servicenow.com/index.php?title=File:Assignvariablerole.png License: unknown Contributors: David.Bailey
Image:QuestionChoice.png Source: http://wiki.servicenow.com/index.php?title=File:QuestionChoice.png License: unknown Contributors: Rachel.sienko
Image:Cat_op.png Source: http://wiki.servicenow.com/index.php?title=File:Cat_op.png License: unknown Contributors: Pat.Casey, Rachel.sienko
Image:Og text.png Source: http://wiki.servicenow.com/index.php?title=File:Og_text.png License: unknown Contributors: Guy.yedwab, Pat.Casey, Rachel.sienko
Image:Og variable.png Source: http://wiki.servicenow.com/index.php?title=File:Og_variable.png License: unknown Contributors: Pat.Casey
Image:Og rule.png Source: http://wiki.servicenow.com/index.php?title=File:Og_rule.png License: unknown Contributors: Pat.Casey
Image:Og rule detail.png Source: http://wiki.servicenow.com/index.php?title=File:Og_rule_detail.png License: unknown Contributors: Pat.Casey
Image:Og rule detail3.png Source: http://wiki.servicenow.com/index.php?title=File:Og_rule_detail3.png License: unknown Contributors: Pat.Casey
Image:Og sample 1.png Source: http://wiki.servicenow.com/index.php?title=File:Og_sample_1.png License: unknown Contributors: Guy.yedwab, Pat.Casey
Image:Og sample 2.png Source: http://wiki.servicenow.com/index.php?title=File:Og_sample_2.png License: unknown Contributors: Guy.yedwab, Pat.Casey
Image:Og sample 4.png Source: http://wiki.servicenow.com/index.php?title=File:Og_sample_4.png License: unknown Contributors: Guy.yedwab, Pat.Casey
Image:Og sample 5.png Source: http://wiki.servicenow.com/index.php?title=File:Og_sample_5.png License: unknown Contributors: Guy.yedwab, Pat.Casey
Image:SCWorkflowForm.png Source: http://wiki.servicenow.com/index.php?title=File:SCWorkflowForm.png License: unknown Contributors: Guy.yedwab, Steve.wood
Image:SCWorkflowFormActivities.png Source: http://wiki.servicenow.com/index.php?title=File:SCWorkflowFormActivities.png License: unknown Contributors: David.Bailey
Image:Locked.png Source: http://wiki.servicenow.com/index.php?title=File:Locked.png License: unknown Contributors: Steve.wood
Image:Variable Picker.png Source: http://wiki.servicenow.com/index.php?title=File:Variable_Picker.png License: unknown Contributors: Guy.yedwab
Image:SCWorkflowForm1.png Source: http://wiki.servicenow.com/index.php?title=File:SCWorkflowForm1.png License: unknown Contributors: Guy.yedwab, Steve.wood
Image:SCWorkflowForm2.png Source: http://wiki.servicenow.com/index.php?title=File:SCWorkflowForm2.png License: unknown Contributors: Guy.yedwab, Steve.wood
Image:SCWorkflowForm3.png Source: http://wiki.servicenow.com/index.php?title=File:SCWorkflowForm3.png License: unknown Contributors: Guy.yedwab, Steve.wood
Image:SCWorkflowForm4.png Source: http://wiki.servicenow.com/index.php?title=File:SCWorkflowForm4.png License: unknown Contributors: Guy.yedwab, Steve.wood
Image:SCWorkflowExample.png Source: http://wiki.servicenow.com/index.php?title=File:SCWorkflowExample.png License: unknown Contributors: Guy.yedwab, Steve.wood
Image:HomepageUnload.png Source: http://wiki.servicenow.com/index.php?title=File:HomepageUnload.png License: unknown Contributors: Rachel.sienko
Image:updatesetapp.png Source: http://wiki.servicenow.com/index.php?title=File:Updatesetapp.png License: unknown Contributors: G.yedwab
Image:Update set picker.png Source: http://wiki.servicenow.com/index.php?title=File:Update_set_picker.png License: unknown Contributors: G.yedwab
Image:Us3.png Source: http://wiki.servicenow.com/index.php?title=File:Us3.png License: unknown Contributors: CapaJC, Don.Goodliffe
Image:UpdateSetSelectVersions.png Source: http://wiki.servicenow.com/index.php?title=File:UpdateSetSelectVersions.png License: unknown Contributors: Rachel.sienko
Image:UpdateSetCompare.png Source: http://wiki.servicenow.com/index.php?title=File:UpdateSetCompare.png License: unknown Contributors: Rachel.sienko
Image:UpdateSetRecord.png Source: http://wiki.servicenow.com/index.php?title=File:UpdateSetRecord.png License: unknown Contributors: Rachel.sienko
Image:ShowRecord.png Source: http://wiki.servicenow.com/index.php?title=File:ShowRecord.png License: unknown Contributors: Rachel.sienko
Image:ShowUpdate.png Source: http://wiki.servicenow.com/index.php?title=File:ShowUpdate.png License: unknown Contributors: Rachel.sienko
Image:UpdateSetsMerge.png Source: http://wiki.servicenow.com/index.php?title=File:UpdateSetsMerge.png License: unknown Contributors: Rachel.sienko
Image:Update_Sets_Collision_Report1.png Source: http://wiki.servicenow.com/index.php?title=File:Update_Sets_Collision_Report1.png License: unknown Contributors: Swood
Image:Update Set Collisions.png Source: http://wiki.servicenow.com/index.php?title=File:Update_Set_Collisions.png License: unknown Contributors: Swood
Image:Update Record.gif Source: http://wiki.servicenow.com/index.php?title=File:Update_Record.gif License: unknown Contributors: Swood
Image:Us20.png Source: http://wiki.servicenow.com/index.php?title=File:Us20.png License: unknown Contributors: CapaJC, Don.Goodliffe
Image:Uds1.png Source: http://wiki.servicenow.com/index.php?title=File:Uds1.png License: unknown Contributors: G.yedwab
Image:Update Sets Preview.png Source: http://wiki.servicenow.com/index.php?title=File:Update_Sets_Preview.png License: unknown Contributors: Swood
Image:Update Sets Compare.png Source: http://wiki.servicenow.com/index.php?title=File:Update_Sets_Compare.png License: unknown Contributors: Swood
Image:Update_Sets_Preview1.png Source: http://wiki.servicenow.com/index.php?title=File:Update_Sets_Preview1.png License: unknown Contributors: Swood
Image:UpdateSetProblems.png Source: http://wiki.servicenow.com/index.php?title=File:UpdateSetProblems.png License: unknown Contributors: Rachel.sienko
Image:UpdateProblems.png Source: http://wiki.servicenow.com/index.php?title=File:UpdateProblems.png License: unknown Contributors: Rachel.sienko

194

Image Sources, Licenses and Contributors


Image:Update_Set_Commit.png Source: http://wiki.servicenow.com/index.php?title=File:Update_Set_Commit.png License: unknown Contributors: Swood
Image:Update_Set_Commit_Confirm.png Source: http://wiki.servicenow.com/index.php?title=File:Update_Set_Commit_Confirm.png License: unknown Contributors: Swood
Image:Tick.png Source: http://wiki.servicenow.com/index.php?title=File:Tick.png License: unknown Contributors: Mark.odonnell
Image:ReleaseCycle2011.png Source: http://wiki.servicenow.com/index.php?title=File:ReleaseCycle2011.png License: unknown Contributors: Rachel.sienko
Image:CheckRelease.png Source: http://wiki.servicenow.com/index.php?title=File:CheckRelease.png License: unknown Contributors: Rachel.sienko
Image:Upgrade email.png Source: http://wiki.servicenow.com/index.php?title=File:Upgrade_email.png License: unknown Contributors: David Loo
Image:ImportsetTable.jpg Source: http://wiki.servicenow.com/index.php?title=File:ImportsetTable.jpg License: unknown Contributors: Mark.odonnell@service-now.com
Image:ImportRW001.png Source: http://wiki.servicenow.com/index.php?title=File:ImportRW001.png License: unknown Contributors: David Loo, Rob.woodbyrne
Image:ImportSetList.png Source: http://wiki.servicenow.com/index.php?title=File:ImportSetList.png License: unknown Contributors: Jared.laethem
Image:ImportSetForm.png Source: http://wiki.servicenow.com/index.php?title=File:ImportSetForm.png License: unknown Contributors: David Loo, Jared.laethem
Image:Data Source File.gif Source: http://wiki.servicenow.com/index.php?title=File:Data_Source_File.gif License: unknown Contributors: Swood
Image:File format.jpg Source: http://wiki.servicenow.com/index.php?title=File:File_format.jpg License: unknown Contributors: Jared.laethem
Image:Xls shot.png Source: http://wiki.servicenow.com/index.php?title=File:Xls_shot.png License: unknown Contributors: Jared.laethem
Image:Csv alternate delimiter.jpg Source: http://wiki.servicenow.com/index.php?title=File:Csv_alternate_delimiter.jpg License: unknown Contributors: David Loo
Image:Data source with properties field set.png Source: http://wiki.servicenow.com/index.php?title=File:Data_source_with_properties_field_set.png License: unknown Contributors:
Jonathan.sparks
Image:JDBC shot.png Source: http://wiki.servicenow.com/index.php?title=File:JDBC_shot.png License: unknown Contributors: Jared.laethem, Steve.wood, Swood
Image:Data Source LDAP.gif Source: http://wiki.servicenow.com/index.php?title=File:Data_Source_LDAP.gif License: unknown Contributors: Swood
Image:Scheduled_Imports.png Source: http://wiki.servicenow.com/index.php?title=File:Scheduled_Imports.png License: unknown Contributors: Steve.wood, Vaughn.romero
Image:import_process_transform.png Source: http://wiki.servicenow.com/index.php?title=File:Import_process_transform.png License: unknown Contributors: Vaughn.romero
Image:transform_map_record.png Source: http://wiki.servicenow.com/index.php?title=File:Transform_map_record.png License: unknown Contributors: Vaughn.romero
Image:field_map_record.png Source: http://wiki.servicenow.com/index.php?title=File:Field_map_record.png License: unknown Contributors: Vaughn.romero
Image:Mapping_assist.png Source: http://wiki.servicenow.com/index.php?title=File:Mapping_assist.png License: unknown Contributors: Vaughn.romero
Image:field_map_date_format.png Source: http://wiki.servicenow.com/index.php?title=File:Field_map_date_format.png License: unknown Contributors: Vaughn.romero
Image:field_map_date_format_options.png Source: http://wiki.servicenow.com/index.php?title=File:Field_map_date_format_options.png License: unknown Contributors: Vaughn.romero
Image:field_map_source_script.png Source: http://wiki.servicenow.com/index.php?title=File:Field_map_source_script.png License: unknown Contributors: Vaughn.romero

195