Helsinki Patch 4

The Helsinki Patch 4 release contains fixes to these problems.

For the Helsinki Patch 4 release:
Build date: 08-27-2016_1002
Build tag: glide-helsinki-03-16-2016__patch4-08-10-2016

For more information about how to upgrade an instance, see Upgrade to Helsinki.

For more information about the release cycle, see the ServiceNow Release Cycle. For a downloadable, sortable version of Helsinki fixed problems, see KB0598266.

Note: This version is approved for FedRAMP.

Security-related Fixes

Helsinki Patch 4 includes fixes for security-related problems that affected certain applications and the ServiceNow platform. We recommend that customers upgrade to this release for the most secure and up-to-date ServiceNow features. For more details on security problems fixed in Helsinki Patch 4, refer to KB0597395.

Notable Fixes

The following problems and their fixes are ordered by potential impact to customers, starting with the most significant fixes.
Problem Affected plugins Short description Description Steps to reproduce

User Interface (UI)

PRB702543

NG shared components High CPU utilization is correlated to Record Presence transactions Analysis of servers with high CPU utilization has determined that Record Presence can significantly increase CPU load. It has been observed that turning Record Presence off can lead to a 25% reduction in CPU load.
  1. Toggle Record Presence off and on while hundreds of users interact with an app node.
  2. Notice the difference in CPU load.

Tables and Dictionary

PRB652054

Label override bug for label name when using form designer On the same table with the label override, if fields are moved around using the form designer, and the label that has an override is a field such as 'short description', all of the respective child tables where that field is derived from (e.g. TASK) will have their short description labels changed to reflect the new label.
  1. Using the short description field, create a new label record off of the incident table.
  2. Make the label name 'test' and save the record.
  3. Go to the dictionary entry for the task_short_description field and scroll down to the label related list.

    Notice that there is now a label record for the short_description field with a value of 'test' on the incident table.

  4. Go to an incident record.

    Notice that the short description label now shows up as test (this is expected since we are doing a label override).

  5. Using the form designer, adjust the order of any two fields by dragging and changing the order of the fields.
  6. Click Save.
  7. Now go to any table other than incident that extends task.

Notice that the short description on the incident form has been changed to Test.

Forms

PRB666131

KB0583973

If field preceding activity stream is read-only, the stream does not show inputs If Additional Comments and Work Notes are on a separate section of the form or not followed by the Activities (filtered), and there is a read-only field (for ITIL users) before the Activities (filtered), the fields do not display for ITIL users. Conditions to get the problem:
  1. Must be ITIL user
  2. Journal fields must be in different section than activity formatter, or not following the activity formatter does not follow the journal fields
  3. There must be a read-only field for the ITIL user before the activity formatter
  1. Log in as an administrator.
  2. Open an incident form, navigate to Configure > Form Layout, and create a new form section.
  3. Add the following fields to the new section: Additional Comments, Work Notes, and Activities (filtered).
  4. Verify that the newly created fields are displayed.
  5. Impersonate an ITIL non-admin user.
  6. Open an incident.

    Note that the Additional Comments and Work Notes input fields are not displayed.

  7. End the impersonation and go back to the administrator session.
  8. Remove the Activities (filtered) field from the affected form section.
  9. Impersonate an ITIL non-admin user.

Note that the Additional Comments and Work Notes input fields are displayed.

Core Platform

PRB669163

Transaction Quotas Security Incident Response plugin is causing issues with large transforms The Security Incident Response plugin is causing issues with large transforms. The load of the imports gives an error (see Steps to reproduce).
  1. Loading data in a Geneva instance without activating the 'Security Incident Response' plugin works as expected.
  2. Loading the data with the plugin 'Security Incident Response' activated leads to the error 'Transaction cancelled: maximum number of business rules exceeded'.

In a Geneva instance:

  1. Load data without activating the 'Security Incident Response’ plugin.

    Note that data is imported successfully.

  2. Enable the 'Security Incident Response’ plugin.
  3. Load the data.
Note the error 'Transaction cancelled: maximum number of business rules exceeded’:
com.glide.sys.TransactionCancelledException: Transaction cancelled: maximum number of business rules exceeded 
at com.glide.sys.Transaction.cancelIfRequested0(Transaction.java:1251) 
at com.glide.sys.Transaction.cancelIfNecessary(Transaction.java:1506) 
at com.glide.db.DBIError.handleException(DBIError.java:20) 
at com.glide.db.DBI.executeStatement(DBI.java:819) 
at com.glide.db.DBI.executeStatement(DBI.java:785) 
at com.glide.db.DBQuery.executeAsResultSet0(DBQuery.java:295) 
at com.glide.db.DBQuery.executeAsResultSet0(DBQuery.java:270) 
at com.glide.db.DBQuery.executeAndReturnTable(DBQuery.java:236) 
at com.glide.db.DBAction.executeNormal(DBAction.java:208) 
at com.glide.db.DBAction.executeAndReturnException(DBAction.java:177) 
at com.glide.db.RDBMSQueryContext.executeQuery(RDBMSQueryContext.java:46) 
at com.glide.db.DBQuery.execute(DBQuery.java:1806) 
at com.glide.db.meta.Table.queryBasic(Table.java:316) 
at com.glide.db.meta.Table.query(Table.java:191) 
at com.glide.script.GlideRecordITable.query(GlideRecordITable.java:79) 
at com.glide.script.GlideRecord.query0(GlideRecord.java:3001) 
at com.glide.script.GlideRecord.query(GlideRecord.java:2726) 
at com.snc.security_incident.SecurityIncident.getRolesInScope(SecurityIncident.java:301) 
at com.snc.security_incident.SecurityIncident.<init>(SecurityIncident.java:41) 
at sun.reflect.GeneratedConstructorAccessor382.newInstance(Unknown Source) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
at java.lang.Class.newInstance0(Class.java:361) 
at java.lang.Class.newInstance(Class.java:314) 
at org.mozilla.javascript.FunctionObject.construct(FunctionObject.java:565) 
at org.mozilla.javascript.ScriptRuntime.newObject(ScriptRuntime.java:1329) 
at org.mozilla.javascript.gen.c556.call(sys_script.3f0dbec1ff2202007a6dffffffffff34:1) 
at org.mozilla.javascript.gen.c556.exec(sys_script.3f0dbec1ff2202007a6dffffffffff34) 
at com.glide.script.ScriptEvaluator.execute(ScriptEvaluator.java:233) 
at com.glide.script.ScriptEvaluator.evaluateString(ScriptEvaluator.java:105) 
at com.glide.script.ScriptEvaluator.evaluateString(ScriptEvaluator.java:72) 
at com.glide.script.fencing.GlideScopedEvaluator.evaluateScript(GlideScopedEvaluator.java:318) 
at com.glide.script.fencing.GlideScopedEvaluator.evaluateScript(GlideScopedEvaluator.java:283) 
at com.glide.script.fencing.GlideScopedEvaluator.evaluateScript(GlideScopedEvaluator.java:254) 
at com.glide.script.fencing.GlideScopedEvaluator.evaluateScript(GlideScopedEvaluator.java:242) 
at com.glide.script.BusinessRule.evaluateCondition(BusinessRule.java:462) 
at com.glide.script.BusinessRule.conditionMet(BusinessRule.java:411) 
at com.glide.script.BusinessRule.runBusinessRule(BusinessRule.java:184) 
at com.glide.script.BusinessRule.run(BusinessRule.java:173) 
at com.glide.script.GlideRecordBusinessRules.run(GlideRecordBusinessRules.java:84) 
at com.glide.script.GlideRecord.runScripts(GlideRecord.java:1175) 
at com.glide.script.GlideRecord.addBeforeQueryRules(GlideRecord.java:3112) 
at com.glide.script.GlideRecord.prepQuery(GlideRecord.java:3105) 
at com.glide.script.GlideRecord.query0(GlideRecord.java:2995) 
at com.glide.script.GlideRecord.query(GlideRecord.java:2726) 
at com.glide.glideobject.Journal.getRecords(Journal.java:199) 
at com.glide.glideobject.Journal.populateCommittedEntries(Journal.java:220) 
at com.glide.glideobject.Journal.setup(Journal.java:215) 
at com.glide.glideobject.Journal.setDisplayValue(Journal.java:161) 
at com.glide.script.glide_elements.GlideElementGlideObject.setDisplayValue(GlideElementGlideObject.java:204) 
at com.glide.script.glide_elements.GlideElementGlideObject.setValue(GlideElementGlideObject.java:155) 
at com.glide.script.GlideRecord.put(GlideRecord.java:3455) 
at org.mozilla.javascript.ScriptableObject.putProperty(ScriptableObject.java:1558) 
at org.mozilla.javascript.ScriptRuntime.setProp(ScriptRuntime.java:854) 
at org.mozilla.javascript.gen.c5750.call(sys_script_include.c9f753570fb01e0044635f8792050ee3:372) 
at org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1227) 
at org.mozilla.javascript.gen.c5754.call(sys_transform_script.76408b3b0f61020035c6d24172050ec5:4) 
at org.mozilla.javascript.optimizer.OptRuntime.callSimple(OptRuntime.java:297) 
at org.mozilla.javascript.gen.c5755.call(sys_transform_script.76408b3b0f61020035c6d24172050ec5:1) 
at org.mozilla.javascript.gen.c5755.exec(sys_transform_script.76408b3b0f61020035c6d24172050ec5) 
at com.glide.script.ScriptEvaluator.execute(ScriptEvaluator.java:233) 
at com.glide.script.ScriptEvaluator.evaluateString(ScriptEvaluator.java:105) 
at com.glide.script.ScriptEvaluator.evaluateString(ScriptEvaluator.java:72) 
at com.glide.script.fencing.GlideScopedEvaluator.evaluateScript(GlideScopedEvaluator.java:318) 
at com.glide.script.fencing.GlideScopedEvaluator.evaluateScript(GlideScopedEvaluator.java:283) 
at com.glide.script.fencing.GlideScopedEvaluator.evaluateScript(GlideScopedEvaluator.java:254) 
at com.glide.script.fencing.GlideScopedEvaluator.evaluateScript(GlideScopedEvaluator.java:242) 
at com.glide.db.impex.transformer.TransformerScript.runScript(TransformerScript.java:62) 
at com.glide.db.impex.transformer.TransformerScript.runWhenScript(TransformerScript.java:123) 
at com.glide.db.impex.transformer.Transformer.runOnBeforeScript(Transformer.java:269) 
at com.glide.db.impex.transformer.Transformer.transformBatch(Transformer.java:142) 
at com.glide.db.impex.transformer.Transformer.transform(Transformer.java:76) 
at com.glide.system_import_set.ImportSetTransformerImpl.transformEach(ImportSetTransformerImpl.java:238) 
at com.glide.system_import_set.ImportSetTransformerImpl.transformAllMaps(ImportSetTransformerImpl.java:91) 
at com.glide.system_import_set.ImportSetTransformer.transformAllMaps(ImportSetTransformer.java:59) 
at com.glide.system_import_set.ImportSetTransformer.transformAllMaps(ImportSetTransformer.java:46) 
at com.snc.automation.ScheduledImportSetJob.runImport(ScheduledImportSetJob.java:55) 
at com.snc.automation.ScheduledImportJob.execute(ScheduledImportJob.java:45) 
at com.glide.schedule.JobExecutor.execute(JobExecutor.java:80) 
at com.glide.schedule.GlideScheduleWorker.executeJob(GlideScheduleWorker.java:191) 
at com.glide.schedule.GlideScheduleWorker.process(GlideScheduleWorker.java:135) 
at com.glide.schedule.GlideScheduleWorker.run(GlideScheduleWorker.java:57) 
Caused by: com.glide.db.TransactionSQLCancelledException: maximum number of business rules exceeded 
at com.glide.db.QueryTimer.<init>(QueryTimer.java:37) 
  at com.glide.db.pool.PooledDBI.createQueryTimer(PooledDBI.java:198) 
  at com.glide.db.DBI.executeStatement(DBI.java:798) 
  ... 78 more

