Table of Contents
Welcome to our SNOW INFO PAGE Section C
Career
Public ServiceNow Featured Achievements - Can copy this URL right into resume or emails. - To edit featured badges/certifications/micro-certifications, go to NowLearning - Manage Profile (Middle left of page) - Edit (pencil icon at top right ish) - Manage Achievements - Check appropriate achievements - Done - Then Scroll all the way down and “Save”. - Now Profile - Brings together Now Creators achievements, Now Learning certifications and course completions, and Now Community expert levels acquired. When you log into Now Learning, you are automatically connected to your Now Profile. - The “ITIL V3 Foundations” (v4?) certification is in high demand, and is also quite useful! Can learn it in a week they say. - Idea: Create your own mini consultancy and become experts on one particular area. - Given that I'm not a big fan of Travel, or Sales, the best role for me should probably be a blend of: Admin/Developer/BSA - Nelson Frank - Nelson Frank places individuals. They do not send people to training, or compile teams of individuals. - ServiceNow is big in these places: DC, Mass, New Jersey, Chicago, Colorado, California - ITSM is the number one ServiceNow Suite companies expect most people to have experience with. - The Sys Admin certification is definitely a solid component to any resume.
Change Management - Release Management
- Takeaway - Change Management helps an organization make beneficial changes with the minimum disruption to IT Services. Standard changes are pre-approved changes that follow a pre-defined template. Emergency changes are time-sensitive. All other changes are “Normal” changes. There is a Change Advisory Board (CAB) meeting portal where Changes may be discussed and scheduled. - The purpose of Change Management is to control the lifecycle of all changes, enabling beneficial changes to be made with minimum disruption to IT services. - Typical use cases for Change Management involve fixing an issue, or maintaining or upgrading hardware or software. - Change Advisory Board (CAB) Workbench: - Allows CAB managers to easily schedule and manage CAB meetings. - Helps with identifying attendees, creating meeting invites, and defining agendas. - Available to any user with rights to the Change Management application. - Helps you see Blackout and Maintenance schedules. - Change Types: - Standard Change - A pre-authorized change that is low risk, relatively common, and follows a procedure. Involves a template with many pre-populated fields (perhaps implementation plan, backout plan, and test plan), and may be ordered through a catalog item. Common, low-risk changes with repeatable implementation steps, and a proven history of success are good candidates for Standard Changes. Standard Changes are pre-approved. Standard Changes are scheduled on the change calendar. Users may propose Standard Change templates for inclusion in the Standard Change catalog.
- Emergency Change
- A change that must be implemented as soon as possible, for example, to resolve a major incident or implement a security patch.
- Normal Change
- Any service change that is not a standard change or emergency change. Requires approval from an appropriate assignment group. - Some changes may be put through a post-implementation review process.
CI Identifiers
- “CI Identification” is preferred over Process Handlers. - Uses specific attributes to uniquely identify an Application.
Close Requests w RITM Closed
ClearUserLog(); var gr = new GlideRecord('sc_req_item'); gr.addEncodedQuery('state=3^request.request_state!=closed_complete'); gr.query(); while (gr.next()) { var grReq = new GlideRecord('sc_request'); grReq.get(gr.request.sys_id); grReq.request_state = 'closed_complete'; //grReq.update(); //uncomment to update UserLog(grReq.number); }
Clusters
- Used for Failover or Load Balancing - Navigate to MID Server - Clusters
Configuration Item
- A physical or logical component that needs to be managed (to deliver a product or service). - A uniquely identified component which provides a service, and for which changes are controlled; could be a Server, an Application, or even a single File. - Examples: Server, Application, Application Service, Vehicle.
Configuration Management
- Includes:
- Asset Management
- Service Management
- Operations Management
- Requirements Gathering Questions to Ask
- Do you want to be notified if a device is No Longer Discoverable?
- Do you want to delete Aging CIs?
- Do you want to automatically update the status of CIs?
- CMDB Health Dashboard - Health Metrics
- Completeness - Are your CIs populated with all the necessary data?
- Compliance - Check the CMDB for adherence to predefined audits (SOX, HIPPA, etc.)
- Correctness - Test against predefined data integrity rules.
- Potential Discovery CI Lifecycle Solutions
- Set Install Status to mandatory for newly created CIs?
- Use a Data Policy to set the Managed By field to mandatory after Install Status is set to Installed?
- Use a Scheduled Job to delete Application CIs which have not been discovered in the last 14 days?
- This will cause the Application CIs to disappear from the Dependency map.
- Use a Scheduled Job to update the Installed Status of CIs to “Absent” if they have not been rediscovered within 30 days.
- Send a notification to the discovery Admin and/or Owner of the CI.
- Run a weekly report of Absent devices.
Credentials and Behaviors - When it comes to Discovery Implementation, the Long pole in the tent is usually the gathering of Credentials. - Credentials allow Discovery access to Target devices. - Good questions to think about…
- What devices are you trying to Discover?
- Windows Servers? Unix Servers? SQL Servers and Catalogs? Virtual devices?
Amazon Web Services Cloud Devices? Network Devices? Print Devices?
- What are your expectations from Discovery?
- Do you have a Cloud Environment?
- What is the policy for storing Credentials?
- Is there any policy that prevents storing UNIX Root or Windows Domain credentials in the cloud? - Types of Credentials
- AWS - For Network and Print devices. Supports SNMP v2 and v3.
- CIM - For servers based on the Common Information Model (CIM). For storage devices.
- SNMP - For network (router) and print devices. Supports Simple Network Management Protocol v2 and 3. Done in the Port Scanning phase.
- User needs Read Only string from the MID Server's IP address. ???
- SSH - For Unix / Linux devices. Supports password and Private Key connection methods.
- Needs limited SUDO command requirements for complete functionality.
- VMware vCenter - For VMware vCenter, running on a Windows device.
- Needs Read only user / password.
- WMI - For Windows devices
- This is the credential type you will use for discovering the MID server itself, if you do so for testing purposes, assuming the MID Server is on a windows box.
- Target = The known IP Address.
- Port 135 ???
- This should be a Windows Domain User with Local Admin privileges on each target.
- Name your Credentials in a way that indicates what they will be used for.
- Examples:
- Windows Credential for MID Server
- Windows Credential for All Other Windows Devices
- Encryption
- Stored in an encrypted field in the credentials table using AES256Encryption.
- Once entered, credentials may not be viewed.
- Decrypted using the “Password2” fixed key. (Not sure what this means exactly.)
- When requested by MID Server, credentials are re-encrypted on the instance using the MID Server's public key.
- Encrypted on the Load Balancer with SSL.
- Decrypted on MID Server with SSL.
- Decrypted on MID Server also with MID Server's private key.
- Aliases
- Without credential aliases, Discovery Schedules can access ALL credentials defined in the instance.
- May be undesirable if there are credentials with elevated privileges.
- To utilize an Alias for Discovery…
- Create an Alias
- Navigate to “Connection & Credential Aliases”
- Type = “Connection and Credential or Credential”
- Configure a Credential to use the Alias
- From the “Connection & Credential Aliases form” tab at bottom of form.
- Configure Schedule to use alias
- Navigate to Discovery Schedules
- Unlock the Credential Alias field and select Alias.
zMisc
- When you setup credentials for Discovery, for a particular device type such as Windows, you are assuming that ALL of your Windows Servers utilize the same Username and Password.
- Phase
- Most credentials (except SNMP) are used in the Classification phase.
- Discovery External Credential Storage plugin
- A plugin which lets ServiceNow to reach out to a Credential Repository rather than having credentials stored within ServiceNow itself.
- CyberArk is supported.
- IP Affinity
- A relationship between an IP Address and a Credential.
- If the Credential has worked in the past, an “affinity” record will be created, and in the future, the Credential will be tried first, before others, when connecting to the device with that IP Address.
Credential-less Discovery
- Allows partial CI information gathering via Nmap. - Use the MID Server UI Action “Enable Credential-less Discovery”. This enables NMAP on the MID Server. - Data gathering is limited to Windows and Linux - Faster than credential-based Discovery, but provides fewer details.
Client-Side Scripts - Client Side Scripts - Client Scripts
- Takeaway - Client-Side scripts execute within a user's web browser and are used to manage the browser and web page, and can do such things are populate fields, disable fields, hide fields, move the cursor, modify choice list options, and display messages. - Modules: [Open any record] - Configure - Client Scripts System Definition - Client Scripts Studio - Client Development - Client Scripts - Client-Side scripts execute within a user's web browser and are used to manage the browser and web page. - Client-Side script generally does Not involve the database (server side). - A script may be configured to run for Desktop browsers only, or for Mobile, or both (All). - A script may be configured to run against only a particular form View, or all views (Global). - Client Scripts have access to a form field's prior value (as it was loaded from the database). - Use Cases:
- Place the cursor in a form field on form load.
- Highlight a form field.
- Populate a form field in response to the setting of another field's value.
- Update the Location field to reflect the value entered into the Caller field.
- Disable the Attachment link of a closed record when the form is loaded.
- Modify choice list options.
- Hide or show fields or sections of fields.
- Generate alerts, messages, and confirmations.
- Validate form input data.
- Display a notice at the top of the page to confirm a catalog request was submitted.
Client Script Types include:
- onLoad() - Runs when a form is first painted and before control is given to the user to begin typing. - Used to manipulate a form's appearance or content. - May be used to pre-populate fields with values. - onLoad() scripts DO impact a form's load times. - onChange() - Runs when a field changes value. - Use onChange() to respond to field values of interest, and to modify a field's value or attributes. - Example Use Cases:
- If the State field's value changes to “Closed Complete”, generate an Alert and make the Description field mandatory.
- Check the isLoading property to determine if onChange() was triggered as a result of the form loading its underlying record.
- The value of the oldValue parameter is set only once when the form is loaded from the database.
- oldValue
- A parameter which gives the value as it was when it was last loaded from the database.
- newValue
- A parameter which gives the new value the user just set.
- onSubmit() - Runs when a form is submitted, saved, or updated. - Used for validation of multiple fields all together. Submission may be cancelled by returning false. - A record is not submitted to the server until the onSubmit() script completes execution and returns a value of true. - onCellEdit() - Runs when a cell in a List View changes value through use of the List Editor.
Client Side Script Objects:
- See also:
ServiceNow_Knowledge_GlobalObjects.xlsx
- g_form - The GlideForm object - It provides an API for managing a form, its fields, and its values. - Allows you to: Get a value on a form, hide a field, make a field read-only, write a message at the tope of a form or underneath a field, or add values to a choice list. - The properties of this object are the fields from the form's underlying table. ??? - The g_form object is automatically instantiated, and global, to client-side scripts. - removeOption() is used frequently in client scripts. - getUniqueValue() Gets the Sid / sys_id of the record. - getTableName() - setDisplay() - setVisible() - setDisabled() - setMadatory() - setReadOnly - g_user - The GlideUser object - Provides methods and properties for finding information about the currently logged in user and his roles. Typical use cases include personalizing feedback to the user, and inspecting user roles. - The g_user object is automatically instantiated, and global to, client-side scripts. - hasRole('hr_agent')) - hasRoleExactly() - hasRoleFromList() - hasRoles() - getFullName() - firstName - userName - userID - Quirks: - Client-side validation in any web application may be easily bypassed! - Well-Designed Client Scripts can reduce the amount of time it takes a user to complete a form. - Hidden Feature: The hot key for automatically formatting script is Shift + Tab (Shift Tab) - The onCellEdit() client script runs when a cell on a list changes value. Gives you an opportunity to abort the change. - Note, the user may be editing more than one cell value at a time using the Ctrl Click method. - Be aware that for every change you make to a Script, a new version is automatically saved! These may be found in the Versions relates list at the bottom of the script window. You can also compare scripts using the speed menu or Actions menu. - Client Scripts are used a lot in the Catalog. (Catalog Client Scripts) - Client Scripts VS UI Policies UI Policy Client Script Execute on Form Load Execute on Form Field Value Change Execute on Form Save / Submit / Update Have access to a field's prior value Can handle List field value change(s) Executes after Client Scripts Often involves No Code or Low Code - See Also Catalog Client Scripts (Service Catalog - Catalog Client Scripts) - Global object g_form provides methods to make changes to the form view of records. Note! Some of these methods can be used in Catalog Client Scripts or Wizard Client Scripts, but you must first be tested to determine whether or not they work as expected! - A GlideRecord contains both records and fields. glideRecord Server https://developer.servicenow.com/dev.do#!/reference/api/quebec/server_legacy/c_GlideRecordAPI (ServerGlogal API) glideRecord Server https://developer.servicenow.com/dev.do#!/reference/api/quebec/server/no-namespace/c_GlideRecordScopedAPI (Scoped API) Portal Client Side Scripts - You can use client scripts and catalog client scripts in the Service Portal if the UI Type is set to Mobile / Service Portal or All. Client scripts and catalog client scripts are used with the Form widget and SC Catalog Item widget, as opposed to a widget client controller. Before flagging a script as Mobile / Service Portal or All, make sure that you are only using the mobile APIs. Setting a client script to Mobile does not ensure that it will work, it simply flags that the script should be attempted by the mobile app or the Service Portal. Many of your existing client scripts can be set to All as long as the API calls are supported by the mobile client scripting environment. Checking desktop vs mobile/portal at runtime. Use this when a script is marked “All” but some code only applies to one environment or the other. if (window === null) Write your mobile/portal compatible code here else Write your desktop compatible code here
=====Examples of Mine=====
Client Script for adding icon to field
function onLoad() { //Type appropriate comment here, and begin script below g_form.addDecoration('close_notes','icon-preview','This field is Visible by Customer'); }
Clones - Cloning
- How the Clone is Actually Performed 0) Once the Clone is scheduled, the most recent Database Backup for the Source System is selected (automatically) for use in the Clone Operation. 1) Data Preserver records are used to Save Off data from the Target System. 2) A Brand new, BLANK database is created for the Target instance. THUS, effectively, ALL TABLES are blanked out! 3) The Source Database Backup is restored over the Target Database. 4) Those tables which have been Excluded from the Clone process are TRUNCATED / BLANKED OUT. (Table Exclusion records) 5) Data Preserver Data is restored to the Target Database, overwriting anything which may have come over from the Source Database. 6) Clone Cleanup Scripts are executed against the Target Database. - Clone Exclude Tables (table: clone_data_exclude) - Important! When you Exclude a table from a Clone, that does not mean that the Target table will be unaffected. Excluding a table means that no data will be copied over from the Source. But in a Clone operation, a Brand New Blank database is used for the Target system, so ALL TABLES will end up blanked out, unless they are NOT excluded, or unless a Data Preserver is used. - Clone Data Preservers (table: clone_data_preserver) - Used to preserve (set aside) data in the Target instance so that after the table is 1) blanked out, and 2) records are imported from the Source system, those records are then re-applied to the database. Thus, such records are effectively “preserved” from any changes made during a clone operation. - You specify a Table, and a Filter to select the records to preserve. - Clone Cleanup Scripts (table: clone_cleanup_script)
- Cleanup scripts reside on the Source instance, but they are automatically run on the Target instance after the cloning process finishes.
- Cleanup scripts allow you to setup arbitrary code to be run any time a Clone operation completes.
- After a clone is performed, the same number of Plugins should show up in the sys_plugins table.
Field Decorations - ICONS
- To add an icon to the left of the field, go to incidents>new> right click and go to ui scripts>New The below is for on load
function onLoad() {
//Type appropriate comment here, and begin script below g_form.addDecoration('close_notes','icon-preview','This field is Visible by Customer');
}
Code Completion Window
- As a reminder of which global objects are automatically available in a Script Editor, you can type Ctrl + Spacebar to bring up the code completion window:
Community
- An interactive space for Customers, Partners, and Employees to collaborate and share knowledge. There is a forum for developers here also.
Configure Styles
- Table sys_ui_style https://community.servicenow.com/community?id=community_question&sys_id=c4bf726ddb58dbc01dcaf3231f96191a https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0695430 - Sometimes in ServiceNow, certain columns of data such as integer fields will be Right Justified which can look very strange in the UI. To fix this, open up one of the values in the list view in a form, then right click on the column you want to change the alignment for, and choose “Configure - Styles”. Add a new style with the following properties:
Value javascript:true Style text-align:left;
Configuration - Initial Instance Configuration
- You will want to configure side door accounts for the Core Admin team so that if there are any issues with LDAP or SSO in the future, they may still log in. - Establish contact with the customer's administrators for the LDAP Directory Server and the SSO Identity Provider. - Basic Instance Settings: - Modules
- System Properties - Basic Configuration UI16
OR, go to ITSM Guided Setup - Get Started - Configure
- System Properties - System
- Welcome Page
- Normally Not displayed once Single Sign On integration has been completed.
- Shows a language selection picker if multiple languages have been enabled.
- Connectivity - Email
- Email Configuration
- “Standard” configuration uses ServiceNow mail servers for both inbound and outbound emails.
- “Standard with Forwarding” uses ServiceNow mail server for outbound emails. Inbound emails go to a customer email address which may scan for spam and viruses before forwarding mail to a ServiceNow mail server.
- Basic Properties
- When instances are cloned email sending and receiving are disabled.
- For sub-prod instances, email sending should be enabled only when a test email address is setup to receive ALL emails.
- Email Accounts
ServiceNow may check inbound email from multiple POP3 or IMAP Server mailboxes.
- Outbound Email Configuration
- Modules
- System Properties - Email Properties
- Mail is queued in System Mailboxes - Outbound - Outbox.
- Delete all messages in the Outbox before turning on email sending.
- Mail moves from the Outbox to the Sent box after it is sent.
- System Mailboxes - Administration - Email Accounts
- In SMTP record, set the Email User label so you can identify exactly which instance the emails are coming from.
- Foundation Data and CMDB
- Modules
- Guided Setup - Foundation Data
- During initial configuration, data may be imported from multiple sources to populate foundation data tables such:
- Departments
- Locations
- Companies
- Users
- Groups
- Group Members
- Roles
- Data sources may include files, databases, and LDAP directory servers.
- ServiceNow typically becomes the system of record for…
- CMDB
- Work (Ticketed Processes)
- Many imports DO need to be performed often, over time, since ServiceNow is not the System of Record.
- ITSM Guided Setup - ITSM Guided Setup walks admins through the basic configuration of the platform as well as the configuration for ITSM applications. - Underneath Guided Setup is “System Properties”, table sys_properties. This is where you can go deeper. - Guide Setup capabilities are available for other applications also. - Side Door - A UI Page for ServiceNow, to allow one to bypass Single Sign On integration.
- Sometimes it can take quite a while to get an Access Card. Often this will not work on a project, so you need another method.
- Used for a 2 week contractor.
- [InstanceURL]/sidedoor.do
- A local user account must exist.
- Attempting to access the page while already logged in produces a 'page not found' error.
- Side door may be renamed to a new URL, or may be deactivated.
- Security Multifactor Authentication
- This is just a Plugin.
- You tell it the authenticator location. From that point on, you need to use the authenticator.
Configuration Item (CI)
- A uniquely identified component, used to deliver services, and for which Changes are controlled. - A server, cluster of servers, or logical software application could all be CI's. - CIs can be tangible or intangible devices or applications such as firewalls, computers, email services, and business services. These all need to be managed to deliver service.
Connect Chat
- Takeaways - Connect Chat is an Instant Messaging tool built into ServiceNow which has some product-specific features such as Database Record references (links), recording of conversations in Work Notes, and notifications of record changes. An @Mention feature is also included, as are group chats. - A chat feature within the ServiceNow GUI. - A real-time messaging feature that connects you to your coworkers, bypassing email. - For group chats, you can give them a Name, and even upload a picture to be used as an icon to help distinguish the chat. - You can start a new Connect Chat Conversation, directly related to a Record from the Dropdown next to “Following” at the top of each record. Conversations directly related to a record are stored in the Work Notes for the record. - Chats can take place in a small window that hovers over the Platform UI (a flyout window), or you can expand the chat to its own tab. - The information icon (i) opens a sidebar showing the Records and External links referenced in in the conversation in chronological order. - The person icon lets you quickly see the members of the conversation and send direct messages to them. - Hidden Features: - You can add Record references by dragging the record Short Description (from a form title or a record list) directly into the mini chat window. Or you can just paste the record number directly into the chat window and ServiceNow will recognize it as a record. - You can add file attachments with the paper clip icon, or by dragging and dropping them right into the conversation window. - Use the @ character, and then select a username to get someone's attention by mentioning them in a Chat. (Does not seem to work as of 12/14/2020)
Connections - Credentials - Alias Configuration - Aliases - Connections and Credentials
- Docs https://docs.servicenow.com/bundle/sandiego-platform-security/page/product/credentials/reference/r-credentials.html https://docs.servicenow.com/bundle/sandiego-platform-security/page/product/credentials/concept/credentials-connections-alias.html#credentials-connections-alias - In setting up a connection, there are 4 basic record types involved; Connection, Connection Alias, Credential, and Credential Alias - A Connection record specifies a Host / IP Address. - A Connection record may optionally specify a MID Server. - A Connection record has (specifies / contains / points to) Credentials. - Credentials specify a Username and Password. - Credentials may optionally apply to one or more MID Servers. - A Credential record may be tagged with an Alias of type “Credential” (only). - A Connection record may be tagged with an Alias of type “Connection”; however the type is actually called “Connection AND Credential”. This can lead to a lot of confusion. Just ignore the “…and Credential” part of the type name whenever you see it. - A Connection Alias has a connection type. This is also confusing. I believe the type is used only to limit the types of connections that may be tagged with the Connection Alias. It's not actually specifying the type of the connection tagged by the Connection Alias.
Connection (table sys_connection)
Host Use MID server (flag) MID Server Name == Connection alias (table sys_alias)== Must be of type "Connection AND Credential" Connection type (some dropdowns expect only type "basic")
==Credential == (table discovery-credentials) (or from any sub-classed table such as ssh_credentials) User Name Password MID Server == Credential Alias == (table sys_alias) Must be of type "Credential" (only).
- Credentials and connection information are required to gain access to a computer or network device for Discovery, Service Mapping, and Cloud Management or to perform work using Orchestration. - Connection - A connection is an integration with a system, such as an IP address or endpoint with protocols. It contains specific details, such as database particulars, when integrating with a database. - Credential
- A credential is the authentication data required to make the connection, such as an ID and password.
- The platform stores credentials in an encrypted field on the Credentials [discovery_credentials] table. Once they are entered, they cannot be viewed.
- Alias (tag) - An alias is a naming convention, or tag, that ties to a set of connections or credentials on your instance. An alias contains the necessary connection and credential information to make an application integration. Rather than enter that information every time you integrate, you can use an alias. For example, you can designate an alias to house your QA, development, and production credentials for the same application integration. The alias resolves the application integration for each environment.
- An alias “resolves” during runtime.
- Benefits to using Connection, Credential, and Alias records
- Central location to manage.
- Define once and reuse for multiple platform features.
- Allows non-administrators to use predefined connections and credentials without seeing the details.
- Used by:
Flow Designer, IntegrationHub, Cloud Management, Discovery, Orchestration, and Service Mapping.
- MID Server Credential Synchronization - Each MID Server on your network keeps a copy of every credential that you create on the instance. - This speeds up the reading of credentials when applications need access to multiple devices on the network.
Contacts
Best.Practices@ServiceNow.com Bill McDermott - CEO of ServiceNow as of 2020. community@servicenow.com - Community support team. Developer@ServiceNow.com Fred Luddy - Created the Now Platform. Training@ServiceNow.com TrainingAE@ServiceNow.com
Content Delivery Network (CDN)
- A geographically distributed network of proxy servers and their data centers. The goal is to provide high availability and performance by distributing the service spatially relative to end users.
Content Pages
https://docs.servicenow.com/bundle/quebec-servicenow-platform/page/administer/content-management/concept/c_ContentPages.html Pages are built from content blocks and organized into sites. Pages display as regular webpages that are rendered in HTML. Constructing a content page requires a basic knowledge of HTML. Content pages are formed by arranging content blocks in predefined layouts. They can be used to present login pages, search pages, or ServiceNow content.
Course: Application Development Fundamentals - Orlando - Misc Notes
- It is recommended that every application have at least a User role and an Admin role. - ServiceNow applications built for the desktop also run on Tablets! If you want to run your application on a SmartPhone, you need to do additional work. - It is best practice to keep client-side scripts to a minimum. - It is best practice to make and use a single, reusable, client-side library that is loaded and available to the form.
- Single per application? Or single per company? Or single per form?
- A Table to be extended must have the Extensible flag turned on; you cannot extend a system table or database view. - Another term for a hamburger menu is a “Trigram”. - The top level items in the Filter Navigator are “Application Menus”. The 2nd level items are Modules.
- Modules may be viewed and configured under Navigation - Modules.
- When you need a new table, it very well might be a good idea to Extend an existing table rather than creating a table from scratch. - All new tables are created with a default List and a default Form. - When new fields are added to a table, they are also are automatically added to the end of the corresponding form. - Drag the “Annotation” field type (form the bottom of the Field Types List) to a form to add information, instructions, or separators.
- You can use HTML tags to format the annotation text.
- Annotation types include the following:
- Info Box (Blue or Red)
- Line Separator
- Section Details
- Section Separator
- Text
- A Section without a title acts as a continuation of the last section WITH a title. This allows you to change the number of columns in a titled section. - You can create a field “Style” in studio under “Forms & UI”.
- The style is tied to a table and a field.
- Helpful CSS formatting commands
- font-weight:bold;
- text-decoration:underline;
- font-style:italic;
- text-align:center;
- text-align:right;
- font-size:18px;
- background-color:blue;
- color:yellow;
- All scripts have a trigger specifying WHEN a script's logic should execute. The trigger configuration fields depend on the script type. - The Application Picker in the Platform UI shows every app that you have Installed, but Studio shows you only those applications that you have access to edit. - In Studio, just like in the Platform UI, there are different Views of various forms. If objects are missing, such as Script fields, check the other available views. - When you are creating a Table from scratch, there is no need to give fields a u_ prefix. The u_ prefix indicates that a field was added by a user (customer) after the application was installed. - ServiceNow is a huge ecosystem with a fast growing app store with certified partners creating content. - Some of the newer ServiceNow native applications are published as scoped applications. - Publishing - To publish to the repository, from Studio, go to File - Publish. You can set a version number and publish notes. - Publishing an application Automatically commits local changes (if any) to the Git repository (if Git is linked). - Consider stashing local changes before publishing. - Applications in the Repository automatically appear under System Applications - My Company Applications.
- Orange Circles (badges) appear next to Applications for which there are available Updates. Updates do not happen automatically.
- An application which is Not installed will have an Install button.
- An application which is already installed, but not the latest version will have an Update button.
- Installed Applications will have an Uninstall related link.
- Updated Applications will have a Rollback related link.
- Saving Data with an Application
1) Choose the application scope for the application you wish to save data records to. 2) From any list column menu, choose "Create Application Files". 3) Tell the system when the records should actually be loaded to the target instance. - New Install - New Install and Upgrades - New Install with Demo Data
- To save all code, without using Installations. - My Company Application - Publish to Update Set. - Pushes every single application file to an update set. - Local Update Sets - “Export to XML”
Course - Platform Implementation / Class - Platform Implementation
- This was a Technical class about the details of how to do things In the Platform. Only module 1 was of a non-technical nature. - The class covered features and capabilities of the Core platform only. - Content from this class MAY appear on the Implementation tests for the different Product Specializations, but it would only be a few things. - Class URLs: Book - ServiceNow Platform Implementation - New York - Labs - Lab 4.01 - Created a new app and a new flow to automatically assign groups to users based on the user's department. - Lab 4.02 - Created a simple Action and used it in the Flow from step 4.01.
Course - Scripting in ServiceNow Fundamentals / Class - Scripting in ServiceNow Fundamentals
- This was NOT a class on JavaScript. It was a class on how to apply JavaScript to all of the places it can be used in ServiceNow. - NOT about scoped apps. - NOT a requirement in order to take the developer certification exam! - All ES5! No ES6 or ES8 JavaScript Features! - No certification or voucher. You do get a “badge”. - Only the classes that come with a VOUCHER are required to take the exam. - Learned how to create a new macro, and how to activate it in the script editor by typing the name followed by tab. - You can hover your mouse over orange or red underline characters in the script editor to see more information about the error. - Script is used when you need to: - Add brand new functionality to an instance. - Extend existing functionality. - Automate certain processes - Interact with some 3rd party applications. - Mozilla Rhino
- An open-source implementation of JavaScript, written entirely in Java.
- Version 1.7 R5.
- In the real world, you usually copy and modify, rather than script from scratch. - Good practices: - Whenever possible, use a Condition Builder, rather than script, to configure straightforward conditions. - Always try to script as little as possible.
- Always ask yourself “How will what I'm doing be maintained”. Don't leave behind a script if you don't have to.
- “Script last”. Think “UI Policies” first.
- “Always be in an update set.” That is, always have a named update set open so you don't lose track of your changes.
- Use the favorites menu heavily. Add items there as you are working on a particular feature / bug. Fewer clicks is important.
- Don't forget about the History tab of the Filter Navigator. It is more useful than people think.
- For convenience, use the GlideSystem date methods rather than the JavaScript date methods.
- Once you make changes to a ServiceNow script, it is then considered “customer owned”. If you change it, you own it. - ServiceNow Upgrade Essentials https://nowlearning.service-now.com/lxp?id=overview&sys_id=59c46a98138cc0102fe5b9004244b09e&type=path - ServiceNow is making more and more classes free, even classes like this one. - Increasingly, System Administrators do NOT write script. - Typing incident.config (for example) into the Filter Navigator shows you all of the configuration items based on the incident table. - There is a different API for Scoped Apps vs Global Apps. - A Wrapper Script is sometimes needed to allow a Scoped Application to access a Global API. - The Community (Developer) forum is extremely useful. Often people will give you their code. They want the recognition. - Try not to provision a Fulfiller License for someone who only needs a Request Licenses. There is a big difference in cost. - In ServiceNow, often, if there is a mismatch between an input control type and a database field, the data will just be discarded, and no error message will be presented. Good to know. - Believe GlideSystem has many user methods, whereas GlideUser has methods for the Current user only.
Critical supporting documents
- ServiceNow_Knowledge_Logging.docx
- Step by step detailed examples for building an excellent logging function.
- ServiceNow_Knowledge_Screenshots.docx
- Screenshots of each example.
- Semi-Searchable
- Stable / Reliable (because it does not depend on having access to a working instance of ServiceNow)
- syntax_editor_macros.xml
Code Snippets which may be injected into ServiceNow Script Blocks by typing the name of the macro (like "g01") followed by the tab key.
- sys_remote_update_set_580503181b4d1510279999fe034bcb70GGB Test and Example Code_07_28_2022.xml - Actual Update Set which may be installed and committed to apply the various examples. Tested on my PDI. - Use “Retrieved Update Sets” to Import the XML, Preview the Update Set, and then Commit it. - Articles I wrote Access Controls - The Easy Way https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0685046 - Those with the “admin” role ALWAYS pass ROLE checks, no matter what the “Admin Overrides” setting is set to. - But when “Admin Overrides” is unchecked, those with the “admin” role ARE STILL REQUIRED to pass the CONDITIONS section and the SCRIPT section of an Access Control, in order to gain access to the object. Results of failing an Access Control (ACL) Rule - Screenshots Debug Security - Screenshots ====== current - current object ====== - An object used in Server-Side script to refer to the currently opened record. Used in business rules, workflows, and some other server-side scripts. - The current record is automatically instantiated from the GlideRecord class! - The current record's properties are all fields for a record. - All of the GlideRecord methods are callable on the current object. - includes the current value of all fields as they were set on the client, when the request was passed to the server. - By comparison, “previous” includes the values of all fields as they were when the record was initially loaded from the database record, and before any changes were made in the UI on the client. ====== Custom Application Development ====== - Modules System Applications - My Company Applications - Guided Application Creator - Involves creating an app record, defining user roles, designing data tables, and designing the app for different user experiences. - Studio - An Integrated Development Environment (IDE) for creating custom apps. - Delegated Developer - A non-Admin User that is assigned permissions to develop and deploy applications. Some of the options which may be turned on include: File Type Access, Role Management, Scripting Access, Application Upgrading, and Application Publishing. Delegated Development - Scope - Application Scope limits the changes that an Application can make, so that it does not interfere with core business services, and so that other applications do not interfere with it. - The Global Scope is a special application scope that identifies apps developed prior to the app scoping concept. “Baseline Applications” are apps intended to be accessible to all other Global applications. ======Customer - Customer Engagement - Implementation ====== - Typical Process!… Put team together. Determine Scope. Establish Communication plan. Get Data into the System. Meet customer requirements via Agile / Scrum. Refine processes via automation (Flow). Get reporting / metrics setup. Iteratively refine everything. - Solutions Consultant - “Lots of smoke and mirrors”. - “Partner Consultancies” are the companies that help implement ServiceNow. - On an Implementation project, have teams do work in parallel to the extent possible. Don't be too Waterfall about things. - Typically, in today's world, users are not normally created manually in the system. They are imported from SSO / LDAP. - As a member of a Professional Service Team, your basic responsibilities are: Listen to needs. Make Suggestions. Help implement. - Normally ServiceNow Implementation teams are between 3 people and 30 people. 30 would likely be if there were multiple instances. - Budget and Time are very important to the Customer. Give them high level feedback frequently. - Technical Consultant vs Business Process Consultant: - Some people feel that it is Not a good idea for the same person to be both. - TC knows the Tool very well, including how to write code and the architecture of the system. DB, Script, ServiceNow Certifications. - BPC is an expert in the Process itself, such as ITIL. Tool agnostic. - A BPC might use SIPOC to analyze a process: Supplier Inputs Process Steps Outputs Customer - Map Customer Needs to ServiceNow Product Offerings - 70 Products - 3 Major “Workflows” with corresponding “Solutions”: Customer Customer Service Management Field Service Management Employee (HR) HR Service Delivery Finance Operations Management (FOM) IT IT Asset Management IT Business Management IT Operations Management IT Service Management DevOps Security Operations Governance, Risk, and Compliance Performance Analytics - Engagement Overview - SIM Methodology is used. See Reference. - Understand Typical Project Flow - Pre-Sales - Pre-Engagement - Engagement - Post-Engagement - Understand Engagement Participants: Consulting Project Team Customer Project Team - General Manager Executive - Delivery Manager Project Sponsor - Engagement Manager (EM) Project Manager - Architect - Platform Owner - Technical Consultants (TC) - Process Owners - Business Process Consultants (BPC) - Developers / Admins - Additional Consultants (Integration, SMEs) - Platform Owner Sales Sales Delivery Delivery Delivery Customer Customer Customer Customer Account Executive Solution Consultant Engagement Manager Business Process Consultant Technical Consultant Sponsor Process Owner Project Manager Developer Develops SOW, which defines project scope, timeline, cost, and resource expectations. X X Develops proof-of-value prototypes to demonstrate ServiceNow capabilities. X Responsible for overall engagement, scope, schedule, costs, and resources. X X Communicates and escalates risks and issues. X X Leads requirements workshops and identifies draft requirements by comparing As-Is process vs To-Be process. X Ranks requirements backlog according to business priority, technical dependencies, and customer roadmap. X Guided by EM. Works the story backlog to fulfill customer requirements. X X Shares product knowledge, practical experiences, and best practices with customer resources. X Coaches customer platform administrators and developers. X Coordinates and manages UAT. X Provides formal UAT sign-off and engagement sign-off. X - Implementation Steps - As an Implementer, it is important to understand the data model. - Executive / Stakeholder Workshop Ask the client about: Why did they choose ServiceNow? Current Processes? Future Processes? - Demonstrate simple functionality when possible, using a test instance. - Decide which organizational roles will map to which ServiceNow roles. - Load the company's scrum story data into the rm_story table in SN. Questions: How are the teams organized? How does the team intake work? What information do you want to capture? What are your future goals (per module)? - Know Before You Go: - Build Tag - Example: glide-madrid-01-17-2019patch0-01-08-2019
- May be matched up with release notes in the Product Documentation.
- License
Has a Contract Start Date and Contract End Date? Types: - Per User - Max User
- What version of ServiceNow does the customer currently have, if any?
- Who are the Power Users of each Application?
- The version of ServiceNow (the “Build name”) may be found by navigating to System Diagnostics - Stats - Stats, OR, by typing stats.do. - What Apps are included in the customer's existing license agreements? - Which plugins can be included as a part of the current subscriptions? - Good questions to ask Client: - How often do you have implementation windows? - What is the usage / expected usage. - Do you use Domain Separation? - Domain Separation provides multi-tenancy capabilities within a single instance of ServiceNow. - What Licenses / Plugins do you have / need? - What external connectivity requirements do you have?
- Subscriptions
Video - Getting Started with Subscription Management - Includes a number of individual Subscriptions, which the customer may assign to individual users. - Contains a list of included Applications - Subscription Overview and Compliance Overview dashboards can show details about application usage and help identify power users. - Example of Subscription - Application - Plugin hierarchy
Subscription : Service Management Suite
Applications : Change, Incident, Problem Plugins: Change Management - Core, Change Management - CAB, Workbench, Change Management - Mass Update CI
- Release Cycle
- See ReleaseCycle.snag
- Feature Release
- Named after a major city. Includes new features, obviously.
- Includes all available fixes to existing functionality.
- Patch Release
- Includes a number of Problem Fixes.
- Does NOT include any new features.
- Includes all previously issued Hotfixes.
- The Patching Program provides latest Security, Performance, and Functional fixes to your Instance. Patches are applied to your instance on a regular basis. Most security breaches could have been avoided with the application of known security patches. Each quarter there is one full patch version, followed by two monthly security patches. These are applied automatically with advanced email notice. Non-production instances are patched first, about 2 weeks before Production instances. Patches do not cause downtime / outages. - Hotfix
- Includes a specific problem fix.
- Does NOT include any new features.
- Information which should be collected by Pre-Sales / Sales: See TransitionFromPreSalesToDeliveryTeam.snag
General Info: Contacts Issues Business Drivers / Goals Scope Statement of Work (SOW) Explicit Exclusions from Scope Environment Security & Regulatory Constraints Political Issues / Cultural Considerations Existing Technology Engagement Timeline Expectations Known Constraints Customer Resources Introduction Call Schedule
- Benchmarking - Has the customer opted IN for Benchmarking?
- Regulatory / Compliance standards include: SOX, HIPAA, FDA, GDPR, PCI DSS, PII, Data Sovereignty.
- These can affect Reporting, Encryption, and Auditing
- Analyze Customer Requirements (& Gaps): - The “As Is” state is found by analyzing the following:
- ServiceNow Version
- Subscriptions
- Applications Installed
- Plugins Enabled
- The “To Be” state comes from:
- Statement of Work
- Customer Workshops
- Gaps between the As Is and To Be states are handled by:
- Backlog of Stories
- As a BLANK I want BLANK so that BLANK
- Acceptance Criteria:
- Given X when Y then Z
- Should state intent to be evaluated, but not specify a particular solution. Writing AC this way may be a bit challenging though.
- Story Implementation in Releases
Customer Success Center * (CSC)
-Contains all sorts of white papers and other resources to help a company with a ServiceNow implementation, or to get the most out of the product.
Catalog Item Hyperlinks
If you need a Catalog Item to link to attachments, such as forms, you can do so as follows. In the Description of the catalog item, add a hyperlink with the following properties, for example:
Type: URL URL: /sys_attachment.do?sys_id=b233c6881b2d49906692ebd1604bcbcf Text: this link Target: New Window (_blank)
Attach the actual document to the Catalog Item itself. Get the sys_id by hovering over the attachment and doing “copy link”.
- When testing Email Notifications, one the Who will receive tab, always check the “Send to event creator” checkbox. Otherwise the system will refuse to send emails to you, if you created (caused) the event that would normally generate the email.
Certificate Authority / Certified Authority / Signer
- Uses data provided in a CSR to build an SSL Certificate.
Certificate Signing Request (CSR)
- Key pieces of information:
1) Information about your business and the website that you are trying to equip with SSL capabilities: - Common Name (CN) - The fully qualified domain name (FQDN) of your server. - Organization (O) - The legal name of your organization. - Organizational Unit (OU) - The division of your organization handling the certificate. - City / Locality (L) - The city where your organization is located. - State / County / Region (S) - The state or region where your organization is located. - Country (C) - The two letter code for the country where your organization is located. - Email Address - An email address which may be used to contact your organization. 2) The public key that will be included with the certificate. A public key is used to encrypt data. A private key is used to decrypt data. 3) Information about the key type and length, for example 2048.
- An actual CSR is a string of text about 20 lines long between special —–BEGIN NEW CERTIFICATE REQUEST—– and —–END NEW CERTIFICATE REQUEST—– lines.
Configure - List Layout
- When you configure a List using a column menu and then Configure - List Layout, a record is created in the table sys_ui_list with a user column of (empty). In order to move the list to a new instance, you must export the sys_ui_list record, and all of the sys_ui_list_element records. - When a user goes into Personalize List Columns and presses the Reset to Column Defaults button, a record is Deleted from the sys_ui_list table; the record with the user's name in the user column. This cause the system to then use the record with an (empty) value in that column for the same table.
Configuration
- Configuration of Related Lists Table Related Lists to turn On sysevent_email_action Email Logs - System Property Configuration
Property Value Notes glide.ui.reference.readonly.clickthrough true This shows preview (i) icons, even for disabled fields!
The Options Schema field on an sp_widget record allows you to setup the input fields which appear if a user Ctrl Right clicks on the widget and chooses Options. The Options Page is broken up into “Sections”. Section, field name, label, and hint are all specified in the Option Schema.
The sp_instance_table field “Additional options, JSON format” allows you to soft-code (configure) the values for options which get passed in to the Widget and go into the following fields:
"Server script" field as "options.WhateverOptionItIs". "Client controler" field as "c.optionsWhateverOptionItIs".
Apparently a * appearing after a View Name indicates that the view has been enforced by a View Rule, and thus cannot be changed.
Per Mike: “Signature Pad” Plugin to ServiceNow. Generates an Image.
If you can't use a form to See or Change a field value, remember that you can often make changes to field values DIRECTLY in a List View.
It may help, when you are deploying Update Sets, to put all of the DELETE Actions into a separate update set, and run those FIRST. This may result in fewer “Preview Problems” when you deploy.
Tables to save XML files from to preserve data across images / clones: sys_ui_bookmark sys_ui_list sys_user_preference
You can NOT use comments in a Filter field, even after you specify the “javascript:” designator. Per Jack Wurm, on 02/28/2023, if a user has Read access for Records, they will be able to see a row count. But they may still NOT have access to any fields, so they may see what appears to be blank rows. An OnDisplay business rule may be used to prevent the user from seeing strange messages about rows which were hidden? Bad practice though? Since Debug Security will not show you why the user can't view certain rows? When debugging access controls, try from the List View before you try from the Form. If a record is not being displayed, and there is no Security Log of it, it could be because a BEFORE QUERY Business Rule is changing the record query itself. This can be extremely difficult to track down, especially if the BR does not LOG anything when it changes the query. Documentation on use of gs.nil() https://developer.servicenow.com/dev.do#!/reference/api/tokyo/server/no-namespace/c_GlideSystemScopedAPI#r_ScopedGlideSystemNil_Object?navFilter=glidesystem It is possible to get from a SENT email, logged in table sys_email_log, back to the specific Event INSTANCE that it came from, and from there back to the Record it was associated with. You can attach an After Async business rule to this table to perform additional processing on Notifications which were went out, and have access to both the notification and the event which generated it, and the record which it was associated with. If a record type (such as a script include) has Versioning turned on, the Versions related list will include the “Source” which is an Update Set record. Believe that the “Install Date” is the date and time the update set was applied to the local instance. 2022-12-27 13:42:48 g_navigation.reloadWindow(); Client Side Script for making fields Read Only or Read Write, rather than using individual UI Policy Actions. https://www.servicenow.com/community/developer-forum/g-form-getfieldnames-on-portal-only-why/m-p/2429101#M946596 Service Portal Supported client script types and APIs! https://docs.servicenow.com/bundle/rome-servicenow-platform/page/build/service-portal/reference/client-script-reference.html Remember Ctrl + Space to pull up list of available objects. To log messages and be able to sort them in the ORDER GENERATED! function GGB_Log(textToLog) {
var gdt = new GlideDateTime(); sMessage = gdt.getNumericValue() + " GGBB."; if (!gs.nil(textToLog)) sMessage += " " + textToLog + ".";
gs.warn(sMessage); //Using gs.warn instead of gs.info makes it even easier to filter out the messages you don't care about.
} See the document “ServiceNow_Knowledge_Logging.docx”, which contains step by step detailed examples for building an excellent logging function. To see all the Properties of an object, including those which are UNDOCUMENTED: console.log(Object.getOwnPropertyNames(AnyObject)); AnyObject could be an object such as g_list.