Table of Contents
Welcome to our SNOW INFO PAGE Section E
Easy Import - Simplified Import Process from Microsoft Excel
- Steps 1. Download Excel Template 2. Complete Excel Template 3. Upload the Import Data 4. Preview the Data 5. Finalize the Import - Roles Import Admin Import Set Loader - From any List View column menu, select “Import”. - You can Import brand new records or you can Update existing records. - Templates - If you choose “Include all fields in the template”, all columns for the table will be included, as opposed to only those columns in your current ListView. - Delete or remove the Directions tab that is automatically created. - Upload
- The data initially goes into a “staging table”, not directly to the target table.
- In the staging table, you can make changes or clear any errors which are presented.
- Click Complete Import to finalize the import.
Electronic Bonding -eBonding - E-Bonding
- The act of integrating and automating bi-directional data synchronization between enterprises and their systems. This is done either via individual transactions, or through the synchronization of datasets. eBonding also refers to the B2B software interface that automates the data exchange between two business applications, reducing the amount of manual intervention that's usually required.
- How to enable Email functionality on a non-production instance:
1) Review the current Email situation here:
https://[YourInstanceHere].service-now.com/nav_to.do?uri=%2Femail_diagnostics.do
2) Make a note of the number of “Email in Queue” records.
3) Run a background script, such as the following, to disable the many emails which are probably waiting to get sent:
Declare a GlideRecord variable and point it to the table of interest.
var gr = new GlideRecord(“sys_email”);
Optionally add some query parameters.
var query = “type=send-ready”;
Optionally query the table to be sure we will be operating on the expected number of records.
gr.query();
gs.addInfoMessage(gr.getRowCount());
Set the value you want changed for multiple records.
gr.setValue(“type”, “send-ignored”);
Perform the actual update.
gr.updateMultiple();
4) Make a note of the number of “Email in Queue” records.
3) Change Email Properties, here:
https://[YourInstanceHere].service-now.com/nav_to.do?uri=%2Femail_properties.do%3F
Embedded Help - Context-Sensitive Help - Custom Help - Help Content
- Modules
- Embedded Help - Help Content
- Takeaway - Embedded Help is targeted help for an application, presented directly on the user's webpage in a special pane. A badge indicates when help is available. Help may include formatted text and even embedded video, but Not images. Help may be targeted by Role, Release, and by URL Parameter. - Embedded Help is role-based, targeted help for an application, presented directly on the user's webpage in a special pane. - There is always a “More” icon which lets the user search the instance's User Guide, or search the ServiceNow documentation site. - You can create additional, separate, embedded help pages, for the scenario where the user accesses embedded help from Guided Setup. - You can create help pages for specific versions (releases) of ServiceNow, or for “All” versions. - When creating help, the “Page” value should be the part of the URI after uri=%2F and before .do%3F . - A badge on the Toggle Help Sidebar icon indicates help is available - Content:
- This is what users see in the Help pane.
- May include formatted text including Lists, Tables, Sections, and Links. May also include embedded YouTube or Vimeo videos.
- A “Note” section applies a special notepad icon and styled text with a different background color. Use these sparingly so they stand out.
- A “Related Information” section is often used at the end of help articles, and also contains styled text, and typically a list.
- Images are NOT supported.
- Qualifiers
- Embedded Help Qualifiers determine which query string parameter values to use to determine which Embedded Help page to display.
- In the “Query params” attribute of the Help Qualifier, you specify the parameter and value to look for. For example: “sysparam_view=compact”.
- Replace any encoded character, with its ASCII character. For example, replace %3D with =.
- When specifying multiple query parameters, separate the parameters with an ampersand (&), for example sysparm_view=compact&sys_id=-1. - Example values for an embedded help article AND an associated help qualifier which limits the number of records on which the help article appears:
- sys_embedded_help_context record:
- Name: NoteToAdmin_SSO (This is an arbitrary string. It can be anything. It is just the name of the help record.)
- Page: saml2_update1_properties (This is the web page you want the help to appear on. The main part of the URI.)
- Mode: Normal
- Version: All
- Qualifier ping_identity_name
- sys_embedded_help_qualifier record:
- Qualifier: ping_identity_name (This is an arbitrary string. It can be anything. It is just the name of the qualifier record.)
- Path: saml2_update1_properties (Again, this is the web page you want the help to appear on. The main part of the URI.)
- Query Params sys_id=247a2b03dbb79c100f9ce4e1ca9619aa
—–
Electronic Communications Channel (ECC) / ECC Queue
https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0855595 - Table
ecc_queue
- Processing Steps 1) Job is added to Output Queue - A feature or application that wants to connect with another entity (wants to “integrate”) places a record in queue. - Fields
- Agent
- What entity will do the work.
- Examples
- mid.server.* - A job for the MID Server
- mid.server.NODE_AGENT - A job for the ServiceNow instance itself.
- Agent Correlator
- The original Code/Task/Schedule that created the job. Allows the “Sensor” to pass the results back to the Requestor.
- Queue
- Output - Work FROM the instance.
- Input - Work / results FOR the instance.
- State
- Ready - In the queue. Not yet picket up.
- Processing - In the MID Server Queue, or actively being worked.
- Processed - Done.
- Error - Done but with an error detected.
- Topic
- The Probe that the job is for. This is a Java object name in the source code.
- Name / Source
- Specific to the topic, but usually the main probe parameters.
- Payload
- Additional probe parameters in XML format.
- The ECC output parameters are also included in the ECC input, along with the result and any errors.
- Sequence
- A timestamp with millisecond resolution.
2) MID Server (or sometimes instance code) picks up the job.
- MID server polls the ecc_queue table, using the regular SOAP Table API, for any Output records with the MID listed as the agent.
- The oldest records with the highest priority are fetched first.
3) MID Server notifies the Instance that it has picked up the job.
- Writes a topic=queue.processing record to the ecc_queue itself.
- This triggers sensor Business Rule “ECC Queue - mark outputs state” to update those output records from Ready to Processing state.
4) MID Server executes the job. - Job is held in memory until there is a free Worker Thread. - Job is passed to a Java Probe.
- Job code may make additional API calls to the Instance directly, for example to gather info about a Flow Designer context. Such API calls therefore do NOT make use of the ECC Queue. - The thread running the job writes the result of running the probe to an XML file in one of the ECC Sender output folders in agent\work\monitors\ECCSender. There are several folders depending on the priority or if it is sequential. These folders act as a send queue, and there are limits. These log records include the sys_id of the original ECC Queue Output record.
5) The MID Server returns the result to the instance. - The ECCSender thread inserts an ECC Queue Input record for each XML file, then deletes the XML file. - The SOAP Table API is used for the Insert.
- The Instance Business rule “ECC Queue - mark outputs processed” runs for each Input record inserted. It sets the Output record to Processed.
6) Sensors run in the Instance - Business rules run for each Input record inserted; usually synchronously. One or more of these jobs will be a "Sensor" for the job. - Business rules are run in Order, and Conditions are used to determine if each business rule should take action. - See the Business Rules, grouped by Package, here:
https://YourInstance.com.service-now.com/sys_script_list.do?sysparm_query=collection%3Decc_queue%5Eactive%3Dtrue%5EGROUPBYsys_package - Most sensor business rules pass on the work to a scheduled job by inserting a 'run once' sys_trigger record, that the Background Scheduler Worker threads will then pick up and run to do the actual sensor processing. - zMisc - ECC Queue records older than 7 days are deleted.
Employee Service Center
Takeaway - The Employee Service Center is a Service Portal for Employees to get HR Services and complete tasks. It includes widgets such as Holiday Calendar and Org Chart. May also include a Knowledge base and HR Service Catalog. - A Service Portal specifically designed to provide employees with a single place to get all the Human Resources (HR) service they need. - Includes the following Widgets: Holiday Calendar, Upcoming Events, My Team, Org Chart, Personal Profile. - An HR Knowledge Base and HR Service Catalog for Requests are also available. - Includes “Employee Tasking” for example, to get employees to sign a form. - “HR Criteria” define the audience for HR communications. - May include Chat features. - HR Centers of Excellence (COEs) are extension tables that extend the HR Case table. They include: Employee Relations, Lifecycle Events, Payroll, Talent Management, Workforce Administration, Total Rewards, and IT Operations.
Enablement
- Anywhere you go for Training or Learning.
Events
https://docs.servicenow.com/bundle/newyork-platform-administration/page/administer/platform-events/concept/events.html
Takeaway
- An Event is a type of Log message which is generated by ServiceNow when something notable occurs. Scheduled jobs read the event log and forward events to handlers for processing. An event must be 1) Registered, 2) Subscribed To, 3) Triggered, and then 4) Handled. An event may be triggered by almost any action such as Logging In, Impersonating a user, Viewing a Record, or any Workflow Step or Script. And event handler, known as a “Script Action” is defined in Developer Studio. Every event is associated with a database record, and that record is available to the Script Actions.
- Modules:
System Policy - Events - Event Log Table: sysevent
System Logs - Events Table: sysevent
System Policy - Events - Registry Table: sysevent_register
System Policy - Script Actions Table: sysevent_script_action
Events System - Scheduler - Scheduled Jobs Table: sys_trigger
- Events are special Log Records the system generates when something notable has happened or certain conditions occur; They allow Actions to be taken in response to those conditions. Examples might include: when someone logs in, when someone approves a request, or when someone submits a KB article.
- Event Log / Event Queue
- Business Rules generate event records in the Event [sysevent] table, which is also known as the event log or event queue.
- An event is nothing more than an entry in the event queue. Unless logic is activated to respond to the event, nothing happens after it is generated.
- Events in the event queue have fields for Name, Parm1, Parm2, and Table.
- You can see all events generated in System Policy - Events - Event Log. From here, scheduled jobs read the event queue and forward events to appropriate handlers for processing.
- Registration
- An Event must be registered before it can be responded to. Registration lets other parts of the system see the event and react when it occurs. Do this in System Policy - Events - Registry.
- Fired By field - A list of the scripts that generate the event. Used for troubleshooting only.
- Events can be logged by:
Business Rules Server-Side Scripts Flows / Workflows ServiceNow Processes User Actions: Impersonating a User Logging In Viewing a Record Modifying a Record
- Events are generated in two ways: 1) Workflow “Create Event” activity
- The record that triggered the workflow is automatically passed in when the Create Event Activity is generated.
2) gs.eventQueue() or gs.eventQueueScheduled() - Used to insert an event record anywhere you can run script, including Flows and Workflows. Arguments are as follows:
Event Name
- Name used in script logic to generate the event. By convention this is [TableName].[WhatTranspiredName]
- Examples:
approval.inserted
change.updated import.finished login.failed contractor.termination.reminder mim.contractor.inactivity.lockout GlideRecord object
- Typically the “current” record, but could be “previous”, or any other GlideRecord object.
param1
- Any String. Will show up in the Event Queue.
param2
- Any String. Will show up in the Event Queue. Queue - Optional - A Queue name should be used by apps that create a large volume of events. - Use all lowercase letters and underscore for the queue name. Example: “my_queue”.
Best Practice:
By default, use gs.getUserName() and gs.getUserID() for param1 (parm1) and param2 (parm2), if those parameters are not needed for other purposes. (Not sure about the order though.)
- This is a good idea for the following reason:
- The event will always contain a pointer to a glide record, so much information can be fetched that way.
- Also, the Notifications are all associated with a Table, so the notification allows you to drill down into the fields from the glide record. - What the notification does NOT know is what user (if any) triggered the event. So it needs to be specified explicitly in a parameter.
Example: gs.eventQueue("x_snc_claims.overdueClaim", current, myString1, gs.getUserID());
- An event is responded to by either an “Email Notification” or a “Script Action”. - Custom Queues - A Custom Queue should be used by apps that create a large volume of events or events that take a long time to process. To do so, populate the optional Queue field when you register your event in the Event Registry. - You will also need to create a new process to monitor the new queue. Carefully copy the “text index events process” scheduled job. Change the parameter passed in to the GlideEventManager() method to the name of your new queue. Do not save your changes; instead use “Insert and Stay”. - When an event is generated, or handled, there is a GlideRecord parameter, so every event is associated with both a table and a record; unless null is passed in I guess. - An event is responded to by either an “Email Notification” or a “Script Action”. - Quirks - Note that searching the sysevent table can cause a serious performance slowdown on your instance; for example, searching this table, which may have over 25 million records in it, using the “Name” column.
Event Handlers * / Script Actions * - Modules System Policy - Script Actions Table: sysevent_script_action - Script Actions are event handlers; they are server-side script logic that executes in response to events. - Script Action definition and execution is independent of Event Definition and Event Triggering activity. The designer of an event cannot control what Script Actions others may create which will respond to the event. - Multiple Script Actions may be defined to respond to a single event. They get triggered in the Order specified by their Order properties. - Hidden Feature: Use the “current” object to refer to the object passed in from the event. Example: current.priority = 1; Set the record priority to 1 - Critical current.update(); Update the record in the database - Use this code fragment to see all the properties and values of the event object:
var output = ""; for (property in event) { output += property + ":" + event[property] + ","; } gs.info(output);
Event Management (EM ) - Operational Intelligence (OI)
- Event Management and Operational Intelligence help you monitor the health of your systems, prevent outages, and resolve issues quickly. - Event Management (EM): - An Event is a notification from a CI on your network, or in the cloud. Common events are Warnings or Failure notifications. - An operational Metric is a measure of an operating characteristic of a device over a certain time period, for example CPU Utilization. - Events are stored in the Events Table. - Alerts (about Events) are sent to appropriately defined IT personnel. - Event Management uses “Machine Learning” to group events together for notifications. - Event Management may use Alert Rules to take automatic actions, such as creating an Incident, launching a remediation workflow, or recommending a knowledge article. EM shows you the CIs impacted by each alert. - Operational Intelligence (OI):
- OI Connectors on your MID Servers collect performance metrics from monitors on your system like “SCOM” and “SolarWinds”.
- Event Rules are used by OI to bind specific metrics to CIs. Data is normalized, and sent to the ServiceNow Instance.
- OI uses statistical analysis to look for anomalies outside normal model values. It may then generate Anomaly alerts.
- Anomaly alerts may be promoted to IT Alerts. From here on, the OI process is the same as that for Event Management.
- The OI application shows various tables and charts about the CIs in your system.
Empty Fields
- Sometimes a ServiceNow column value (field value) will show up in a list view as “(empty)” when it actually has a value. What this means is that the field is a reference field and the referenced record could not be found. You can still see the sys_id of the referenced record by exporting the main record to XML. Some tables, such as the “sys_update_version” table, are setup to delete old records automatically, which can cause this situation. This is normal and expected.
- Sometimes if you cannot save a record because of a Required Field, you can make a change in the List View, and still get away with setting a value that way. - Super-Hidden Feature: With list items selected, from a column menu, choose “Update Selected”. - If you don't know where a function is being called from, you can still do alert(theFunctionName), and the entire function contents will be displayed to you!! - Right clicking the ServiceNow Filter breadcrumbs and choosing Copy URL will NOT include row ordering information. However, the URL itself in the Browser Address Bar will. - Before running any Script, be sure you SAVE the script! Otherwise you may not be running what you are seeing! - Use Shift + Down Arrow to select consecutive values from a column. - In order to see the actual Table Name from a List or Form view, just look at the URL in the web browser. You will see “sys_user_list.do” for example, so the table name is “sys_user”. - Once you do a “get” operation on an object from the database, you can then DOT WALK to related objects! No need to keep calling into the database! - One technique for finding code relevant to a UI object is to use F12 for the developer tools, use the Cursor/Mouse button and point to an element on the screen, then use the source window to find the sys_id values around the item you care about. Then use a Script to find, in all tables, the ID in question. - At least 4 options for promoting a change:
- Make the change manually on each instance.
- Run a script on each instance.
- Import Commit Update Sets.
- Import XML Files.
- The tool (ServiceNow) is not responsible for telling people Why they should be doing something, or When they should be doing something. - Another name for the “Platform UI” is the “Fulfiller View”. - Determining why a field is Read Only / Disabled 1) Small Menu - Configure - List Control - List Edit Type - “Disable List Editing”.
(UI Policies do not run on List Edit, so it is sometimes useful to disable it.) 2) System Security - ACL - [Column Name] - Look for Access Controls for the column in question.
3) Just click on the dictionary entry and look for ACLs inside of that record. debug - Debug Security can be used to look for Access Controls. - Check for the field in Parent Classes / Tables. - Out of the Box, Outages automatically appear in the “Announcements” section of a portal home page. - ServiceNow Utilities for Web Browsers: - SN Utils - ServiceNow Lookup - ServiceNow Alerts - Knowledge - Best Practice - Stay away from Article level visibility. - Managed Documents is another Knowledge type concept. Has more security and functionality. - You need to Publish a workflow at the point that you expect another user to utilize it.
- Useful Questions to ask with regard to a new Catalog Item or User Interface. Ordering of field choices? What fields mandatory? What is done with the data captured in each field? Wording of various field labels, titles, etc.
- Roles
- Cost
- The ITIL role should only be in groups where the members work ServiceNow tickets such as the IT Service Desk groups. The ITIL role is a paid license role. Each person that has access to that role costs the company money. - Users with particular roles do cost the company a substantial amount of money. For example: PMO Analyst Role - $425.00 / month. ITIL - $25 / month. - 1.6 to 1.9 million dollars to implement ServiceNow - Change, config, incident, knowledge, service catalog, PA, Discovery - Continuous improvement, walk up, ITBM
- Redirects Article on Redirecting people to the Service Portal after login - A user may only be associated with a single HI Service Portal at a time. So when we move over to OC, we will lose access to LDMG. - “The portal is for users who don't have Expertise with ServiceNow, or who do not have Access (roles). If you have a Role, you would normally use the Native UI.
Changes to the “catalog_home” module / page / view seem to be captured under “Portal Pages” (table sys_portal_page). To capture changes in an update set, you can right click an item in that table and use the “Unload Portal Page” command as described here: https://community.servicenow.com/community?id=community_question&sys_id=29484baddb1cdbc01dcaf3231f961990
In San Diego and later, you cannot set a password directly. You can generate a new password, and then you can log in with that user and CHANGE the password as a part of the login. But you cannot set a user's password directly.
If you have issues with a MID Server User Account getting Locked Out, it could be because the MID Server service is running and trying to log into ServiceNow over and over again. This can cause the account to become locked very quickly.
- If you force a Customer Update into an update set for a different Application, it will go in but when you go to deploy, you will receive error messages: - To commit this update set you must address all related problems by fixing and previewing again. You may also just accept or skip the remote update that caused the problem. - Cannot commit Update Set 'GGB - Test Update Set' because: Update scope id '2b3a837a0bb732007a0e41d6f6673a7f' is different than update set scope id 'global'. Resolve the problem before committing.
- List View List Layouts (columns and column ordering) is configured in the following tables:
sys_ui_list sys_ui_list_element