User Interface (UI)

PRB663730

Activity formatter filter on Geneva Incident form is missing the option 'All' on the options list This option used to be available in Fuji. The Geneva activity formatter product documentation does not contain information about the exclusion of this feature. If a Geneva instance is reverted to UI15, the functionality is still available.

In an OOB Geneva instance:

  1. Impersonate Fred Luddy.
  2. Navigate to Incident > Assigned to me.
  3. Click on the incident INC0000052.
  4. On the right side of the Activity field, click on the filter icon.

Note that the Option 'All' is missing.

MID Server

PRB665835

ECC Message creation might end up blocking all ECC Queue processing The ECC Queue monitor, which processes a list of ECC messages (ECCQueueMonitor.processMessages), creates an instance of eccmessage. However, this method does not copy factory variables. If ECCMessage.update is called, which in turn uses factory variable, the MID Server throws NullPointerException. It may try to reprocess the same ECC message, leaving the MID Server perpetually stuck.

Core Platform

PRB609866

When downloading an attachment with special characters in the name, the file name is changed to 'download' When downloading an attached file with special characters present in the name (using Chrome or IE), the file name is changed to 'download'. This issue is not reproducible in Firefox, and the file extension does not change.

Using Chrome or IE:

  1. Go to an incident form and open an incident.
  2. Attach a document with special characters (e.g. Chinese characters or 'Especificaci&oacute;nT&eacute;cnica.doc'). Save.
  3. Click the attached file to download it.

Expected behavior: File name is kept after download.

Actual behavior: The file name changes to download.doc.

Service Portal

PRB691597

Service Portal variables max_length are inconsistent with normal Catalog UI The single-line text and wide variables only permit 40 characters, which is inconsistent with the normal Catalog UI. In addition, field-mapped variables max_length are also inconsistent with the normal Catalog UI.

User Interface (UI)

PRB692216

KB0597917

Safari 10.x in MacOS Sierra sends users to UI11

When a user logs into certain versions of a Fuji, Geneva, and Helsinki instance using Safari 10.0 (Mac Sierra beta version), they are redirected to UI11/U14.

The user agent off of the new Safari 10 is: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Safari/602.1.38".

Refer to the listed Known Error KB article for details.

All Other Fixes

Problem category Affected plugins Short description Description Steps to reproduce

Business Logic Processing

PRB700676

KB0597337

Issue with GlideElementPhoneNumber and updateMultiple Using multipleUpdate() on a table with a phone number field causes the phone number field to be set to null. Refer to the listed Known Error KB article for details.

Change Management

PRB689023

Change Management - Core, Change Management Workflows After upgrade from Fuji to Helsinki, CIs in the CMDB are missing Save or Submit buttons

On an instance upgraded to Helsinki which does not have the new Change Management plugin installed:

  1. Navigate to the Configuration Items list (cmdb_ci.list).
  2. Click New.

Note the Submit UI action is not present.

Chat

PRB691776

Support chat - Messages from a user in a lower-level domain will not appear immediately in the chat queue For chats to appear, a refresh is required.
  1. As ACME.employee, open the URL to the ACNME support queue as a user. (You must construct URL manually or have a shortcut already established to it.)
  2. As ACME.employee, view the incoming chat request in the queue.
  3. As MSP.itil, accept the chat.
  4. As MSP.itil, acknowledge the chat with a message.
  5. As ACME.employee, type a message back to MSP.itil.
  6. As MSP.itil, respond to the message.

Actual result: Users have to refresh in order to see and respond to messages.

Expected result: Users are able to see each other's messages immediately.

Chat

PRB702095

chat_queue_entry records are not closed properly when an end user closes the conversation chat_queue_entry records are not updated correctly when an end user closes their own support chat. The business rules for calendar_duration and the active field are not run.
  1. Install Connect Support with demo data.
  2. As Joe Employee, start a support conversation.
  3. As Beth Anglin (in another browser), accept the chat.
  4. As Joe, close the support conversation.
  5. Switch to System Administrator and view the chat_queue_entry record.

Notice calendar_duration is not set, the record is still marked "active", and the closed_at value has not been updated.

Cloud Management Application

PRB679730

Issue with 'Download Azure Billing Report for Specific Month' for the month of April 2016 The 'Download Azure Billing Report for Specific Month' workflow downloads the Azure billing file. The workflow works as expected for all months, except for the month of April 2016. The workflow errors out with a message in the error log.
  1. Log in as admin.
  2. Navigate to Microsoft Azure > Report Schedules > Azure Billing Download Schedule.
  3. Click Download Previous Month Report.
  4. Set the Start and End month to 2016-04.
  5. Click Execute Now.

