ServiceNow is a cloud based IT Service Management (ITSM) tool. It provides a single system of record for:
All aspects of IT Services live in the ServiceNow ecosystem. It gives us a complete view of services and resources. This allows for broad control of how to best allocate resources and design the process flow of those services
Application is a group of modules which provides its related information.For example change application provides the information related to change process. It consist of modules like create change ticket,view change tickets etc.
The latest user interface is UI16 interface.
CMDB stands for Configuration Management Database. CMDB is a repository. It acts as a data warehouse for information technology installations. It holds data related to a collection of IT assets, and descriptive relationships between such assets
CMDB baselines helps to understand and control the changes that have been made to a configuration item(CI) . Baseline is the snapshot of a CI
Following steps will help you do the same:
-Navigate to System Definitions> Application Menus
-Open the respective application.
-Set value for active as ‘true’ to enable it or set it to ‘false’ to disable it.
View defines the arrangement of fields on a form or a list. For one single form we can define multiple views according to the user preferences or requirement.
An ACL is access control list that defines what data a user can access and how they can access it in service now.
Read more here: ACL
Impersonating a user means that you can log in to the system as that user and can have feel how the service-now UI is set for that user.This is very useful while testing.
For example: If you are required to test that a user can access change form or not.You can impersonate that user and can test instead of logging out from your session and logging again with that user credentials.
A record producer is a type of a catalog item that allows users to create task-based records from the service catalog.Record Producer are used when end user wants to create Incident/Problem request but they don’t have access to create those request directly.
For example: you can create a change record or problem record using record producer. Record producers provides an alternative way to create records through service catalog.
Dictionary Overrides provides the capability to override several properties of a field in extended table.
For example: Change table is extended from task table.There is a field named status in task table and set as read-only.When we use this field in change form it will show be a read only.We can set this to non-read only by using the dictionary override.Similarly there are other properties that can be set for the fields in extended table.
Coalesce is a property of a field that we use in transform map field mapping.When we set the coalesce as true for a field mapping it signifies that this field will work as unique key.If a field match is found with the coalesce field, then existing record will be updated with the imported information in target table else a new record will be inserted into the target table
UI policies can be used to set a field as mandatory, read only and visible on a form. You can also use UI policy for dynamically changing a field on a form.
Read more here: UI policy
Data policy checks the mandatory and read-only of a field whenever a record is inserted or updated through a web-service or import set.
For example: If a mandatory field in the incoming record (from import set or web-service) is empty then the data policy will not allow to insert that record into the table. Data policies enable you to enforce data consistency by setting mandatory and read-only states for fields.
Data policies are similar to UI Policies, but UI policies only apply to data entered on a form through the standard browser. Data policies can apply rules to all data entered into the system, including data brought in through import sets or web services and data entered through the mobile UI.
Read more here: Data policy
UI policy acts when a record is inserted or updated through a servicenow UI i.e servicenow forms while data policy acts whenever a record is inserted or updated into database through any means.
Client script sits on the client side(the browser) and runs on client side only. Following are the types of
Read more here: Client Script
In order to cancel a form submission the onSubmit function should return false. Refer the below mentioned syntax:
Business rule is server side scripting that executes whenever a record is inserted, updated, deleted, displayed or queried.The key thing to keep in mind while creating a business rule is that when and on what action it has to execute. You can run the business rule ‘on display’, ‘on before’ or ‘on after’ of an action (insert,delete,update) is performed.
Read more here: Business rule
Yes you can call a business rule through a client script by using glideajax
Read more here: Glide Ajax
is used for database operations instead of writing SQL queries.
is an object that contains zero or more records from one table. Another way to say this is that a GlideRecord is an ordered list.
A GlideRecord contains both records (rows) and fields (columns). The field names are the same as the underlying database column names.
Read more here: Glide Record
Data lookup and record matching feature helps to set a field value based on some condition instead of writing scripts.
For example: On Incident forms, the priority lookup rules sample data automatically sets the incident Priority based on the incident Impact and Urgency values. Data lookup rules allow to specify the conditions and fields where they want data lookup to occur.
Update set is a group of customization.It captures the customization or configuration changes made by a user and then these update sets can be moved from one instance to another.
For example: if we made some configuration changes in our development environment and want same changes in our test environment then we can capture all the changes in an update set and can move this update set to the test environment instead of doing changes manually in test environment.
It is a unique 32-character GUID that identifies each record created in each table in ServiceNow.
Go to that respective field dictionary and set the unique check box to true.
Data dictionary defines every table and field in the system. It contains information about a field’s data type,default value, dependency, and other attributes. These tables provide data dictionary, data modeling, and entity relationship information:
Tables [sys_db_object]: contains a record for each table.
Dictionary Entries [sys_dictionary]: contains additional details for each table and the definition for every column on each table. Each row represents either a column on a table or a table.
Field Labels [sys_documentation]: contains the human-readable labels and language information.
When a user make some changes on the homepage then that pages is saved as his personalized homepage instead of updation on the actual homepage.For example home page name is Incident overview.When a user make some changes on it then this page is saved as My incident overview and is only visible to that user.
Goto SystemDiagnostic -> Stats. Statistic page will be open where you can get the details of node and the instance on which you are working on
To enable or disable the labels in pie chart we need to set the property glide.ui.chart.pie.labels to true or false.
Installation exits are customizations that exit from Java to call a script before returning back to Java. Navigate to System Definition > Installation Exits. Some installation exit names (Login, Logout, ValidatePassword, ExternalAuthentication) are reserved and cannot be changed. Other installation exits can override these with custom script that replaces the script in the default installation exit.
Import Sets is a tool used to import data from various data sources and, then using transform map, map that data into ServiceNow tables. The Import Sets table acts as a staging table for records imported.
A transform map transform the record imported into servicenow import set table to the target table. It also determines the relationships between fields displaying in an Import Set table and fields in target table
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 a value for the caller on an incident the import is actually updating the sys_user table.
Zing is the text indexing and search engine that performs all text searches in ServiceNow.
The Client Transaction Timings plugin enhances the system logs by providing more information on the duration of transactions between the client and the server.
By providing information on how time was spent during the transaction, performance issues can be tracked down to the source by seeing where the time is being consumed.
This plugin requires the Response Time Indicator Response Time Indicator to be enabled, and collects information from the following browsers:
- Internet Explorer
Installing the plugin adds the module Client Transactions to the System Logs application, which provides a list of every logged transaction between client and server within the last day. The following information is tracked:
Client Transactions Information
Created: The moment the transaction was recorded.
Response Time: The number of ms spent by the server in fulfilling the transaction.
Business Rule Time: The number of ms spent by business rules triggered by the transaction.
SQL Time: The number of ms spent by the SQL database.
Client Response Time: (Load_completion_time) – (start_time). It is inclusive of server time.
Client Network Time: The number of ms spent by the network the client is connecting through.
Browser Time: The number of ms spent by the browser during the transaction.
Client Script Time: The number of ms spent executing client scripts
UI Policy Time: The number of ms spent executing ui policy
Type: Type of transaction (one of Form, List, Other)
Table: The table that was displayed e.g. incident, change_request
View: The view for this form/list
Client Detailed Information
A more detailed breakdown of the client timings for all Form rendering (but not list rendering) is also tracked. To see details, drill into a particular client transaction record and observe the related list at the base of the screen.
Order: The order during the load that this operation occurred
Type: The type of operation
Name: Descriptive name of this particular operation
Duration: Number of ms this particular operation took to complete
An inactivity monitor triggers an event for a task record if the task has been inactive for a certain period of time. If the task remains inactive, the monitor repeats at regular intervals.
Domain separation allows you to separate data, processes, and administrative tasks into logical groupings called domains. You can then control several aspects of this separation, including which users can see and access data.
Domain separation is a way to separate data into (and optionally to separate administration by) logically-defined domains.
For example: A client XYZ have two business and they are using servicenow single instance for both business.They do not want that user’s from one business can see data of other business.Here we can configure domain separation to isolate the records from both business.
Read more here: Domain separation
You can set the property – glide.ui.forgetme to true to remove the Remember me check box from login page.
The HTML Sanitizer is used to automatically clean up HTML markup in HTML fields and removes unwanted code and protect against security concerns such as cross-site scripting attacks. The HTML sanitizer is active for all instances starting with the Eureka release.
ServiceNow uses the Sys Audit [sys_audit] table to audit changes to records.
The schema map displays the details of tables and their relationships in a visual manner, allowing administrators to view and easily access different parts of the database schema.
Dashboard is a visual collection of reports and paralytics presented as KPI scorecards and indicator summary tab.
Read more here: Dashboard
A scorecard can be used to measure the performance of an employee or a business process. It is a graphical representation of progress over time. A scorecard belongs to an indicator. The first step is to define the indicators that you want to measure. Scorecards can be enhanced by adding targets, breakdowns (scores per group), aggregates (counts, sums, and maximums), and time series (totals and averages).
Read more here: Scorecard
Indicators are statistics that business track to measure current conditions and forecast business trends. Indicators are also known as metrics , business metrics or KPIs Three types of indicators:
Read more here: Indicator
Goto the dictionary of the respective date-time field and set the default value
We should avoid using current.update() in BR as current.update() will call the BR again. This will make the BR recursively calling itself, this will cause performance issue. To update any record before updating the table, we need to just set the values ,the values will be automatically updated before insert/update into the table.
incident.commented: Name of the event current: current gliderecord object gs.getUserID(): additional parameters gs.getUserName(): additional parameters
We can use scratch pad variable and display business rule to display data in a UI page.
A Display business rule runs when a form is loaded. The g_scratchpad can hold server information and then we can display the value in the form using client scipt.
Note: Display business rule only works when form is loaded, it cannot load dynamically on change. For that we need to user GlideAjax
Read more here: Display BR
Both can be secure using https and basic authentication header. But SOAP is somewhat more secure than REST because SOAP have WS-Security module which gives more emprise security like XML signature, Xml encryption etc.
Once we have setup the outbound message and list of function we can continue to call. But any update in the wsdl (like new function addition or parameter changes) we cannot get.
onStart runs when the transform map is first loaded
on before event script is run when a row transformation happens
Soap is XML format. Rest is generally Json format but can send in XML and other formats also.
An object is an instance of a class
We can write advance script in ACL. For example, we can create a read ACL at field level and use the below script we hide/show the field based on role.
We can use the sn_ws.SOAPMessageV2 or sn_ws.RESTMessageV2
Async BR is a business rule which runs later and we don’t expect the result be displayed immediately after commit of the data. Whenever async business rule runs it create a scheduler for it in background and based on the availability of the nodes in servicenow it will execute
Webservice calls can be made Async BR After BR also runs after data is committed runs immediately after committed.
Read more here: Display BR
Discovery is 1 way communication only, Midserver polls information from ECC queue and updates the ECC queue with response.ServiceNow instance never calls customer data center directly.
Cart api we have to use.
If Script include is like this
We can write in BR
Write a new script activity and then call
First we need to get the sysid of the WF and then we can call like this
To get WF sys_id we can use gliderecord as below
1.Port Scanning: Discovery sends the Shazzam probe to the network to see if specified ports are open on the network and if they can respond to queries.
For example, if Shazzam finds a device that responds on port 135, Discovery knows that it is a Windows server.
2.Classification: If Discovery finds devices, it continues to send probes to find the type of device at each IP address.
For example, Discovery would send the WMI probe, which is used for Windows devices, and find out that the Windows operating system on this server is running Windows 2012. Classifiers specify which trigger probes to run for identification and exploration.
3.Identification: Discovery tries to gather more information about the device, looks at those attributes, determines if it has a CI in the CMDB, and reconciles that information by either updating the CI or creating a CI. Discovery uses additional probes, sensors, and identifiers to do this. Identifiers, also known as identification rules, specify the attributes that the probes look at when reconciling data with the CIs in the CMDB. If you are using patterns, Discovery uses the appropriate identification rule for the CI type specified in the pattern.
4.Exploration: The identifier in the previous step (Identification) launches the exploration probes configured in the classification record to gather additional information about the device, like the applications running on the device, and attributes about the device, such as memory, network cards, drivers, etc. Discovery then maps applications to devices and to other applications. In this phase, Discovery also uses additional probes and sensors that are hard-coded to find this additional information. If you are using a pattern, the operations in the pattern perform the exploration of the CI.
SOAP SOAP is a protocol which was designed before REST and came into the picture. The main idea behind designing SOAP was to ensure that programs built on different platforms and programming languages could exchange data in an easy manner.
REST This was designed specifically for working with components such as media components, files, or even objects on a particular hardware device. Any web service that is defined on the principles of REST can be called a RestFul web service. A Restful service would use the normal HTTP verbs of GET, POST, PUT and DELETE for working with the required components.
A record producer is a type of a catalog item that allows users to create task-based records from the service catalog. Record Producer are used when end user wants to create Incident/Problem request but they don’t have access to create those request directly. For example you can create a change record or problem record using record producer. Record producers provides an alternative way to create records through service catalog.
Order guide submits a single service catalog request that generates several items.
For example, a New Employee Hire order guide can contain several items that new employees commonly need, such as business cards, computer, and cell phone. After selecting this order guide, the customer can then provide information about the new employee, including location and job title. The order guide then submits an order for catalog items like business cards, based on the details provided.
Order guides determine which catalog items to order by evaluating order guide rule conditions. Information the customer enters within the order guide can be passed as cascading variables to the ordered items, allowing common information to be reused across multiple items.
PATCH: it is used to update an existing entity with new information. You can’t patch an entity that doesn’t exist. You would use this when you have a simple update to perform, e.g. changing a user’s name.
partially updates the resource into the server mapped by the provided data. As an example, PATCH /api/log/1 will only update properties mapped in the request body. Just like the PUT method it may include an If-Match with the ETag and in case of success 200 Ok or 202 Accepted with the new ETag value should be returned, or in case of a failure a 404 Not Found or 409 Conflict will be indicated with the same conditions as the PUT method. This about it like a partial update to a row in a table, where only some columns are affected.
PUT: it is used to set an entity’s information completely. PUTting is similar to POSTing, except that it will overwrite the entity if already exists or create it otherwise. You could use a PUT to write a user to your database that may already be in it.
replaces the existing resource by the new one. As an example, PUT /api/log/1 will completely replace that resource for the new one. Optionally in the request you may include an If-Match with the ETag value to be sure you are replacing the expected version of that resource (preventing concurrency problems). In case of success, it should return a 200 Ok or 202 Accepted (async operations) with the new ETag. In case the entity does not exist, a 404 Not Found must be returned or a 409 Conflict if the version or any other value in the entity are not correct with internal server state (like referenced links). Think about it like an update to a complete row in a table;
1. --None--: Grant access to records and all fields in the records.
2. *: Grant access to all fields where there is no field-specific Access Control.
Read more here: ACL rules
When servicenow tables are queried or some data is inserted to servicenow tables from an external app.
For example we create an application that can create an incident record in service now.
Every table in service now have a WSDL exposing the methods that can be triggerd from outside.To check any table WSDL, just suffix? WSDL at end of the table
Outbound Webservices is used when snow communicates with an external app to collect some information.For example we want get all CI information from HP uCMDB using webservice exposed by uCMDB.
Service catalog enables you to apply user criteria to an item, defining which users can and cannot access that item.
You can apply user criteria to all types of catalog item, including order guides, content items, and record producers.
Note: The user criteria restriction applies only within Service Catalog for the specific item it is applied for. However, the user criteria restriction is not applied outside the Service Catalog where the user has access to the item via the table.
To apply user criteria to an item:
In an item record, navigate to the Available For or Not Available For related lists.
Click Edit to add an existing user criteria record, or click New to create a new one.
Save the record to associate the user criteria record with the item.
The Not Available For settings override Available For settings. A user on the Not Available For list for an item cannot access that item, even if that user is also on the Available For list for that item.
Two step options
Check box to enable two step ordering instead of the default three-step ordering, omitting the final step. With two step ordering, selecting Check out submits the request immediately, then displays the order confirmation screen. This is not applicable for Service Portal.
Check box to select whether the variables used cascade, which passes their values to the ordered items. If this check box is cleared, variable information entered in the order guide is not passed on to ordered items.
Scratch pad is the temparory variable that can be used in workflows, BR and client scripts.When we use the scratchpad in workflows we initiate it using below syntax:
we can use anything instead of abc and assign any value to this scratchpad and use this scratchpad value in anyother activity in the same workflow as below :
Now when you use this scratchpad variable in BR then we initiate this object as below:
This should be used in Display BR and
Then we can use this scratchpad variable in client script as below:
There are three different type of script includes
2.Extend an existing class
3.Define a new class
Extend an existing class
Define a new class
An activity can also have multiple lines drawn from a single exit condition, pointing to multiple activities. If this is the case, these activities will execute simultaneously.
In a situation like this, it’s possible to save a workflow where one of these branches doesn’t have an exit condition (a transition to another activity), but it isn’t recommended. Instead, ServiceNow provides a Join activity, which you can use to merge the divergent paths back into a single transition-flow.
Notifications can be sent when:
1.Records are inserted or updated
2.Events are generated
3.The Notification activity executes in a workflow
Read more here: Notification
By default, they do. There is a little code added to the template using the isLoading flag to normally tell the script NOT to run when the form is loading. If you remove that, it will work.
Change it to
It will run when the form is loading.
LDAP is Lightweight Directory Access Protocol.It is used for user data population and User authentication. Servicenow integrates with LDAP directory to streamline the user log in process and to automate the creation of user and assigning them roles
Ajax is a proper may of calling a script include into client script and getting values from server which runs when we call it.
- Understanding Request, RITM, Task in ServiceNow
- Steps to create a case in ServiceNow (CSM)
- Performance Analytics in 10 mins
- Event Management in 10 minutes - part1
- Event Management in 10 minutes - part2
- Custom Lookup List
- Script includes in 5 minutes
- Interactive Filter in 5 minutes
- UI Policy in 6 Minutes
- Client Side Script Versus Server Side Script in 3 minutes
- Performance Analytics
- ServiceNow Scripts
- Script include
- Useful scripts
- Basic Glide Scripts
- Client Script
- Advance Glide Script
- Glide System Script
- Import Set
- Work Flow
- Core Application
- UI Policy
- UI Action
- Client Script
- CAB Workbech
- Data Policy
- Connect Support
- Event Management
- SSO Integration
- LDAP Integration
- SCCM Integration
- AWS Intergration
- Slack Integration
- CTI Integration
- Jira Integration
- Ebonding ServiceNow
- SOAP Integration
- IBM Netcool Integration
- VIP Mobile App Integration
- Rest Integration
- Service Portal
- Performance analytics(PA) Interactive Filter
- Various Configurations in Performance analytics(PA)
- Service Portal
- Performance Analytics(PA) Widgets
- Performance Analytics(PA) Indicator
- Performance Analytics(PA) Buckets
- Performance Analytics(PA) Automated Breakdown
- Client Script
- Rest Integration
- Understanding the Request, RITM, Task
- Service Catalogs
- Events in ServiceNow
- Advance glide script in ServiceNow
- CAB Workbench