Professional Documents
Culture Documents
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
): 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.
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:
Modified: contains data that has not been saved. Default color is green.
Using Forms
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
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
Related lists
Personalizing Forms
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.
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:
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.
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.
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.
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.
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
15
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
17
18
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:
19
4. Update.
20
21
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
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.
22
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
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.
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.
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
25
is
Restoring Deleted
Records
Application is deleted
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.
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.
27
28
When you change application menus or modules, the application navigator automatically refreshes to display
the changes.
29
Field
Description
Title
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.
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.
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
Image
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:).
Description
Content Page
Displays the content page you select in the Content page reference field. See Creating a Content Page.
Homepage
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.
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
Script (from
Arguments:)
Search Screen
Link that displays a blank form for searching records in the table. Use the View name field to specify a view.
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:)
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()
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
32
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.
33
Creating Tables
1.
2.
3.
4.
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.
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
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.
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.
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
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.
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.
36
37
4. [Optional] Modify the number
format by updating the fields (see
table).
5. Click Submit.
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.
38
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.
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.
Note: You cannot extend system tables, such as sys_audit, or database view tables.
The new table now has fields from the Task table and supports workflows.
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.
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.
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
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.
41
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.
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.
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.
43
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 (
44
Tree Layout
Click the tree layout icon (
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.
45
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
46
47
button.
3. To add the new gauge to your homepage, without having to add it later, click the
button.
button.
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");
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.
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
Last name
Title
Department
Password
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.
Active
Select this check box to make this user active. Only the administrator sees inactive user in:
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
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
Business
phone
Mobile phone
Photo
50
51
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
Manager
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.
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.
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.
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.
4. Click Submit.
A change request is created for the role delegator request. The change request is approved automatically.
53
Role Delegation
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
User
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
57
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.
5. Click Submit.
58
Note: The Requires roles related list is available only after you save the ACL rule.
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:
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.
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
execute
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
edit_ci_relations
save_as_template
add_to_list
list_edit
report_on
personalize_choices User cannot right-click a choice list field and select Personalize Choices.
Client-callable
script includes
Processors
UI pages
Record
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.
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.
Operation
Description
execute
create
read
write
delete
edit_task_relations
edit_ci_relations
save_as_template
add_to_list
61
list_edit
report_on
62
Description
execute
create
read
write
delete
edit_task_relations
edit_ci_relations
save_as_template
add_to_list
list_edit
report_on
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.
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.
63
64
Troubleshooting
Here is a list of common ACL rule errors and their solutions. Enable debugging to help troubleshoot an issue.
Error or Symptom
Solution
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.
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.
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.
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.
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.
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.
65
Description
glide.sys_reference_row_check Controls whether the script conditions of Access Control Rules apply to a table's reference fields.
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.
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
glide.html.escape_script
67
glide.ui.forgetme
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
glide.basicauth.required.csv
glide.basicauth.required.excel
glide.basicauth.required.importprocessor
glide.basicauth.required.pdf
glide.basicauth.required.rss
glide.basicauth.required.scriptedprocessor
glide.basicauth.required.soap
glide.basicauth.required.unl
glide.basicauth.required.xml
glide.basicauth.required.xsd
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
glide.login.autocomplete
The following properties have been defined in the sys_properties table, but are not visible on the High Security
Settings page.
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
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.
69
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
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
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
write
all
records
Modification of records to this table has been set to the "nobody" role which means
records cannot be modified
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
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.
71
Note: Any edits being made when the page reloads are lost.
72
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.
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
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
Set
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.
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 ','.
Creating Reports
84
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.
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
The Included in Email related list will include those reports when the parent report is emailed.
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.
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.
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
Description
Orientation
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.
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.
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
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 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.
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
This example creates a new Urgent SLA workflow to be used for a priority one ticket.
93
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.
94
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
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
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
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.
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
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}.
Event States
Events may exist in one of several states:
State
100
Description
Ready
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:
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:
101
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
In addition to the article's content, the page may show these elements, depending on administrator settings:
103
104
[1]
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.
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
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:
106
Creating Knowledge
107
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
Article type
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
109
Creating Knowledge
110
Creating Knowledge
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.
112
113
Knowledge portal
Article view
Knowledge search
Other related elements
Description
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.
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.
114
Select the default order for articles within each topic section on
the knowledge portal.
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)
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)
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)
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.
115
Description
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)
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)
Show "Create Incident" link after a Knowledge article is rated not helpful.
(glide.knowman.create_incident_link.display)
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.
116
List of roles (comma separated) that can see five-star rating option.
(glide.knowman.show_star_rating.roles)
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.
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.
List of roles (comma separated) that can see user comments on an article.
(glide.knowman.show_user_feedback.roles)
117
Property
Description
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.
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)
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.
Field
119
Description
Name
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.
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.
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
[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
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.
120
Additional Categories
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.
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
122
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.
123
Choice lists
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.
124
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.
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
Template
View
Preview Link
Script
Scripts that should be run to dynamically assign values to specific fields on the created record.
127
Variable Definition
Field
Description
Name
Order
Cat item
Include none
An option to include or exclude None as a selection choice for the variable (available for some variable types only).
Question
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
Active
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.
Visible on
Bundles
Visible on
Guides
Visible
Elsewhere
An option to display the variable on other types of catalog items (such as content items and record producers)
128
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
130
Question choice
131
132
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
133
Example 1
Example of use
This example shows an order guide in
operation.
1. The system prompts the user for
information:
Example 2
Order guide
134
3. The user configures each item:
Order guide
Order guide
135
Order guide
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
Field
137
Input Value
Name
Laptop Fulfillment
Table
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
Timezone
Description
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.
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.
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
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.
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.
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.
142
143
Note: Do not directly modify Customer Updates [sys_update_xml] records.
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
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).
145
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.
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.
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.
147
148
149
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
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
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.
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).
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:
The application file record for the object by clicking the Show Application File related link.
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.
Reporting on Updates
Run a report to view
customizations to an instance.
the
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.
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.
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.
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:
154
155
156
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
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.
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.
159
4. Resolve the problem:
Missing objects
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.
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.
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.
A new table
A new field
The field is dropped from the database, deleting any data on it.
A deleted field
A resized field
The field resize is reversed. If the field has been increased, data is truncated first to avoid errors.
A record is deleted
The Back Out button is available only on the most recent update set.
161
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
Patch
release
Hotfix
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)
163
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.
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.
164
Confirming an Upgrade
To confirm that a recent upgrade to a
feature release has been performed:
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.
The selected user now receives a notification when an upgrade is successfully completed.
165
FAQ
Can I get only some of an
upgrade's features?
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
Data Sources
Adding JDBC Drivers for Data Sources not Supported in Out-of-Box Systems
Web Proxy
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
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.
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.
Data Sources
Adding JDBC Drivers for Data Sources not Supported in Out-of-Box Systems
Web Proxy
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.
171
if (action == 'insert')
ignore = true;
Data Sources
Import Sets
Data Sources
Adding JDBC Drivers for Data Sources not Supported in Out-of-Box Systems
Web Proxy
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
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
Format
Select one of the following formats from the list: CSV, CSV (tab), Excel, XML.
Zipped
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?
Choose the appropriate retrieval method for this file. See File Retrieval Methods for details.
File path
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
Password
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
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
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.
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:
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.
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
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
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
. 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
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.
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
The following fields are available when you select a JDBC connection:
Field
Description
Name
A label is a tag on a piece of data. Labels are logical, descriptive names that are localizable.
ServiceNow uses the label you entered to construct a unique table name. This prevents namespace collision with an already
existing table.
Type
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
Database port
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
Password
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.
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.
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.
Select the field name from the source table that will be used as the filter in the next run.
Data Sources
180
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:
Description
Name
A label is a tag on a piece of data. Labels are logical, descriptive names that are localizable.
ServiceNow uses the label you entered to construct a unique table name. This prevents namespace collision with an already
existing table.
Type
LDAP target
Data Sources
181
References
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
Data Sources
Adding JDBC Drivers for Data Sources not Supported in Out-of-Box Systems
Web Proxy
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:
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.
183
Data Sources
Adding JDBC Drivers for Data Sources not Supported in Out-of-Box Systems
Web Proxy
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.
184
Input Value
Name
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 to run business rules while the transformation inserts or updates data into the target table.
Enforce Mandatory
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
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.
185
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:
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.
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.
187
Date Format
Description
dd-MM-yyyy
Day-month-year
dd-MM-yyyy hh:mm:ss
Day-month-year hours-minutes-seconds
Month-day-year
MM-dd-yyyy hh:mm:ss
Month-day-year hours-minutes-seconds
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.
188
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.
189
190
191
192
193
194
195