Notice that it kicks off the 'Download Azure Billing Report for Specific Month' workflow, but the Runscript activity 'Download billing report' fails. This issue is only reproducible for April 2016.

Error:

Download billing
report(086e2a57870202001108f4bbe3e3ecf3): Caught exception in InterpretedScript
<refname>: org.mozilla.javascript.JavaScriptException:
org.mozilla.javascript.WrappedException: WrappedException of String has exceeded max
size of 16777216

CMDB

PRB675704

Configuration Management (CMDB) 'Show CI Timeline' UI action can result in 'RP is not defined' error
  1. Navigate to a CI.
  2. Right-click on the header > History > Timeline.

The action navigates to the previous page and the following message is found in the log: org.mozilla.javascript.EcmaError: "RP" is not defined.

CMDB

PRB679085

NullPointerException error when loading the CI Relations formatter on a customized cmdb_ci tables whose name do not start with cmdb_ci

Dependency Views (BSM Map)

PRB675752

Next-Gen BSM Export Image and Load View not supported for IE11 and Firefox In Dependency Views > View Map, the 'Load View' and 'Export Image' features are not compatible with IE11.

Using IE11:

  1. Log in as an admin.
  2. Navigate to Dependency Views > View Map.
  3. Click the menu (hamburger) icon > Export Image.

Note that this feature is not supported for IE11 or Firefox.

Dependency Views (BSM Map)

PRB692554

Dependency CI name and group names are cut off when small screen resolution and test failed When comparing maps, some of the CI names are cut off with the extension/suffix of "..." This breaks most of the tests.

Dependency Views (BSM Map)

PRB700595

Next-Gen BSM Space used to display map in BSM View Map in Helsinki is not appropriate To display the BSM map, the new BSM uses much more space, making the map less readable. In the legacy BSM map view, space was used more optimally.

Discovery

PRB661411

Duplicate 'discovery.phase.complete' events can sometimes be triggered, which can cause duplicate 'Run after' Discovery Schedules to be triggered

Discovery

PRB671545

After Geneva upgrade, the MID Server throws NPE on any ecc_queue command that does not have a source specified The ECCQueueMonitor tests each ecc_queue entry for a source, to see if the source is restarted. When there is no source specified in a queue, as is the case with the heartbeat for example, a NullPointerException is thrown.
  1. Download and install a Fuji MID Server.
  2. Configure the MID Server to point to a Geneva instance, forcing the MID Server to upgrade.
  3. After the upgrade, watch the agent log on the MID Server.

You will start to see NullPointerExceptions coming from SystemCommandExecutor line 56.

Discovery

PRB683358

Certain probes cannot be selected from slushbucket for Triggers probe on Discovery Classification For the related list 'Triggers probes' from a Discovery Classification record, the options are restricted to records with sys_class_name="discovery_probes". Multiprobes, AWS Probe, Azure Probes, and others cannot be selected. This prevents Discovery administrators from specifying a new probe to trigger that is not of sys_class_name="discovery_probes".

In an instance with the Discovery plugin (com.snc.discovery) active:

  1. Navigate to Discovery Definition > CI Classification > SNMP > Firewall.
  2. Under the related list Triggers probes, click Edit.
  3. Search for a probe that extends discovery_probes.

Some probes do not appear as available options. Some examples:

  • MultiProbe: AIX - Idenity, Unix - ADM
  • AWS Probe: AWS EC2 - DescribeInstances
  • SNMP Probe: SNMP - Classify, SNMP - Netware

With SQL Debugging, the following message appears:

[glide.3] /*...*/ SELECT ... FROM (discovery_probes
discovery_probes0 INNER JOIN sys_metadata sys_metadata0 ON
discovery_probes0.`sys_id` = sys_metadata0.`sys_id` ) WHERE
sys_metadata0.`sys_class_name` = 'discovery_probes' ORDER BY
discovery_probes0.`name` limit 0,102

On an instance where this works as expected, the message is:

[glide.1] /*...*/ SELECT ... FROM
(discovery_probes discovery_probes0 INNER JOIN sys_metadata sys_metadata0 ON
discovery_probes0.`sys_id` = sys_metadata0.`sys_id` ) ORDER BY
discovery_probes0.`name` limit 0,102

Discovery

PRB683929

Geneva - Linux CPU core count is not always correct

Edge Encryption

PRB670270

Setting edge_encryption_clear_text_allowed to 'true' attribute on an edge-encrypted field has no effect - clear text insert is not allowed when it should be Setting edge_encryption_clear_text_allowed to the 'true' attribute on an edge-encrypted field allows the insertion of unencrypted data. This functionality is broken - clear text data inserts are not allowed even when the attribute is present and set to true.

On a Geneva instance:

  1. Install the Edge Encryption plugin.
  2. Install and configure the Edge Encryption proxy.
  3. Create a simple encryption configuration: encrypt Comments on Asset table.
  4. From the Asset list view, click the hamburger icon > Dictionary > Comments > Advanced View.
  5. Add edge_encryption_clear_text_allowed=true attribute (comma-separated), and update.
  6. From the proxy: add a new record and verify Comments are encrypted.
  7. From the instance: add new record, verify that it was created properly.
  8. Upgrade the instance to Helsinki.
  9. Try to update the record from the instance.

Notice that the update fails.

Forms

PRB603857

Autocomplete issues with double-byte character set (DBCS) (Japanese and Chinese) When double-byte alphabets are used in the Caller field, the Caller Option field does not appear.
  1. Start Windows 7 in a VM.
  2. Navigate to Control Panel > Region and Language.
  3. Set the Language to Japanese.

    The language bar appears after the change.

  4. In a ServiceNow instance, navigate to Incident > Caller Option.
    1. Single-byte characters: Choose "半角英数(P)" in the language bar. Type "ab" in Caller field. The Caller Option appears.
      Note: "半角英数(P)" is single-byte alphabets.
      Double-byte characters: Choose "全角英数(L)" in the language bar. Type "ab" in Caller field.
      Note: "全角英数(L)" is double-byte alphabets.
    2. Type "fn" key + F10 (Mac keyboard). Double-byte "ab" is converted to single-byte "ab".

      Note the Caller Option does not appear right away.

    3. Hit Space key and the backwards key. Then, the Caller Option appears.

HR Service Management

PRB698836

Human Resources Application: Service Portal Breadcrumb link goes missing after you click 'Service Catalog' link in Service Portal The 'sc_view' page in Service Portal: Core does not seem to contain any breadcrumbs.
  1. Navigate to the HR Service Portal.
  2. Open any catalog item by navigating to Benefit > 401k.
  3. From the breadcrumbs, click Service Catalog.

Notice that the whole link goes missing.

HR Service Management

PRB704681

Human Resources Application: Core HR Profile module has active is true filter - needs to be updated to user.active HR Profile module currently has Active is true filter(bad), but it should be user.active = true instead.
  1. Install HR core plugin.
  2. Navigate to HR profile module.

Notice that filter is active = true and nothing is returned (bad). It should be be user.active = true instead.

Import / Export

PRB684827

KB0596908

When importing groups from LDAP, one group is dropped When importing groups from LDAP, one group is consistently dropped on the import and another group is imported twice on the staging table. Refer to the listed Known Error KB article for details.

Knowledge Management

PRB660783

KB0596412

Knowledge Management V3 Vertical scroll bar is not enabled for $knowledge.do inside iframe in ESS portal This issue also occurs when navigating to /ess/knowledge_splash.do. Refer to the listed Known Error KB article for details.

Knowledge Management

PRB668730

Knowledge Management V3 Knowledge Search does not return results after clicking on the "Home" button When using knowledge search and searching for a keyword (e.g. "vpn"), the results show up. Afterwards, if a user clicks on the "Home" button and tries to search again by typing "vpn", they see the message "Your search did not return any results for vpn".
  1. Go to the knowledge homepage.
  2. Type in vpn and click Enter.

    The results show up.

  3. Click the Home button.
  4. Re-type vpn in the search.

The message "Your search did not return any results for vpn" shows up.

Knowledge Management

PRB675065

