封面
版权信息
Credits
About the Author
Acknowledgement
About the Reviewer
www.packtpub.com
Customer Feedback
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the color images of this book
Errata
Piracy
Questions
The Interface
Frames
Banner frame
System Settings
Help
Connect chat conversations
Global Text Search
Profile
The Application Navigator
Filter text box
Favorites
History
Important application menus and modules
Content frame
UI settings and personalization
Summary
Lists and Forms
List v2 versus List v3
Lists and Tables
Creating a custom table
Creating an update set
Creating the table
Adding a field
List view
Condition builder
Building a filter
Dot-walking
Forms
Form designer
Form layout
Related lists
Summary
UI Customization
UI15 versus UI16
Switching between UI15 and UI16
Branding your instance
Custom themes
UI-Impacting system properties
Configuring service portal UI
Creating a custom homepage
Styling pages and widgets
Styling the CMS
Summary
Understanding Data and Relationships
One-to-many relationships in ServiceNow
Many-to-many relationships in ServiceNow
Creating a M2M table
Other M2M relationships
Enforcing one-to-one relationships
Defining custom relationships
Database table inheritance
Summary
Tasks and Workflows
Important task fields
Active
Additional comments and work notes
Assigned to and Assignment group
Created Created by Updated and Updated by
Description and Short description
Number
State
Journals and the Activity formatter
Extending the task table
Workflows
Important workflow activities
User and Group Approval
Approval Coordinator
If
Switch
Wait for Condition
Create Task and Catalog Task
Branch and Join
Return value
Run Script
Set Values
Workflow Stages
Demo
Approvals
Assignment
Creating Task fields
Summary
UI and Data Policies
UI Policies
Catalog UI Policies
Reverse if False
Scripting in UI Policies
UI Policy Order
Demo
Data Policies
Demo
Converting between Data and UI Policies
Demo
Data Policies versus ACLs
Summary
User Administration and Security
Groups and Roles
Impersonating users for testing
Emails and notifications
Demo
Notification Devices
User preferences
Default preferences
Preferences in update sets
Scripting user preferences
ACLs - security rules
ACL process order
High security plugin
Summary
Introduction to Scripting
To script or not to script?
Client side versus server side APIs
Client side APIs
Server side APIs
Where scripting is supported
Access controls-executes on: server
Business rules-executes on: server
Client scripts and catalog client scripts-executes on: client
Condition builder (and the URL)-executes on: server
Default value-executes on: server
Script Includes-executes on: server
UI actions-executes on: client and/or server
UI policies and catalog UI policies-executes on: client
UI scripts-runs on: client
Workflow activities-executes on: server
Integrated development environment
Script tree
Script auto-completion
Script editor macros
Documentation macro
For-loop macro
GlideRecord macros
Demo
Summary
The Server-side Glide API
The structure of an API class
Server-side APIs
GlideRecord
Initialize
Example usage
addQuery()
Available query operators
Example usage
addNullQuery() and addNotNullQuery()
Example Usage
canRead() canWrite() canCreate() and canDelete()
Example usage
deleteRecord() and deleteMultiple()
Example usage
get()
Example usage
getDisplayValue()
Example usage
getValue() and getUniqueValue()
Example usage
hasNext()
Example usage
initialize() and insert()
Example usage
next()
Example usage
orderBy() and orderByDesc()
Example usage
query()
Example usage
setAbortAction()
Example usage
setLimit()
Example usage
setValue()
Example usage
setWorkflow()
Example usage
update() and updateMultiple()
Example usage
GlideElement
changes() changesFrom() and changesTo()
Example usage
getDisplayValue()
Example usage
getED()
Example usage
getReferenceTable() and getRefRecord()
Example usage
nil()
Example usage
toString()
Example usage
GlideDateTime
Adding or removing time
Example usage
getDayOfMonth() and getDayOfWeek()
Example usage
GlideSession
getClientData() and putClientData()
Example usage
getTimeZoneName()
Example Usage
GlideSystem
addErrorMessage() and addInfoMessage()
Example usage
debug()
Example usage
eventQueue()
Example usage
getProperty()
Example usage
getUser()
Example usage
getUserID()
Example usage
hasRole()
Example usage
GlideUser
getPreference() and savePreference()
Example usage
hasRole()
Example usage
isMemberOf()
Example usage
Client-side APIs
GlideAjax
GlideForm (g_form)
Setting/Clearing messages on the form and fields
Summary
The Client-side Glide API
Client-side APIs
GlideAjax
GlideForm (g_form)
Setting/clearing messages on the form and fields
Dealing with drop-down list fields
Getting and setting values on the form
Controlling field visibility
Setting fields mandatory and read-only
Submitting a client-side form
GlideUser (g_user)
Getting user details
Checking user permissions
Getting client data
GlideRecord
Querying for one or more records
Deleting a record asynchronously
Summary
Server-side Scripting
Dot-walking and GlideElement
Script Includes
Server-side GlideAjax
Business rules
After business rules
Asynchronous business rules
Display business rules and g_scratchpad
Summary
Client-side Scripting
Client Scripts
Client Script types
onLoad
onChange
onSubmit
onCellEdit
Security
Compatibility
Build for performance
Reference fields
GlideAjax and asynchronous GlideRecord
g_scratchpad
UI scripts
Running only necessary scripts
Scripts files from the server
Summary
Debugging
Logging
Client-side debugging
Debugging field visibility
Server-side debugging
Reference versus Value
Debugging security
JavaScript debugger (Istanbul)
Debugger interface
Breakpoints
General Debugging
Summary
Pro Tips
Admin Pro Tips
List personalization
Update Set selector
Reference Field background color
List v3 Rendering
List Form and New Window shortcuts
Adding the ServiceNow Frame by URL
Impersonation simplification
Derived Field Risks
Finding derived fields and other field data
Dictionary overrides
Scripting Pro Tips
Avoiding Nested Loops
Limit Logging
What the pros wish they knew
Field case
Generating Encoded Query Strings
How to modify OOB scripts
Other technical best practices
Summary
更新时间:2021-07-09 18:49:08