Skip to main content

Quebec Key Features (2021)

Some key features of Quebec release:

UI Builder User interface for creating/editing portal pages 

Instance scan Replacement for HealthScan/ACE, allows customers to run their own scans on demand

NLQ (Natural language queries) for reports/lists Automatic report creation and list filtering by typing out the filter in a Q&A format with the platform

Value formatting Tweak values returned by reports (e.g. decimal places of values) 

AI Search Search the platform with a search that is 3x faster than the existing Zing search

Read only roles are taken into account when running tests on records
This means that testing can be completed to determine if changes have caused a different experience for users who have a read-only view of records in ServiceNow
When testing if a read only user can see data following changes to the security of a table

Catalog builder
Process owners can build their own catalog items based on templates made available to them Builder to allow non technical users to build catalog items

Instance scan
Do not have to request healthscan/ACE from ServiceNow, can scan from the platform. Can add additional checks to the scan to pull up our own checks. ServiceNow provide 64 checks out of the box, but customers can add their own custom checks too
Replaces the ACE/HealthScan, customers of ServiceNow can run the scans from the platform rather than needing to request from ServiceNow To see whether a release will fit in with best practice across the platform

User experience analytics for portal
Can track what end users are doing on the portal so we can focus on where we need to improve. Good for flagging user processes for testing Easy-to-use analytics workspace to track users on the platform Track average session time, see the user journey to look at ways to improve those journeys.

Script tracer
Search all server side scripts when debugging issues rather than having to know the name Enhancement to script debugger. Script debugger required the script name to debug, tracer will search all server side scripts. When debugging scripts on the platform

NLQ (Natural language queries) for reports/lists
Can just simply ask things like 'Return Incidents by state' and ServiceNow will build the report/list filter automatically Automatic report creation and list filtering by typing out the filter in a Q&A format with the platform Cannot use this with List v3.

Read only and hidden added to variable form
UI Policy/Client script not needed to hide or set fields as read only Two checkboxes which control read-only and visibility of a variable have been added to the variable form To hide a variable from a catalog item

Flow designer UI
(Flow designer)
More modern/cleaner UI
Cleanup of the UI for Flow designer

Record producer action added
(Flow designer)
Quicker creation of records from within designer A drag and drop action to easily add a record producer to a flow in flow designer has been added

Value formatting
Better drilling down of report values (e.g. format the result of a report to be minutes not days) Tweak values returned by reports
Change the decimal place for a value that is returned on a report

Catalog data lookup definitions
Provide similar dropdown capabilities as available via task Table which stores catalog dropdown dependancies. Same as the Data Lookup Definitions on the likes of Incident (e.g Impact and Urgency driving priority) Impact and Urgency drive the priority on an item form

AI Search
Apparently this will be 3x faster than the Zing search.  Can integrate it with custom apps and even use it to search external sources outside of the platform, like SharePoint Search engine that is available across the entire platform Searching across the entire platform Unavailable on personal dev instances

System property called 'Glide.invalid_query.returns_no_rows' installed by default
Currently if an invalid query (search) is run on a table, all records are returned. This is costly to platform performance if the table has a large number of rows, it can also lead to scripts updating all records in a table rather than the intended subset System property so that erroneous queries will return no records rather than all
Will catch incorrect queries on tables in scripts

Common Service Data Model
Combine different areas of the CMDB to reduce duplication.
Consolidate two disparate CMDBs into ServiceNow following the Common Service Data Model

New scoped classes and additional methods to existing scoped classes

Universal request
Generic item for users to request on the platform User does not know which item to use in the catalog

Process Optimisation
Build a model of what a process looks like
To view how many Incidents have been  in a particular quarter Enterprise licence


Popular posts from this blog

ServiceNow check for null or nil or empty (or not)

Haven't tested these all recently within global/local scopes, so feel free to have a play! option 1 use an encoded query embedded in the GlideRecord , e.g.  var grProf = new GlideRecord ( 'x_cls_clear_skye_i_profile' ); grProf . addQuery ( 'status=1^ owner=NULL ' ); grProf . query (); even better use the glideRecord  addNotNullQuery or addNullQuery option 2 JSUtil.nil / notNil (this might be the most powerful. See this link ) example: if ( current . operation () == 'insert' && JSUtil . notNil ( current . parent ) && ! current . work_effort . nil ())  option 3 there might be times when you need to get inside the GlideRecord and perform the check there, for example if the code goes down 2 optional routes depending on null / not null can use gs.nil : var grAppr = new GlideRecord ( 'sysapproval_approver' ); var grUser = new GlideRecord ( 'sys_user' ); if ( grUser . get ( 'sys_id' , current . approver )){

Get URL Parameter - server side script (portal or classic UI)

Classic UI : var sURL_editparam = gs . action . getGlideURI (). getMap (). get ( ' sysparm_aparameter ' ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); } Portal : var sURL_editparam = $sp . getParameter ( " sysparm_aparameter " ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); }