Knowledge Management V3 Knowledge article ampersand error when escape text is false, knowledge attachment has & in title and is displayed on article If escape text is set to false, and the article is configured to show attachments, and one of the attachments has an ampersand in it, viewing the article results in the following message:
The entity name must immediately follow the '&' in the entity reference.
  1. Set escape text to false: /nav_to.do?uri=sys_properties.do?sys_id=a7e8db450a0a0b0a308ab5de09733d15.
  2. Bring up any article in edit mode (e.g. /nav_to.do?uri=kb_knowledge.do?sys_id=022830860f413100b823f45be1050e99).
  3. Check the Display attachments checkbox and Save.
  4. Add an attachment to the article that has an & in the file name.
  5. Click View Article.

Expected behavior: You can see the article.

Actual behavior: You see an ampersand error (this varies based on the positioning of ampersand and version).

Knowledge Management

PRB675709

KB0596685

Knowledge Management V3 The "Most Useful" section on the Knowledge home page does not sort properly The 'Most Useful' section on the Knowledge homepage does not display articles based on the kb_feedback.useful field. This field is set when a user votes that a knowledge article is helpful.
  1. Navigate to the Knowledge home page.

    Note the articles that are displayed in the Most Useful section.

  2. Navigate to the kb_feedback table.
  3. Add the Useful column to the list (if not already displayed).
  4. Filter the list by:
    • Article.Published=True
    • Article.Knowledge_Base.Active=True
    • Useful=Yes
  5. Group the articles by Article.Short description.
  6. Compare the articles on this kb_feedback list to what was displayed in the Most Useful section on the Knowledge home page.
The articles in the Most Useful section are not displayed by Article.Published=True, Article.Knowledge_Base.Active=True, and Useful=Yes with the articles with the highest Useful=Yes count at the top of the section. (Note that the number of items shown in the section is governed by glide.knowman.content_block_limit.)

Knowledge Management

PRB679376

KB0596019

Knowledge Management V3 kb_home and kb_find do not render if knowledge base names include ampersand (&) and glide.ui.escape_text is false Knowledge homepage (kb_home) and search page (kb_find) do not render if knowledge base names include an ampersand (&) and glide.ui.escape_text is false. This problem is reproducible in Geneva and Helsinki. Refer to the listed Known Error KB article for details.

Knowledge Management

PRB700261

Knowledge v3 filtering options not shown for non-admins when the property named glide.invalid_query.returns_no_rows is set to True When glide.invalid_query.returns_no_rows is set to True, the knowledge filters (knowledge base, categories) are not shown from the knowledge search page ( $knowledge.do). This unexpected behavior only occurs for non-admin users.

In a Geneva instance:

  1. Enable a system property named glide.invalid_query.returns_no_rows and set it to true (create it if necessary).
  2. Impersonate a non-admin user.
  3. Navigate to Knowledge > Homepage (or $knowledge.do).
  4. Search for a keyword.

Note that filters (knowledge base, categories) are not shown. However, if glide.invalid_query.returns_no_rows is set to false, the filters display as expected.

Language and Translations

PRB704707

Service Portal translations need to be added to Helsinki The fix for this PRB adds translations for Service Portal to Helsinki.

MID Server

PRB687457

SNC_SSHSession status is still OK after session being closed by server When a SNC SSH session is closed by the SSH server, the session status is still OK. Since the session is pooled and its status is OK, the next time a probe gets a bad session, it will think it is a good one. This causes an error in the MID Server log.
  1. Run a SSHCommand probe against a Linux machine.
  2. After the probe is finished, reboot the Linux machine.
  3. Run the probe against the same Linux machine.

Expected result: Step 3 should return the result.

Actual result: You see the following error message in the MID Server log:
SSHCommand SEVERE *** ERROR *** Error opening SSH exec job: Error; job finished with status
ERROR: Problem in SSH session, job aborted: Session closed during channel open

MID Server

PRB689004

KB0597413

NullPointerException when JDBC connection string embeds username/password directly in connection string Using the JDBCProbe and GigDBUtil script include to create an XML to get/send data to an Oracle Database works as expected in Fuji, but in Helsinki it causes an error. Refer to the listed Known Error KB article for details.

MID Server

PRB691899

SCPRelay fails with error, "Target directory `/your/path/here` does not exist or is not writeable or executable." When copying a file or files with SCPRelay, the probe may fail to find the path specified for the target device. It erroneously looks on the source to validate the path of the target.

Use SCPRelay to transfer a file into a directory that does not exist on the source.

The check for the existence and writability of the target directory fails, causing the command to fail.

MID Server

PRB704676

CyberArk credentials cannot be read if the user creates a custom credential type for SSH

For SSH credentials, Discovery supports basic (username/password) and SSH Keys. In order to support users with multiple credentials on the same IP address, a fix was introduced that would validate that the credential returned was of the correct type.

Prior to this fix, if you ask for basic credentials and only SSH Keys are available, SSH Keys were returned. The types are now validated from CyberArk. However, this does not account for users who create custom credential types. These will not work, as they are neither SSH or SSH Keys types.

The fix for this PRB adds a configurable parameter (ext.cred.check_ssh_type) to the config.xml MID Server file that enables you to enable/disable the check for credential type. The default is off, which was the old behavior.

See the following topics for details:

Mobile

PRB690498

Subcategory incorrectly shows values for all Categories when Category is null The dependency from Subcategory to Category does not work on mobile UI, whereas it works as expected on the desktop UI.

In a Helsinki instance:

  1. Open any Incident form.
  2. Switch view to Mobile.
  3. Configure the form layout, including the Subcategory field below the existing Category field.
  4. Activate the Mobile UI: /$m.do.
  5. Open an incident form, and click the Category drop-down choice list.
  6. Set the Category to Null.
  7. Expand the Subcategory drop-down list.

Notice all subcategories are shown. In the desktop UI this would show an empty list, only populated after the parent Category is set.

Orchestration

PRB682428

Enable and Disable AD user object activities are not setting UAC to correct values When running the Enable or Disable AD user object activities, the functions in the activedirectory.psm1 module are not setting the useraccountcontrol values correctly.
  1. Activate the Orchestration plugin.
  2. Open the Workflow Editor.
  3. Create a workflow that includes the Enable or Disable AD User Account activity.
  4. Fill out the required fields.
  5. Run the workflow.

Persistence

PRB662782

KB0597336

MySQLCancel may kill future query if the current one has already finished before the kill statement was issued Due to a bug in the MySQL Server, the kill query <PID> statement may kill a future query on this connection if the current query has already finished before the kill statement was issued. Refer to the listed Known Error KB article for details.

Platform Security

PRB702008

Password 2 columns still have short lengths after Helsinki upgrade
  1. Short Password 2 columns are not getting their lengths changed to 255 upon upgrade. This will break when storage encryption is activated with following error:
    2016-07-22 10:12:10 (377) main SYSTEM StorageEncrypt:
       starting re-encryption for table: sys_email_account,
       column: password
    2016-07-22 10:12:10 (432) main SYSTEM SEVERE ***
       ERROR *** StorageEncrypter: Failed to decrypt
       string starting with: {ht:2+Nv3O...
  2. Upon upgrade, when the Password2 business rule is disabled, it still makes the business rule read-only.

Issue 1

  1. Create a short password2 column.
  2. Upgrade the instance.

    Note the short password2 column still exists.

Issue 2

  1. Set the password2 business rule to active = false.
  2. Upgrade the instance.

    Note the business rule is in a state where active=false and has read-only protection policy.

Policy and Compliance

PRB679205

GRC: Audit Management 'Update All' in the test template does not apply changes to the test plans as expected After creating a Test template in a Policy statement, if a user makes some changes, they need to save the record first in order to click Update All (this is intermittently reproducible). However, even if the record is saved, those changes are not applied correctly to the test plans.
  1. Install Policy & Compliance and Audit Management.
  2. Create a Policy Statement that contains controls.
  3. Inside the PS, create a Test template > right-click and save.
  4. Make some changes and click Update All.
  5. Go to the test plans.

Notice they are not updated. At times, they are updated in the form but not in the XML.

Project Management

PRB690164

Project Management, Project Portfolio Suite Adding key_milestone column to the planned_task table takes over 2 hours on upgrade of large dataset

Reporting

PRB674589

PDFReportPivot causes high node memory when exporting PDF with many rows (may include columns) High memory is caused by a background thread. PDFReportPivot is stuck in addRows things.
  1. Create a report with the following values:
    • Table: sys_audit
    • Type: Pivot Table
    • Row: Document Key
    • Column: Document Key
    • Aggregation: Count
    • No. groups: Show all
  2. Click Save.

    Note there is no 'Export to PDF'. If the table is large enough, the UI transaction will be canceled. But a record in sys_report table will be generated.

  3. Go to sys_report, select the record you just inserted and click Edit report.

    Then, the 'Export to PDF' choice will show up.

  4. Click Edit report.

OOM will occur. The OOM issue also occurs when scheduling a big pivot table PDF report such as this.

2016-04-26 05:46:39 (047) glide.background.generation.4409af0513871200dc983262f244b0cf
SYSTEM WARNING *** WARNING *** Large Table: Table handling an extremely large result set: 387763
Query that got us here is:
TABLENAME = sys_report_summary_line ENCODED_QUERY = summary=1379a34513871200dc983262f244b03f^ORDERBYsequence
com.glide.db.QueryWarning.warn(QueryWarning.java:42)
com.glide.db.DBQuery.loadResultSet(DBQuery.java:2297)
com.glide.db.DBQuery.executeAndReturnTable(DBQuery.java:237)
com.glide.db.DBAction.executeNormal(DBAction.java:197)
com.glide.db.DBAction.executeAndReturnException(DBAction.java:166)
com.glide.db.RDBMSQueryContext.executeQuery(RDBMSQueryContext.java:46)
com.glide.db.DBQuery.execute(DBQuery.java:1782)
com.glide.db.meta.Table.queryBasic(Table.java:311)
com.glide.db.meta.Table.query(Table.java:189)
com.glide.script.GlideRecordITable.query(GlideRecordITable.java:77)
com.glide.script.GlideRecord.query0(GlideRecord.java:2982)
com.glide.script.GlideRecord.query(GlideRecord.java:2707)
com.glide.ui.chart.dataset.SummaryTableReader.getSummaryLines(SummaryTableReader.java:200)
com.glide.ui.chart.dataset.SummaryTableReader.get(SummaryTableReader.java:26)
com.glide.report.PDFReportPivot.generateHeader(PDFReportPivot.java:58)
com.glide.report.PDFReportPivot.generate(PDFReportPivot.java:33)
com.glide.report.Report.exportPDFReport(Report.java:1101)
com.glide.generators.ReportPDFExporter.generate(ReportPDFExporter.java:23)
com.glide.generators.BackGroundGenerationThread.run(BackGroundGenerationThread.java:67)
Thread dump:
"glide.background.generation.4409af0513871200dc983262f244b0cf" prio=10 tid=0x53370c00 nid=0x22bd0 runnable [0x4f6ad000]
java.lang.Thread.State: RUNNABLE
at com.itextpdf.text.pdf.FontSelector.process(FontSelector.java:103)
at com.glide.generators.PDFFont.process(PDFFont.java:105)
at com.glide.report.PDFReportPivot.addCell(PDFReportPivot.java:144)
at com.glide.report.PDFReportPivot.addMissingData(PDFReportPivot.java:136)
at com.glide.report.PDFReportPivot.addRowValues(PDFReportPivot.java:120)
at com.glide.report.PDFReportPivot.addRows(PDFReportPivot.java:109)
at com.glide.report.PDFReportPivot.generate(PDFReportPivot.java:34)
at com.glide.report.Report.exportPDFReport(Report.java:1101)
at com.glide.generators.ReportPDFExporter.generate(ReportPDFExporter.java:23)
at com.glide.generators.BackGroundGenerationThread.run(BackGroundGenerationThread.java:67)

Service Catalog

PRB668721

KB0597431

Catalog UI policies do not work if write role is applied to variables used in the condition for non-admin users Catalog UI policies do not work if the write role is applied to variables used in the condition for non-admin users. For the variable with 'nobody' write roles on the RITM record, g_form.getValue() returns Choice Text instead of Choice Value. Refer to the listed Known Error KB article for details.

Service Catalog

PRB670586

KB0595994

Service Catalog Plugin The Display/Hide List button disappears on Related Lists in tabbed view when the incident variable editor is present on the incident form After configuring the incident form layout to include the incident variable editor, related lists no longer show the display/hide list button while in tabbed view. The incident variable editor appears to be attaching a style sheet, which causes the issue. Refer to the listed Known Error KB article for details.

Service Catalog

PRB679673

Select Box variable that is filled by a Catalog Client Script will show as empty when accessing it from the RITM form Using a Select Box variable filled by a Catalog Client Script will show as empty when accessing it from the RITM list. The list for the Select Box works as expected when opening the Catalog Item. After it is submitted, the RITM form will incorrectly show this variable as empty. Even though the variable is stored in the sc_item_option_mtom table, the variable is not shown in the form, and the list for the Select Box variable in the RITM form is empty / blank.

In a Helsinki instance:

  1. Navigate to an OOB Catalog Item (e.g. Acrobat).
  2. Create a new variable for it with the following:
    • Type: Select Box
    • Question: Select Box Variable
    • Name: select_box_variable
  3. Save.
  4. Create a new Catalog Client Script as follows to fill the new variable with all users from a department (e.g. Development).
    • Name: Fill new variable list
    • Type: onLoad
    • Applies to: A Catalog Item
    • Script:
      function onLoad() {
      var filter = '221f3db5c6112284009f4becd3039cc9';
      var gr = new GlideRecord('sys_user');
      gr.addQuery('department', filter);
      gr.query();
      while (gr.next()) {
      g_form.addOption('select_box_variable', gr.user_name, gr.user_name);
      }
      g_form.removeOption('select_box_variable', '');
      }
  5. Save.
  6. Try the Acrobat Catalog Item.

    Notice the new select box is filled up with the users from the Catalog Client Script.

  7. Submit the item and access the RITM opened for it.

Expected behavior: We should be able to see the user assigned to this variable / RITM. You can confirm that the variable is filled in the sc_item_option_mtom table.

Actual behavior: The select box variable shows up as empty and blank.

Service Catalog

PRB690516

Changes in behavior regarding UI policies and controlling visibility of Containers and Variables, Variable-sets within a Container When there is one UI policy that is meant to "hide" a container with its variables, and there is a second UI policy where if it sees the value of a certain variable within the container, it will show a different variable in that container. It breaks by showing the container and some of the variables inside, even though it is supposed to be hidden. This issue occurs after upgrading from Geneva or Helsinki instances to Helsinki Patch 1.

Service Mapping

PRB697017

Error in the log "(73)AbstractDiscoveryResults - Could not find host for ci id: e460f5a2db68220081aa742eaf96197d: no thrown error" As a result of this error, Service Mapping is not calculating network paths from included CIs such as Tomcat WAR, Websphere EAR, etc.

Service Portal

PRB674495

Exporting the list of open issues includes fields not in the view Exporting a list to Excel or PDF might include a different set of columns from that seen in the list.
  1. Go to the Service Portal page ?id=list&t=incident&view=ess.
  2. Click the hamburger icon > select Export as Excel.
  3. Download and open the Excel file.
The columns in the spreadsheet should be the same as those in the list, but the View is not getting passed correctly.

Service Portal

PRB677431

Service Portal Designer Keyboard shortcuts do not work on Service Portal designer
  1. Open the Service Portal Configuration > Designer.
  2. Open a page (e.g. /index).
  3. Click the properties of a widget instance (e.g. the How can we help you search bar).
  4. Change the title and try to save by using the keyboard shortcut (CTRL or CMD + S).

Note that a browser 'save' dialog appears. The keyboard shortcuts seem to work in the widget editor.

Service Portal

PRB677937

Service Portal - glyphicon field type generates JS error on change in form Users see the following JS error: "Cannot read property '$element' of undefined". This error comes from tooltip.js.
  1. In the normal UI, open the sp_instance form.
  2. Change glyph field.

Note the JS error "Cannot read property '$element' of undefined".

Service Portal

PRB681328

Uploaded background image does not save when creating a new Service Portal carousel slide and only saves if slide is already created The carousel widget in Service Portal allows you to show multiple slides that rotate on a timed interval basis. When creating a new slide for a carousel, you are given the ability to upload a background image for the slide at the same time. If you upload this image at the same time, after the record has saved and the page reloads, the image for the record is not set. If you upload the image again now that the record has saved, the image uploads and applies to the carousel slide successfully.

In a Helsinki instance with the 'Service Portal for Enterprise Service Management' plugin activated:

  1. Log into the instance as a user with elevated privileges.
  2. Navigate to the /sp URL on the instance.
  3. Click Order Something.
  4. Hold down the CTRL key, and click on the carousel in the top section of the page.
  5. In the menu that appears, click Instance Options > Carousel Slides > New.
  6. Set the Name field to PRB681328.
  7. Click Upload an image and choose any image you have on your computer. Wait for the image to upload and display on the page next to the 'Background' text.
  8. Click Save.
  9. Repeat steps 7 and 8.

Expected behavior: The image saves successfully after step 8 and thus step 9 is not necessary.

Actual behavior: The image doesn't save successfully after step 8, and so you need to reupload the image and save the record again.

Service Portal

PRB681368

Service Portal branding editor, page editor and widget editor do not work in Oracle instances If a user's instance is in Oracle, Service Portal widgets with server script, template, CSS, and client scripts that has more than 4,000 characters are are trimmed out. This prevents widget editing and Service Portal configuration from working properly.
  1. Provision an Oracle instance in Helsinki.
  2. Activate the 'Service Portal for Enterprise Service Management' plugin.
  3. Go to sp_widget and check widgets with names 'form' and 'Portal config'.

Note the template, client script and/or server script is cut off after 4,000 characters.

Service Portal

PRB681375

Relative dates on the Service Portal are hardcoded and do not look at the system date/time format

In a Helsinki instance:

  1. Navigate to System Properties > Basic configuration.
  2. Check the system date, and define it as dd/MM/yyyy.
  3. Open any knowledge article (e.g. KB0000007: What is a cookie?) and change the published date of the article to 01/06/2016 (1st June 2016).
  4. Navigate to Service Portal > Knowledge Base > IT.

    Notice that KB0000007 shows the published date as 7d ago, which is correct.

  5. Click the article.

It shows the wrong published time for the same article.

Service Portal

PRB682155

Service Catalog does not nest categories, and page takes long time to show when there are a lot of categories In Service Portal, the Service Catalog page takes a long time to show when there are over 4,000 service records.

In a Helsinki instance:

  1. Navigate to System Definition > Scripts - Background.
  2. Create multiple 'sc_category' records by duplicating one of them many times.
  3. Now enter the URL for the Service Portal (https://<instance_name>.service-now.com/sp).
  4. Click the Service Catalog.

Note the page does not load, and it takes nearly 15-20 minutes to load.

Service Portal

PRB683962

Service Portal for Enterprise Service Management Service Portal needs an alternative to Formatters for Variable Editor, Activity Formatter, Approval Summarizer, etc. Variables on Requested Item/Catalog Task record are missing when viewed from Service Portal.

In an instance with the Service Portal plugin active:

  1. Create a Request and add the Variable Editor to the form for this record.

    Notice that the Variable Editor section is available on the form.

  2. View this record from the 'Form Widget' on Service Portal.

    Note all the fields on the form are visible except the Variables section.

Expected behavior: The variables section should be present.

Actual behavior: The variables section is missing.

Service Portal

PRB684486

The action buttons on the approval widget are not rendering properly

Service Portal

PRB684546

KB0597294

Service Portal OOB widgets are not all using ${} for the texts, which then cannot be translated For example, in the User Profile widget's Body HTML template, the following text is not translated:
  • Line 24: at
  • Line 25: Works at
  • Line 63: User not found
  • Line 65: This user does not exist
  • Line 66: Suggestions:
  • Line 68: Contact your portal administrator.

See PRB704707.

Refer to the listed Known Error KB article for details.

Service Portal

PRB686132

Reference icon on Service Portal is displayed regardless of the readOnly status of the reference field The expected behavior of the UI is when a reference field is populated and configured to be readOnly, it should be hidden.
  1. Navigate to the [incident] table.
  2. Open any record.
  3. Right-click and configure dictionary on the following fields: caller_id, assignment_group, assigned_to.
  4. Navigate to the Service Portal configuration page.
  5. Open the Designer module.
  6. Configure a page to use the 'simple list' widget. Use the [incident] table in the configuration.
  7. Preview the new page, and open an incident record where the caller_id, assignment_group, or assigned_to fields are populated.

Exepected behavior: The form should display the reference field content with no reference icon display beside it

Actual behavior: The form displays the reference field with no content. A reference icon is displayed that navigates to the referenced record.

Service Portal

PRB686410

Catalog Items of class 'Content Item' are not showing up in the new Service Portal but work as expected in the CMS portal

In a Helsinki instance:

  1. Activate the Service Portal plugin.
  2. Navigate to Service Catalog > Catalog Definitions > Maintain Items.
  3. Consider a Catalog Item Cisco Jabber 10.5 of class type Catalog Item in category 'Software'.

    Notice that the Catalog Item is visible in the new Service Portal under Software Category.

  4. Now modify the class of the item to Content Item.

Notice that 'Cisco Jabber 10.5' is no longer visible in the new Service Portal under Software Category.

Expected behavior: 'Cisco Jabber 10.5' is visible in the Service Portal.

Actual behavior: The Catalog Item 'Cisco Jabber 10.5' is not visible.

Service Portal

PRB689764

Service Portal Designer Service Portal Designer is not rendering page-specific CSS When page-specific CSS (under Edit Page Properties) exists, CSS rules are not parsed and do not render in preview.

In a Helsinki instance:

  1. Open the Service Portal Designer.
  2. Select a page.
  3. Click Edit Page Properties.
  4. Add CSS under the Page Specific CSS field.
  5. Save.

Expected behavior: CSS rules should be evaluated and rendered in the preview.

Actual behavior: CSS rules are not parsed or rendered.

Service Portal

PRB690181

Connect Support and Service Portal Integration While adding Connect Support widget to Service Portal page, the widget gets added but is not visible If you click the area where you added the widget, the Connect Support app opens up.

In a Helsinki instance:

  1. Activate the Service Portal for Enterprise Service Management plugin.
  2. Activate the Connect Support and Service Portal Integration plugin. (This plugin requires Connect Support plugin as well.)
  3. Navigate to Service Portal Configuration > Designer.
  4. Navigate to the Service Portal (index) page.
  5. Drag and drop the Connect Support widget beneath any of the widgets.
  6. Navigate to 'Service Portal Home'.

Note the widget was not added. However, if you click on the place where you added it, a Connect Support window opens. This does not occur for other widgets.

Service Portal

PRB690239

Human Resources Application: Service Portal Organization Chart widget in Service Portal Designer does not display as expected and cannot be edited The Organization Chart widget appears to be broken. When added to a portal page in the Service Portal Designer, users cannot see it, nor can they move or configure it. It appears to display properly in the portal.
  1. Navigate to Service Portal > Service Portal Configuration > Designer > User Profile (hrsp_user_profile).
  2. Search for the Organization Chart widget and drag it onto the page.

Expected behavior: The widget is displayed, can be moved around, etc.

Actual behavior: The widget is not displayed.

Note: The widget is there - if you view the 'my profile' page in the HR portal as an admin or lower user, the organization chart will populate. If you add another instance of the widget to the page, both will show up. If you remove one of them, neither will show even though one is still there.

Service Portal

PRB690497

SPForm checks for policy on HR widgets and the value is empty The Java class SPForm.java checks for the Policy on the form and also for forms that have empty values. There are three SP script includes that are unavailable for scoped apps, which is causing this issue:
  • MobilePolicyBuilder
  • SysForm
  • SysSection

Service Portal

PRB690563

Widget instance title, color, max_number cannot easily be configured for the 'My Requests' widget
  1. Navigate to /sp?id=requests.
  2. CTRL+right-click the My Requests widget.

Note that you cannot set the title, color, or max records.

Service Portal

PRB691208

Using g_form.setValue inside of a g_modal confirm callback throws a $digest already in progress error In Service Portal, users can use setValue() inside a reference field's onChange client script. This might be used if you require a user to confirm their selection. However, users will get an error in the browser console.
  1. Create a sample catalog item with a single reference field variable.
  2. Create an onChange client script for the reference field.
  3. Use the following script:
    g_modal.confirm("Are you sure?", "Do you want to change the value to: " + newValue + "?", function(result) {
    if (!result)
    g_form.setValue("reference_field_variable_name_here", oldValue);
    });
  4. Use the catalog item in the catalog view in Service Portal.
Note the following error in the browser console:
Uncaught Error: [$rootScope:inprog] $digest already in progress

Service Portal

PRB691356

Select boxes with different fields and displaying choices based on one value using a catalog client policy work in the Catalog and not Service Portal The issue is present in select box functionality in Service Portal pages. However, the same select box works as expected when tried from the normal Service Catalog.

Service Portal

PRB691606

Widget field on Variable form should only show for UI macro variable type The Widget field on the Variable form should only show for UI macro variable type. It needs a UI policy.

Go to the Variable (item_option_new) form in the normal UI.

The Widget field should be hidden when the variable type is anything other than Macro.

Service Portal

PRB691650

Human Resources Application: Service Portal Duplicate pages in HR plugin result in double breadcrumbs The HR plugin contains a duplicate page ID, 'sc_category', which causes the page to have double breadcrumbs. The page needs to be removed from the HR plugin.
  1. Install the Service Portal Plugin and HR plugin at the same time.
  2. Go to UI16.

The page 'sc_category' should not have any containers that belong to the HR plugin. The page should only have two containers.

Service Portal

PRB691661

Related list links from Form widget do not inherit view from the form This is inconsistent with the normal UI, where view is inherited.
  1. Open an existing Problem record in the id=form page. Make sure the Problem has related Incidents.
  2. Append &view=itil to the URL.
  3. Click the link for the Incidents related list to view the list of related Incidents.
The URL should also have &view=itil in the URL, but it does not.

Service Portal

PRB691963

lookup_label is not used for variable types 'Lookup Select Box' and 'Lookup Multiple Choice' On the Service Portal catalog item page, a variable type of lookup select box is using the mobile view to determine the display label, not the lookup_label specified on the variable.

Service Portal

PRB692379

Variable labels are not translated in the "Options" section of ticket fields widget See PRB704707.

Using Service Portal in a language other than English:

  1. Use the Create new Incident record producer.

    Note that variable labels are translated.

  2. Submit.
  3. View the resulting Incident in the id=ticket page.

Note that the variable labels in the Options section of the ticket fields widget are in English, not your current language.

Service Portal

PRB692439

In the widget editor, if you open a widget that has dependencies, a JavaScript error might appear in the console If you open the form widget you will see the following error in your browser's JavaScript console:
Uncaught SyntaxError: Unexpected token o in JSON at position 1
  1. Open /sp_config?id=widget_editor&sys_id=fd1f4ec347730200ba13a5554ee490c0.
  2. Look at your browser console.

Service Portal

PRB692454

Service Portal Social QA In Subscribed Questions, header color cannot be set from instance options When using the designer, a user cannot change the panel header color of the 'My Subscribed Questions' widget. Clicking the edit icon will result in an empty module.
  1. Make sure you have the plugin 'com.glide.service-portal.sqanda' installed.
  2. Go to /sp?id=sqanda_new_question and ask a new question.
  3. Go to /sp and make sure your question shows up on the homepage in a panel titled 'My Subscribed Questions'.
  4. Hold control + right-click on that panel and select Page in Designer.
  5. In the designer, click the edit arrow on the 'My Subscribed Questions' panel.

Observe there is no field to edit the Bootstrap color.

Service Portal

PRB692894

Variable attributes to show additional columns do not work if the column is not on the list (ref_auto_completer=AJAXTableCompleter, ref_ac_columns=street, ref_ac_columns_search=true, ref_ac_display_value=false) In the Service Portal, when using the following Variable attributes of a variable to show additional columns from the cmn_location table in a form field (see below), users are not able to get the street or some other columns to show in the portal as they do in the fulfiller interface. They only show in the portal after they are added to the Default List Layout of the cmn_location table.

ref_auto_completer=AJAXTableCompleter, ref_ac_columns=street, ref_ac_columns_search=true, ref_ac_display_value=false

Additionally, the ref_ac_display_value=false has no effect on removing the display field in either the fulfiller interface or the portal page.

In a Helsinki instance:

  1. Activate this record OOB producer "Ask a Question": /sc_cat_item_producer.do?sys_id=66c313e7c0a8016b008ebe1a8e3d97f5.
  2. Add a variable:
    • Type: Reference
    • Question: Location
    • Reference: Location(CMN_location)
    • Use reference qualifier: Simple
    • Attributes: ref_auto_completer=AJAXTableCompleter,ref_ac_columns=street,ref_ac_columns_search=true
  3. Make sure that Street is not in the List View (list layout): /cmn_location_list.do.
  4. Go to the catalog item, type 1, and you will see the address twice (name and street) as expected.
  5. Go to the same catalog item in the Service Portal, type 1, and you will see the address ONCE (name) so the Street is not showing.
    • If the street column is on the list (/cmn_location_list.do) in the Service Portal variable, you will see the value.
  6. Make the Street visible on the List View (list layout): /cmn_location_list.do.
  7. Go to the same catalog item in the Service Portal, type 1, and you will see the address ONCE (name) and Street is showing.

Service Portal

PRB694504

Attribute HTML needs to follow the Web Content Accessibility Guidelines The attribute HTML requires the inclusion of the lang attribute with the current language to follow the Web Content Accessibility Guidelines.

Service Portal

PRB694964

Service Portal Social QA After activating 'Service Portal Social QA' plugin, users are able to create scoped applications
  1. Log in as admin.
  2. Impersonate abel.tuter.
  3. Go to /nav_to.do?uri=/$sn_appcreator.do.

    Note the following message is displayed: "Insufficient privileges to create custom applications." The Create button is also disabled.

  4. Activate the 'Service Portal Social QA' plugin.
  5. Log in as admin.
  6. Impersonate abel.tuter.
  7. Go to /nav_to.do?uri=/$sn_appcreator.do.

The Create button is enabled, and the user can create a scoped application.

Service Portal

PRB696048

If you select include 'on page load', the module is listed in all portals If you select include 'on page load', it should display a list of portals to select the portal in which you would like to load the module.

Service Portal

PRB696436

Mobile UI Catalog UI policies to set field read-only are getting applied on fields in Order Guides in Service Portal, even though 'Applies on a Catalog Item view' is not checked Catalog UI policies are not working as expected on Service Portal order guides.

Service Portal

PRB696912

NG shared components Inconsistency on placeholder 'required' On catalog items, when creating a UI policy to set a field as mandatory, the placeholder 'required' is added. However, the placeholder style are inconsistent. It is only displayed when a user creates a variable of type 'date/time'. If it is a single-line text variable, the placeholder will not be displayed up, even if the field is set to mandatory by creating a UI policy. When the a field is set to mandatory based on a UI policy condition, the placeholder will not be displayed at all, but the field will be mandatory.
  1. Go to the Repair Office Equipment catalog item.
  2. Add Variable 1:
    • Type: Date
    • Question: Start Date
    • Name: start_date
    • Save.
  3. Add Variable 2:
    1. Type: Single line text
    2. Question: Uno
    3. Name: Uno
    4. Save.
  4. Set these two fields to Mandatory by creating a UI policy:
    • On the same catalog item (Repair Office Equipment), go to Catalog UI policies > New.
    • Short description: mandatory
    • Save.
  5. Add a new Catalog UI policy action:
    • Variable name: Start Date
    • Mandatory: True
  6. Add another UI policy action:
    • Variable name: Uno
    • Mandatory: True
  7. Now go to the Service Portal: /sp?id=sc_cat_item&sys_id=d4254493c611227a0135f7f3b66f4bf5.

    Notice the placeholder 'required' is displayed only on the date/time field. Both are mandatory fields, but it is only displayed on one of them.

  8. Set a condition to trigger the UI policy
    • Go to the policy Mandatory
    • On 'Catalog Conditions'
    • Select: Uno is not empty
  9. On the 'Catalog UI Policy Actions' section:
    1. Click start_date.
    2. On the Mandatory field, select false.
    3. Save.
  10. Go to the Service Portal: /sp?id=sc_cat_item&sys_id=d4254493c611227a0135f7f3b66f4bf5.
  11. Type anything on the field Uno so that the field 'Start Date' will not be mandatory anymore, since we triggered the condition.

Notice the the field's start date is no longer mandatory, but the placeholder 'required' is still visible.

Service Portal

PRB697053

ref_ac_columns does not work for reference fields in Form widget
  1. In the Service Portal, go to page ?id=form&table=sc_cat_item&sys_id=-1
  2. Populate the catalog.
  3. Click to show dropdown options for the Category field.
Each category in the dropdown should also show the Catalog it belongs to, as this is defined as an additional field in the ref_ac_columns Dictionary attribute.

Service Portal

PRB698278

Service Catalog Plugin SP catalog client scripts should include translated messages Using getMessage(KEY) in a catalog client script only works if the key is already loaded or if providing a callback. The catalog client scripts should load the list of translated messages.

See PRB704707.

  1. Open any catalog item that can be viewed from Service Portal.
  2. In the catalog item:
    • Add an onload client script with the following code: alert(getMessage("my key")).
    • Add the messages field to the client script form, and add this text on its own line: my key
  3. In a new tab, go to: /system_properties_ui.do?sysparm_category=i18n&sysparm_title=System%20Localization.
  4. Check the box for Displays translation prefix on translatable strings.
  5. Using Service Portal, open the catalog item from step 1.

The alert should say: "MSG: my key". This indicates that the key is loading a translated message.

Service Portal

PRB698680

Record Producers are not mapping variables to fields unless "Map to field" is selected Variables whose names match target record field names should automatically map, as in the normal Catalog.
  1. Go to the Create a New Incident record producer in Service Portal.
  2. Provide a user and short description.
  3. Click Submit.

The resultant Incident will not have a short description or caller values. Following the same steps through the normal catalog work as expected.

Service Portal

PRB698771

In Firefox, upon creating a new widget, the user is not redirected to the widget edit panel
  1. In Firefox, navigate to /sp_config?id=widget_editor.
  2. Click Create a New Widget.
  3. Fill out the required fields.
  4. Click Submit Query.

    That text should also be updated.

Expected behavior: Upon creating the widget, the user should be redirected to /sp_config?id=widget_editor&sys_id=<widget_sys_id here>.

Actual behavior: The sys_id appears to be appended to the URL for a split second, but the user is brought back to /sp_config?id=widget_editor.

Service Portal

PRB699735

In the Widget Editor, schema options added to a widget do not appear after saving and clicking 'Edit options schema' again

In a Helsinki instance with Service Portal activated:

  1. In the widget editor, add schema options to a widget.
  2. Save.
  3. Click Edit options schema.

Note the schema options do not appear in the widget.

Service Portal

PRB700124

Service Portal lists do not support dot-walked columns When viewing lists in Service Portal with dotwalked columns, the dot-walked columns are left off. This occurs when viewing a list view configured in regular client and then viewed in Service Portal.
  1. Create a new list view using sc_req_item containing number, cat_item, and cat_item.category.

    Note that the view has three columns in the navigator interface.

  2. Go to the Service Portal Designer and select SP portal.
  3. Create a new page and add a Data Table from URL definition to it, submit, and then navigate to the page.
  4. On the page created in step 3, add &table=sc_req_list&view=test_view.

Note that the list only shows two columns.

Service Portal

PRB700341

sp_editable_field does not contain I18N translations for "Empty"
  1. Go to a user profile.
  2. Note that "Empty" is not translated for fields with no value.

Service Portal

PRB700358

Text in 404 page of HTML widget is not translated See PRB704707.
  1. Go to 404 page.
  2. Note that the text at top of the page is not translated.

Service Portal

PRB701328

Service Portal not displaying -- NONE -- in dependent choice list field The --None-- option is missing on choice fields which should start with --None--.
  1. Navigate to an incident form in Service Portal and view, for example, the subcategory field.
  2. Note that is empty (not showing --None--), and the first 'option' is empty.

This should be --None-- to mimic the behavior of ServiceNow forms.

Service Portal

PRB701759

SCSS Bootstrap Theme There is no 'None' Glyph to remove a glyph once added to Service Portal Users can add a Glyph to the Service Portal page, but they cannot remove it.

In a Helsinki instance with the Service Portal plugins activated:

  1. Navigate to the Service Portal.
  2. Click Page Editor.
  3. Add a Glyph to the page.

Once you add a glyph, you can change the glyph, but you cannot remove it from the UI. There should be an option so that users can choose a blank icon to denote a 'null' glyph.

Service Portal

PRB702356

Record producer saves false checkbox variables as null instead of 'false' This is inconsistent with the platform UI.
  1. Create a record producer with a checkbox variable.
  2. Order it in Service Portal, leaving the checkbox unchecked.
  3. Look at the entry in the question_answer table.

    The value will be empty.

  4. Navigate to the same record producer you created in step 1.
  5. Order it in the normal catalog UI.

The value will be the String 'false'. Service Portal should be consistent with the platform UI.

Service Portal

PRB702361

Column sp_rectangle_menu_item of table sp_rectangle_menu_item has a reference to a table that does not exist sp_reclassify_rectangle_to_instance.js fix job incorrectly changes the reference value of sp_rectangle_menu_item.sp_rectangle_menu_item field. The reference value should be sp_rectangle_menu_item instead of sp_instance_menu_item.
  1. Look at a Dictionary entry for the sp_rectangle_menu_item.sp_rectangle_menu_item field.
  2. The reference value should be sp_rectangle_menu_item, but it is sp_instance_menu_item.

Service Portal

PRB703062

sc_cat_item should trust and fully render the Catalog Item description Due to sc_cat_item, catalog Item descriptions are not rendering properly.

Service Portal

PRB707330

Customer Service Portal The CS portal login page (using SP login widget) redirects to "/navpage.do" instead of "/csm" after login

In a Helsinki instance:

  1. Install the Customer Service Portal (com.glide.service-portal.customer-portal).
  2. Log out.
  3. Open the /csm portal page.
  4. Log in as admin/admin.

Expected result: After login, the page should redirect to "service-now/csm".

Actual result: After login, the page redirects to "service-now/navpage.do".

Surveys

PRB675318

NG shared components Image scale choice selection popup - clicking 'upload an image' does not bring up the photo upload window This issue occurs intermittently.
  1. Log in to an instance as a Survey admin or System admin.
  2. Create a survey.
  3. Navigate to the Survey Designer section of the survey.
  4. Add an Image scale question to the survey.
  5. Click the gear icon of the Image Scale question, select any choice, and click Upload an image to upload an image to the choice.

Note that nothing happens.

Usage Analytics

PRB690027

Issue with usage tracking for Customer Service Management in the Unrestricted user model Users can purchase CSM licenses in the Unrestricted user model, where the total number of users in the system are counted for compliance purposes. Customer Service is used to support end customers, and the employees of the customers are stored in the system as Contacts. Contact is created as an extension of the user table, so every contact gets stored in the user table.

Since all entries in the user table are counted for license compliance, the contacts will also be counted. However, the CSM license considers all customer contacts as requesters, and they are excluded from the user count in the Unrestricted user model. Contacts should also be excluded from the user count for license audit and compliance purposes.

User Interface (UI)

PRB698769

Change form wrongly shows State choices from extension tables Specialized changes have different states than standard changes. The standard change states are: open, pending, work in progress, closed complete, closed incomplete, and duplicate. If you open a request for a different type of change that has different states, the list displays all states instead of the ones specific to that change type.
  1. Extend change_request with a new table.
  2. Go to the form of that new table and configure the choices for the State field (i.e. add a new one, remove a couple existing ones).
  3. Go to the change_request form and look at the State choices.

The new choice from the extension table is shown, but it should not show up for a Change Request. This does not occur in the normal UI.

Web Services

PRB671549

Extra call to getUser in HttpAuthProcessor may not be needed and is generating 4 extra SQL calls on each inbound request Authenticating Web Service requests with user session/cookie information results in redundant SQL calls. In a very high volume use case such as Presence, this will negatively impact the performance of the request and the database.
  1. Log into a ServiceNow instance to create a user session.
  2. Turn on Debug SQL.
  3. Try to make a Web Service call, or wait for a Presence API request.

Note that 4 additional calls are repeatedly made to get user roles, licenses, and preference data on each request.

Other Helsinki Patch 4 information

Discovery

Fixes included with Helsinki Patch 4

* Unless any exceptions are noted, you can safely upgrade to this release version from any of the versions listed below. These prior versions contain PRB fixes that are also included with this release. Be sure to upgrade to the latest listed patch that includes all of the PRB fixes you are interested in.