Helsinki Patch 1

The Helsinki Patch 1 release contains fixes to these problems.

For the Helsinki Patch 1 release:
Build date: 06-05-2016_1542
Build tag: glide-helsinki-03-16-2016__patch1-05-18-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 1 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 1, refer to KB0594814.

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

Transaction and Session Management

PRB646966

KB0594709

MID Server stops communicating to the instance and continuously produces the socket timeout error: Accepted with code: 202

Recycled requests cause session leak issues. This results in either of these behaviors:

  • MID Server stops communicating with the instance and continuously produces the socket timeout error: Accepted with code: 202, until the user upgrades to a fixed version.
  • Stuck sessions in the transaction queue. In this case, users receive 429 "Rejecting request" errors due to the session leaks.

This is caused by the platform holding a session sync on a transaction that has been cancelled.

Refer to the listed Known Error KB article for details.

Platform Performance

PRB670075

KB0594813

ServletTransaction does not account for recycled requests and leaves sessions in session sync The RESTAPIProcessor throws an exception that causes the transaction to be cancelled, but not release the session sync on the session. This results in sessions "leaking" in the queue and can eventually, in a worst case scenario, consume the whole transaction queue. The affected end user(s) experiences HTTP 429 "Rejecting request" errors. Refer to the listed Known Error KB article for details.
Chat

PRB663533

KB0584123

Angular AMB Services, NG shared components User presence causes performance degradation when Connect, UI16, Mobile Support, or VTB is installed due to transactions related to the Presence feature ServiceNow has found an issue impacting instances configured with the Geneva release family and with the Presence feature enabled. Please note that this feature is enabled by default with UI16 in Geneva.

Presence generates a high volume of requests per user. The individual presence requests are generally fast, but they are susceptible to slowness when an instance is under heavy load. A high volume of slow Presence requests will clog the default semaphore queue. In the UI, this will manifest itself as missing components (for example, the navigator does not load, or a blank page is shown).

On the stats page, this will manifest itself as a default semaphore pool with a queue depth at or near 150. A large percentage of the active requests will probably be Presence transactions. Requests will return 429 errors (Too Many Requests) if they encounter a filled semaphore queue. This can lead to delays and significant performance issues for users on the instance.

Refer to the listed Known Error KB article for details.
Persistence

PRB674257

KB0594678

Changes on Dictionary Field Type of glommed field on one of the extending tables is changing the database field type instead of changing the sys_storage_alias If the user alters an existing column by changing the field type or the field length, data loss can occur if the field has duplicate storage aliases. On an affected version, the logic that safeguards against data loss fails to account for data in fields that are aliases of the field being modified. The following workflow illustrates the issue:
  1. The user accesses a field on a table that is configured as an extension of another table (Table per Hierarchy).
  2. The user then alters the field by changing either its Type or its Length.
  3. The execution logic tests for data loss in that table only (not the entire hierarchy for the field).
Because the test does not detect any data in other tables that are also extensions of that same base table, the workflow continues to execute, causing data loss for that field in the other tables.
Refer to the listed Known Error KB article for details.
Platform Performance

PRB677407

Mean semaphore exhausted on HI A script error is being generated, which may be a cause for the semaphore to exhaust. As a customer_admin, try to change the Primary/Secondary Technical/Support contacts in the core_company table.
org.mozilla.javascript.JavaScriptException: The war version is not a string.
                  (sys_script_include.976754ec7bac45001fe25a4d784d4d99; line 146)
Authentication

PRB680620

After upgrading to Helsinki, POP/LDAP fail with a keystore exception, and users are unable to log in Unable to load certificate.
SAML 2.0 SP Keystore - b88267271b012000f1129141be071393:
  java.io.IOException: Keystore was tampered with, or password was incorrect:
  sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:780) 
  sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:56) 
  sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:21
Service Portal

PRB676627

Copy Page UI action does not work and should be removed On the sp_page table, there is a UI action called 'Copy Page' that is supposed to copy a page record and all of its container, row, column, and instance records that are associated with it to create an exact clone of a page. However, the action fails to copy instances over, which negates the usefulness of this action. This action will be removed in Helsinki Patch 1 to prevent confusion for users.
  1. Go to a form for any sp_page record.
  2. Click the Copy Page UI action.
Expected behavior: A new page record should be generated that is identical to the previous page, and new containers, rows, columns, and instances should also be created that mimic those on the original record.

Actual behavior: The action partially works, but widget instances are not copied over.

Service Catalog

PRB664557

KB0594575

Catalog UI policies not applying to variables in a RITM / Catalog Task variable editor when read-only Catalog UI policies and catalog client scripts set to 'Applies on Requested Items' or 'Applies on Catalog Tasks' can fail when a write-role has been specified on the variable and a user views the record while logged in as (impersonating) a user that fails the role check.
  1. Navigate to one of the following:
    • Self-Service > Service Catalog
    • Service Catalog > Catalog > Hardware > Sales Laptop
  2. Personalize the Additional software requirements variable and give it a name (for example, software_requirements).
  3. Update the Write roles field and add admin.
  4. Create a Catalog UI policy.
  5. Go back to the item.
  6. Right-click the header and select Personalize UI Policies.
  7. Create a policy with the following values:
    • Short Description: hide software requirements
    • On load: true
    • Active: true
    • Applies on a Catalog Item view: true
    • Applies on Requested Items: true
    • Applies on Catalog Tasks: true
    • Actions:
      • Name: software requirements
      • Read only: Leave alone
      • Mandatory: Leave alone
      • Visible: False
  8. Create a request for a Sales Laptop.
  9. Impersonate a non-admin user, such as ITIL User.
  10. Go back to the item and make the request.
  11. View the request. If you are already impersonating the ITIL user, navigate to Service Catalog > Items.
  12. Open the item for the request.
Note that the Additional software requirements variable is visible and the JavaScript console shows this error:
js_includes_catalog.jsx:132
Uncaught TypeError: container.getAttribute is not a function
Knowledge Management

PRB668261

KB0565446

Knowledge Management V3 Creating a new knowledge base article from the Application Navigator leads to a read-only page In an instance upgraded from Knowledge v2 to Knowledge v3, navigating to Knowledge > Create New in the Application Navigator opens a read-only page. Also, the instance does not have any V3 Knowledge Bases. Refer to the listed Known Error KB article for details.
UI Policy/Client Script

PRB653683

Geneva: onChange client script running on submit of form when no data has changed An onChange client script is running on submit when the data has not changed since the last time it ran.
Project Management

PRB635702

KB0551944

Project Management Project lag time is inaccurate if a project with tasks and relations is imported from Microsoft Project 2013 If a project created in Microsoft Project 2013 with multiple tasks and relationships is imported into the Project Management application, an incorrect lag value may be inserted.
  1. Activate Project Management v3.
  2. Import a project with relationships created in Microsoft Project 2013 format.
Note that a lag of 95+ days is added to the relationships. This added lag extends the start dates of the tasks.
Service Catalog

PRB665752

Geneva upgrade - Catalogs have extra space between variables (variables within container are hidden by UI policy) In the Service Catalog, if there is a variable set that has 'Visible' set to 'false', the UI policy does not hide the element and it displays as an empty space between the fields. In a Geneva Patch 4 instance:
  1. Create a variable set with 2 single line variables.
  2. Set Order to Variables with two consecutive numbers.
  3. Create a Catalog UI policy that Applies to Variable Set.
  4. Within the Catalog UI policy actions, add the 2 variables and set Visible to false.
  5. Add the variable set to a Catalog Item.
  6. Set the Order number to place the variable set between the two existing fields.
  7. Click Try it.
Notice that there will be an extra space between the fields. If you "inspect the element" in that area, you will notice that the element is technically still there even though Visible is set to False in the UI policy.
User Interface (UI)

PRB667491

NG shared components CC: field does not show up on activity formatter when using UI16, but it shows when using UI11 in the same instance After configuring email on an instance with UI16, if you send an email from an incident, the emails will not show the CC field when displayed in the activity formatter on the incident.
Persistence

PRB668394

fix_short_field_name_types and fix_short_table_name_types sometimes take a long time to run Several users have experienced long upgrades. This is due to the following fix scripts, which can take a considerable amount of time to run:
  • fix_short_table_name_types.xml
  • fix_short_field_name_types.xml
User Interface (UI)

PRB618792

Personalize > Configure list layout is broken on IE11 - slush buckets go blank / empty On IE11, if you try to change the list layout (either through the Configure or Personalize options), it results in the slush buckets displaying as empty / blank.
User Interface (UI)

PRB666912

Lists v2 Selecting multiple records on a list view updates unselected rows as well (List v2 only) When multiple records are selected from the same column on a list view, not all selected records are updated, and other random records are updated. For example, selecting 4 records via the 'Category' field on the task table and then editing via list view also updates other records that were not selected to begin with. This only seems to occur when the system property 'glide.ui.list.detail_row' is set to true, and when you are editing a table (via list view) that is unaffected by that property. This seems to be somewhat related to previously fixed PRB634893 and PRB647724, but the opposite in that the tables affected here are the ones which are not influenced by this property.
  1. Navigate to sys_properties.list.
  2. Create the property glide.ui.list.detail_row and set it to true. By default, it applies the detail_row to short_description on the task table and related tables.
  3. Choose a different table that is not affected. (NOTE: Make sure this is NOT configured as a Detail Row. This issue as reported only happens if Detail Rows are not configured on the table you are editing.)
  4. Select multiple records from the list column (the list column must be editable).
Notice that not all records selected are changed, and for every one that did not update, another unselected record seems to update instead.
Note: There is also another related issue here where selecting an EVEN amount of records shows that an ODD number of records (usually X+1) will be updated. For example, selecting 4 records prompts the user that '5 rows will be updated.' However, selecting 5 records prompts correctly for '5 rows will be updated.' This also only occurs on tables unaffected by glide.ui.list.detail_row being set to true.
Foundation

PRB668046

The upgrade from Fuji to Geneva Patch 4 does not create the group type 'itil' The group type (1cb8ab9bff500200158bffffffffff62) is sys_user_group_type.name = "itil". This group type is new to Geneva. Geneva version has this group type and a script to update all the null group types with itil. The upgrade missed the itil group type record but ran the script to update the null values. During the Geneva upgrade, the fix script ran and updated the sys_user_group records where type = null with itil type sys_id. The itil type record was not loaded into the instance. Due to this, the sys_user_group is showing the sys_id value instead of "itil".

All Other Fixes

Problem category Affected Plugins Short description Description Steps to reproduce
Change Management

PRB668065

KB0584475

Change Management - Standard Change Catalog Non-admin users receive an error that a mandatory field is not filled in on Standard Change Proposal form even when the field is populated Non-admin users receive an error ("The following mandatory fields are not filled in: Change Request values") on the Standard Change Proposal form when attempting to update the record even when the field is populated. The values are not visible to the user due to StdChangeUtilsSNC. Refer to the listed Known Error KB article for details.
Change Management

PRB674593

Change Request Inconsistent behavior in the 'Planned Start/End Date validation' business rule between Eureka and Geneva releases The business rule 'Planned Start/End Date validation' is aborting the creation of change_request records in Geneva that it allowed in Eureka with the same criteria. Users with scheduled templates have their templates fail without any notification after an upgrade from Eureka to Geneva.
  1. Open a new change request.
  2. Set the planned start and planned end dates to be the same.
  3. Try to save the record.
A warning message is shown stating that the planned end date needs to be after the planned start date.
Chat

PRB661228

KB0565104

Connect, UI11 - Navpage layout with multiple panes, NG shared components UI16: If Language is set to Hebrew, users cannot close the Connect sidebar In Geneva:
  1. Enable the Connect plugin.
  2. Enable the Hebrew language plugin.
  3. Create an ITIL user with Hebrew language selected.
  4. Log in as the newly created ITIL user.

    Note that the Connect sidebar is open on the right side of the screen.

  5. Click the Connect Sidebar icon to collapse the Connect sidebar.
The Connect sidebar does not close.
Chat

PRB668543

Connect Support - Chat Queue Entry: Unexpected results for aggregate data (wait time and action) make reporting and tracking difficult/impossible Chat queue entry data is generated in a way that seems strange to administrators and makes reporting difficult. Specifically, the wait time appears to be updated to match the total duration when the session is closed, and the action is set to abandoned when complete. However, this does not align with customer expectations. Additionally, in Helsinki, it does not appear that there is a way for a user to END a chat - that responsibility appears to be available only to the Support Agent.
  1. Activate the Chat plugin.
  2. Activate the Connect Support plugin.
  3. Open two distinct browser sessions, one impersonating Joe Employee, the other impersonating Fred Luddy.
  4. As Joe, navigate to this URL and start a chat: $chat_support.do?queueID=c54f0abf0a0a0b452db84664f409c79c
  5. As Fred, accept the chat, then:
    • Bring up the chat queue for Service Desk chat.
    • Find the Chat Queue Entry for the chat you just created in the related list.
    • Note the wait time and action. The wait time should reflect the amount of time that the user waited for the chat to be accepted, and the action should reflect 'accepted'. These values make sense.
    • Send a few replies to the chat.
  6. As Joe, send a few replies to the chat, then:
    • Realize that you no longer need assistance and attempt to close the chat. You cannot.
    • Send a message to Fred indicating that you are good to go.
  7. As Fred, end the chat, then:
    • Navigate back to the chat queue entry for the chat.
    • Note that the wait time matches the duration and that its status is 'abandoned'.

Summary of issues

  • The wait time should not change, but it seems to reflect the total duration of the chat instead of only the wait time.
  • The action shows as 'abandoned', which seems a bit strange since no one actually abandoned the chat. The customer expectation is that 'abandoned' should only be set when the user leaves a chat before it was accepted, and there should be other actions to indicate that the issue was solved in the chat or that the chat was transferred to an incident.
  • The action shows as abandoned even if you create an incident from the chat.
Chat

PRB670509

A message with the prefix "_123STREAMENTRY321_" is showing up in a Connect Record conversation In the record: after posting a message, changing the record, and saving the change, the previously posted message with the prefix "_123STREAMENTRY321_" is posted again.
  1. Start a record chat.
  2. Send a message.
  3. Go back to the record.
  4. Post a work note or comment (e.g. "posting a note").
  5. Change status or priority to another value.
  6. Click Save.

Expected behavior: This message should not be re-rendering in the Connect activity stream with the specified prefix.

Actual behavior: Notice how the previous post is reflected again in the Connect record conversation as "_123STREAMENTRY321_posting a note".
Chat

PRB671433

Angular AMB Services, NG shared components Presence kill switch does not stop all Presence requests The property glide.ui.presence.disabled does not shut off all presence requests. The presence system is looking for $window.NOW.presence_disabled, but that value is only set if ng_amb_header.xml is included on the page in question. Not all implementations of presence are including this template.
  1. Set glide.ui.presence.disabled to false.
  2. Open the main frameset.
  3. Open Chrome developer tools and look at the network requests.
Notice that requests for presence are still being executed.
Chat

PRB673197

Connect Unable to submit messages on iPad when using bluetooth keyboard Users with bluetooth keyboards on iPads cannot submit messages in Connect. Pressing the return key has no effect.
  1. Use an iPad (tested on a Pro) with a bluetooth keyboard.
  2. Open or create a conversation from the navigator.
  3. Tap on the conversation input.
  4. Type a sentence and press the return key.
Notice that nothing happens.
Chat

PRB673885

Angular AMB Services Angular AMB client and Vanilla JS AMB client do not have the same API In Geneva, there are two versions of the AMB client. One is created by Angular apps and the other is created by Vanilla JavaScript apps. Only one client exists on the top frame, and it can be created by either an Angular app or a Vanilla JavaScript app (the client object can be used in either environment). There is, however, one difference in their APIs. The Vanilla JavaScript client has a method called "getState", while the Angular client as a property called "state". Some consumers of AMB (Record Presence in particular) rely on the connection state to decide if they should publish messages. A consumer of AMB will fail if it expects one variant of the state API but gets the other instead. Open sessions as two separate users on a Geneva instance without Connect enabled.
  1. View an incident in the navigator with User A.
  2. View the same incident in the navigator with User B.
Notice that Record Presence is not visible for either user.
Chat

PRB674124

Magellan Navigator snTabActivity loses track of primary tab when Connect is not installed The tab tracker (snTabActivity) loses track of the primary (currently used) tab when Connect is not installed. The general UI does not include a unique key to keep track of the tab, which lets form pages override the "primary" tab when they load. This then causes presence to act inconsistently. On a Geneva instance (without Connect installed):
  1. Log in as System Administrator. Note the presence indicator in the top right is green.
  2. Navigate to a form.
  3. Wait 15-30 seconds.
Note the presence indicator disappears in the main nav. This may take a few tries of navigating to a form and waiting for at least 15 seconds.
Chat

PRB674163

Connect Support When end user enters a support queue, conversation is not getting created but request comes in
  1. As an end user, enter the HR support queue.
  2. As agent, notice the request comes in.
The behavior is as follows:
  • End user's side: Screen is blank and it says "Connecting". In the console it says" conversation does not exist".
  • Agent's side: Request comes in, the agent accepts it, but the conversation looks empty.
Cloud Management Application

PRB667899

Auto-created variables from ARM template do not get update sync'd As of Helsinki, variables created from ARM template parameters (auto-generated variable set) when you are in the global scope do not get put in an update set, causing loss of all these variables when moving update sets across ServiceNow instances during deployment. If the scope is changed to 'Azure' or 'Active Directory', and records are inserted in azure_template through the UI, records get created in 'azure_template_parameter' and 'azure_template_to_variableset' programmatically. Records are also getting created in update sets in Azure/AD scope. However, the application of these records is 'global'.
To reproduce:
  1. Install the Microsoft Azure Management Application plugin.
  2. Create an update set for Azure.
  3. Change the application scope to Azure, and make sure you update set is the one created above.
  4. Go to the ARM Template module and create a new ARM template.
  5. Once record is created in ARM Template, 'ARM Template Parameters' and 'Variable Set for ARM Template Parameters' will automatically populated.
  6. Now, go to the update set and populate the Application column in customer updates.
Notice that for tables mentioned, the above records are created in 'global' scope. Users cannot import the created XML in a different environment.
CMDB

PRB672916

Configuration Management (CMDB) CI Relationship Manager fails to create relationships if source CI name starts with #
  1. Go to a CI that has a name starting with #.
  2. Scroll down and click on the + to go to the Relationship Manager. You will see that on top it says Relationship Manager - (). This is already indicative of the problem because usually the CI's name is between the parentheses.
  3. Follow normal CI relationship addition and try to Save or Save and Exit.
The RM will respond with "Failed to create relationships."
Core Platform

PRB671419

Lists v2 Read ACLs on fields are being applied to related list v2 when a custom filter is defined on it "Query results restricted by ACLS…" is displayed on a form, referencing a field in a related list.

If this message appears on a list view, it is expected behavior. This ACL check is applied for security reasons. However, following PRB658078, read ACL checks should only apply to default lists and not to related lists.

  1. On a form with a related list, edit the ACLs on that related list to restrict read access to a field to admin.
  2. Navigate to System UI > Related Lists, and find the related list above. Add a filter on the related list to query the field we restricted the access to.
  3. Impersonate a user who is not admin.
  4. Navigate to that form.
Expected result: The related list shows the records with no error.

Actual result: We get an error message saying that the query results have been restricted.

Core Platform

PRB675830

KB0584836

Creating a dictionary override on a table extending sys_metadata causes a loop and a stackoverflow when starting the system A customer upgrading from pre-Helsinki to Helsinki with a dictionary override on a sys_metadata extended table may not be able to access the instance post-upgrade due to a stackoverflow in DBPreflight. Refer to the listed Known Error KB article for details.
Currency

PRB669805

KB0584759

The getCurrencyDisplayValue returns null if a number format is used instead of string during price assignment A fix was introduced in Geneva to allow multiple fraction digits to be input for currency values in locales where the decimal separator is a comma (e.g. when the locale is German, the input value is 1.234,5678). This fix is causing assignment of some values to currency/price fields in script to not work. Refer to the listed Known Error KB article for details.
Data Certification

PRB667460

Certification v2 When failing/passing a data certification and adding a comment, the tooltip displayed cuts off the text
  1. Install the Data Certification plugin.
  2. Go to cert_task.list.
  3. Select a task that is 0% complete.
  4. In the Certification formatter, click the checkbox next to the word Production on any Server.
  5. In the input box above the Server list, next to the Check/Exclamation mark where it says 'Optional comment for checked elements', type in a string (e.g. 'Testing to see if the tooltip displays the full comment').
  6. Click the exclamation mark to fail the certification on the checked box.
  7. The checked box now displays an exclamation mark after the list reloads. Hover over the exclamation mark.
Notice the tooltip renders the comment but cuts off the text.
Date and Time

PRB665916

Agile Development ORA-01830: date format picture ends before converting entire input string Currently, 'date' fields are not reformatted when sending the query to Oracle. On any Eureka release (with Oracle DB):
  1. Create 2 fields on rm_sprint table with type Date:
    • column name: start_date_1, type: date
    • column name: end_date_1, type: date
  2. Set the glide.sys.date_format to dd.MM.yyyy.
  3. Go to rm_sprint.list, open one of the records, and fill in a date on each of the 2 fields created at step 1, like the following example:
    • start_date_1 = '09.03.2016'
    • end_date_1 = '10.03.2016'
  4. Save the record.
  5. Go to background scripts and run:
    var gr = new GlideRecord('rm_sprint');
    gr.addQuery('start_date_1', '09.03.2016');
    gr.addQuery('end_date_1', '10.03.2016');
    gr.query();
    
    while (gr.next()){
    gs.print(gr.number);
    }
The following error is thrown:
[0:00:00.018] Script completed: script
FAILED TRYING TO EXECUTE ON CONNECTION 10: SELECT task0."sys_id"
FROM task task0 WHERE lower(task0."sys_class_name") = lower('rm_sprint')
AND task0."a_dte_1" = to_date(?, 'YYYY-MM-DD') AND task0."a_dte_2" =
to_date(?, 'YYYY-MM-DD')
General Data Exception detected by database (ORA-01830: date format
picture ends before converting entire input string)

Placeholders follow:

0 (10):09.03.2016
1 (10):10.03.2016
: com.glide.db.GlideSQLException: FAILED TRYING TO EXECUTE ON CONNECTION
10: SELECT task0."sys_id" FROM task task0 WHERE lower(task0."sys_class_name")
= lower('rm_sprint') AND task0."a_dte_1" = to_date(?, 'YYYY-MM-DD') AND
task0."a_dte_2" = to_date(?, 'YYYY-MM-DD')
General Data Exception detected by database (ORA-01830: date format
picture ends before converting entire input string)

Placeholders follow:

0 (10):09.03.2016
1 (10):10.03.2016
: com.glide.db.DBIError.wrapAndThrow(DBIError.java:105)
com.glide.db.DBIError.handleException(DBIError.java:66)
com.glide.db.DBI.executePreparedStatement(DBI.java:604)
com.glide.db.DBQuery.executePrepared(DBQuery.java:336)
com.glide.db.DBQuery.executeAsResultSet0(DBQuery.java:286)
com.glide.db.DBQuery.executeAsResultSet0(DBQuery.java:263)
com.glide.db.DBQuery.executeAndReturnTable(DBQuery.java:229)
com.glide.db.DBAction.executeNormal(DBAction.java:204)
com.glide.db.DBAction.executeAndReturnException(DBAction.java:167)
com.glide.db.RDBMSQueryContext.executeQuery(RDBMSQueryContext.java:46)
com.glide.db.DBQuery.execute(DBQuery.java:1735)
com.glide.db.meta.Table.queryBasic(Table.java:289)
com.glide.db.meta.Table.query(Table.java:186)
com.glide.script.GlideRecordITable.query(GlideRecordITable.java:76)
com.glide.script.GlideRecord.query0(GlideRecord.java:2828)
com.glide.script.GlideRecord.query(GlideRecord.java:2598)
com.glide.script.GlideRecord.jsFunction_query(GlideRecord.java:2484)
inv16.invoke()
org.mozilla.javascript.FunctionObject.doInvoke(FunctionObject.java:565)
org.mozilla.javascript.FunctionObject.call(FunctionObject.java:480)
org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1201)
org.mozilla.javascript.gen.c3786.call(<refname>:4)
org.mozilla.javascript.gen.c3786.exec(<refname>)
com.glide.script.ScriptEvaluator.execute(ScriptEvaluator.java:162)
com.glide.script.ScriptEvaluator.execute(ScriptEvaluator.java:176)
com.glide.script.ScriptEvaluator.evaluateString(ScriptEvaluator.java:68)
com.glide.script.Evaluator.evaluateString(Evaluator.java:161)
com.glide.script.Evaluator.evaluateString(Evaluator.java:156)
com.glide.processors.ScriptProcessor.evaluateScript(ScriptProcessor.java:282)
com.glide.processors.ScriptProcessor.runScript(ScriptProcessor.java:201)
com.glide.processors.ScriptProcessor.process(ScriptProcessor.java:159)
com.glide.processors.Processor.runProcessor(Processor.java:358)
com.glide.processors.Processor.processTransaction(Processor.java:163)
com.glide.processors.ProcessorRegistry.process(ProcessorRegistry.java:146)
com.glide.ui.GlideServletTransaction.process(GlideServletTransaction.java:36)
com.glide.ui.GlideServlet$1.run(GlideServlet.java:408)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:662)
Demand Management

PRB659820

Glidelist field not saving on record insert in Idea table when using the UI The Idea table introduced through the Demand Management plugin does not save GlideList field values upon insert of a record through the UI. Please note that GlideList field values are saved correctly when doing an update to an Idea record, as well as inserting a new Idea record through a GlideRecord. In an OOB Geneva instance:
  1. Activate the Demand Management plugin.
  2. Navigate to Self-Service > Ideas > Create New > Configure > Form Layout, and add the watchlist field.
  3. Fill out the required fields and populate the watchlist field.
  4. Save.
Verify that the watchlist is empty.
Demand Management

PRB669642

KB0594577

Demand Management Creating new idea submissions increments the record number by an additional number on Save/Insert When submitting a new Idea via the Demand Management Ideation, the initial number of the idea is incremented by 1 on Save / Insert of the new Idea. In a Geneva instance:
  1. Activate the Demand Management plugin if it is not already activated.
  2. Navigate to Self-Service > Ideas > Create New.
  3. Add Number to the form layout.
  4. Note the number of the new idea.
  5. Fill in the details and click Save/Submit.
Note the new idea number has incremented by one. The number changing on submit is causing confusion for the end users.
Discovery

PRB666816

Configuration Management (CMDB) NIC add/removal logic is merging distinct CIs For the OOB product, it was decided not to enforce an exact count match for the network adapter lookup rule for cmdb_ci_hardware. This was to allow the same CI to be identified even if its NICs were changed (added/removed).

A case occurred where two distinct CIs shared one network adapter, and the CIs had 4 other distinct NICs each. In Fuji, the legacy identification engine would only match on NIC if there was an exact count match. Currently, the IE logic will merge these two distinct CIs since they share one common adapter (i.e. thinking 4 NICs were replaced). This needs to be addressed.

  1. Run Discovery on 2 CIs with one network adapter, and 4 other distinct NICs each.
  2. Notice that the CIs were merged into one after matching on the cmdb_ci_hardware rule that looks on the cmdb_ci_network_adapter table.
Discovery

PRB670615

Integration - Microsoft SCCM 2007, Integration - Microsoft SCCM (Deprecated), Integration - Microsoft SCCM 2012 (deprecated), Integration - Microsoft SCCM 2012 v2 Identifier issues with lookup and empty hostname
  1. Using legacy identifiers, any identifier could be disabled by setting 'active = false'. This would skip that particular identifier from processing, but others would continue.
    • Using the CMDB Identification Engine (Geneva+), if a lookup rule is disabled, processing will stop before any matching occurs.
  2. Using legacy identifiers, if two CIs match on name, only one CI will be created.
    • Using the CMDB identification Engine (Helsinki+), it is possible for two CIs to be created - one with an empty name when two CIs match on name.
To reproduce issue #1 (lookup)
  1. Disable the identifier entry lookup on 'cmdb_ci_network_adapter' for the 'cmdb_ci_hardware' rule.
  2. Discover a device that uses rule from (1).
  3. Notice the following error in the Discovery log:
    CMDB Identification Error: Identity Rule 'cmdb_ci_linux_server'
    missing Lookup Rule for 'cmdb_ci_network_adapter'
To reproduce issue #2 (empty CI name)
  1. Make sure the 'name' identifier entry for the cmdb_ci_hardware rule is the only active rule.
  2. Discover two CIs with the same name.
  3. Notice that two CIs are created, and one has an empty name.
Edge Encryption

PRB675397

When using SAML via the Edge Encryption proxy, the AuthnRequest fails signature validation When using SAML via the Edge Encryption proxy using a standard HTTP(s) port (80 or 443), the AuthnRequest fails signature validation.
  1. Install the "Integration - Multiple Provider Single Sign-On Installer" plugin.
  2. Make sure the Edge Encryption proxy is bound to port 80 or 443 if using HTTPS.
  3. Set up the identity provider on the ServiceNow instance (Multi-Provider SSO > Identity Providers).
  4. Enter the Edge Encryption proxy URL in the ServiceNow homepage field.
  5. Check the Sign AuthnRequest flag.
  6. Try to authenticate to the ServiceNow instance using an external login.
Notice that login should fail with an error message indicating that the request failed signature validation.
Edge Encryption

PRB676113

With at least one tokenization pattern active, any filter on encrypted fields that uses terms with null values (^EQ for example) fails List edit with List v3 fails when a pattern is active (the post request uses a query ending in ^EQ). In List v3:
  1. Define an encryption configuration for problem.short_description.
  2. Activate a tokenization pattern (e.g. SSN).
  3. Navigate to Problem > Open and try to update a short description by list edit, on the list view.
  4. Note instead of the value getting updated and encrypted correctly, it is refused and the user gets an invalid insert error message.
In List v2:
  1. Navigate to Problem > Open.
  2. See an error in the proxy log saying that the List Request Action rule has been disabled.
Event Management

PRB668710

Activating vRealize connector stops event collection from all connectors
  1. Activate vRealize.
  2. Note no events are arriving from vRealize and other connectors.
Event Management

PRB670043

Improve SCOM groovyScript host (node) resolving The MonitoringObjectPath property from SCOM should be used to set the node field if NetbiosComputerName and PrincipalName properties are empty.
Event Management

PRB670478

Cloudwatch alerts do not have a proper timestamp Alerts coming into ServiceNow via evt_mgmt_proc.do are not properly translating the AWS timestamp. The date is correct, but the time always shows the same for a given day and set of alerts. This may be causing alerts to be deleted as duplicates, as well as preventing re-opening of Incidents that have been cleared by an operator based on recurrence of a similar event/timestamp.
Event Management

PRB670755

SCOM connector memory problem when large data is retrieved from SCOM The OOB parameter (number of rows to retrieve) will be updated in Geneva and future releases to 500.
Event Management

PRB674256

Timeline Visualization Multiple Timeline Visualization sliders are not visible In Event Management's Timeline module
  1. Size your browser or display to 1440x900.
  2. Try to view the Alert Timeline within frames.
The bottom line is cut off by the scroll bar. If you open it in a new tab/window, you can see both rows.
Facilities Service Management

PRB675428

Facilities Service Management, Facilities Move Management, Facilities Service Management Mobile, Facilities Visualization Workbench, Facilities Service Management Floor Plan Viewer Changes to Facilities request assignment group are overwritten on update When upgrading an instance, any changes made to 'Facilities request assignment group' are being overwritten and lost.
  1. In Geneva Patch 4, enable the Facilities core plugin.
  2. In Groups, find the "Facilities request assignment group" and mark it as inactive.
  3. Upgrade the instance to Geneva Patch 5.
Expected behavior: "Facilities request assignment group" should remain inactive.

Actual behavior: The "Facilities request assignment group" is active again as if no changes were made.

Forms

PRB675038

Magellan Navigator Form performance is slower in Geneva due to form presence, form live updates, activity stream and template bar
  1. Template bar is loading when it should not (as opposed to template bar loading slowly, which is a different PRB).
  2. Activity stream load time when there are lots of entries (> 20), including when it freezes the screen.
  3. Form does lots of loading before the activity stream even starts to load.
Governance, Risk and Compliance

PRB676390

GRC Control Test Definition loses the 'Recipients' field after upgrade to Geneva

In the Geneva release, the GRC plugin implemented the Recipients field differently, as stated in the release notes.

For users who were using the GRC plugin in Fuji, the recipients field was part of the survey_creator UI macro, and now the field is no longer displayed in Geneva. For example, a user with 1600+ test records needs to be able to migrate the data from that field to the new user recipients list.

In a Fuji instance:

  1. Activate the GRC plugin.
  2. After activation, type GRC in the filter navigator and select Controls > All > click New.
  3. Fill in the name field with 'test' and submit.
  4. Under the control test definitions related list, click New:
    • Name field: test
    • Condition Type: Attestation
    • Check the collect supporting data box
  5. The attestation questions formatter is displayed; you can add 1 question and fill out the "recipients" field.
  6. Save.
  7. Upgrade this instance to Geneva.
  8. Go to the Control Test Definitions table and locate your test record.

Now there is an empty "User recipients" field. Under the "attestation questions" formatter area, there no longer is a recipients field.

HI Administration

PRB664691

NG shared components Out of the box - form widget issues Outstanding issue:
  • GlideList field does not have an option of taking a new input from the user. For example, in legacy UI for a GlideList referring to sys_user, you can either select a record from the system or provide the email by yourself. This is not possible here.
Fixed issues:
  • On setting the a reference field in an OnLoad script using g_form.setValue does not populate the field with the display value.
  • Message duration for the info messages (g_form.addInfoMessage, g_form.addErrorMessage) displayed on the top is very short.
HR Service Management

PRB663149

PDF Generator Generating HR template will not print Arabic characters Generating the HR Employee verification letter will not output Arabic / Russian characters.
  1. Activate the Human Resources Application: Core plugin.
  2. Go to the OOB Employee verification letter: /hr_document_template.do?sys_id=5d295f26d7200200a322c257ed6103fa.
  3. Add some Arabic / Russian text to it, for example:
    • ы это реальная жизнь? Является ли это просто фантазия?
    • الصورة هذه هي الحياة الحقيقية؟ هل هذا مجرد خيال؟
  4. Create an HR case (hr_case.do), choose the template 'Employment verification' and any user and save it.
  5. Click the Generate Letter button (if the UI action is not visible, delete the condition on it here: sys_ui_action.do?sys_id=63db0684d7333100a322c257ed61035b).
  6. Look at the attachment.
It will not contain the characters.
HR Service Management

PRB672986

Double widgets are appearing on the HR Service Portal page
  1. Activate the HR Service Portal plugin.
  2. Navigate to the HR Service Portal page > Benefits > Beneficiaries.
  3. Go back and click Benefits in the breadcrumbs.
Note the double widgets.
Human Resources

PRB664555

Human Resources Application: Core Populate case SLAs - potential looping when updating hr_case records, possibility of incorrect post back of SLA time remaining to hr_case records This issue occurs because of how this business rule was designed: nav_to.do?uri=sys_script.do?sys_id=52e44382c3100200b599b4ad81d3aed0

The business rule processing engine can get into a loop if the right conditions are met. Additionally, since the business rule fires on all updates to task_sla records attached to hr_case records, and does not account for the possibility of multiple SLA definitions with different durations, as soon as there is more than one SLA definition attached to an hr_case record, it becomes a tossup as to which SLA will be posted back to the hr_case to populate the SLA field.

To trigger a loop:
  1. Create an SLA definition on the hr_case table with a short duration (e.g. 30 minutes).
  2. Create an hr_case record that will trigger your SLA definition.
The hr_case is inserted, SLA processing will run, and the task_sla record will be attached. At that point, the populate case SLA business rule will run and update the hr_case record. This will cause SLA processing to run again. If the elapsed times on the SLA have changed, it will cause another update to the hr_case, creating an infinite loop.

For the potential of lost data:

  1. Create two SLA definitions on the hr_case table.
  2. Create an hr_case record that will trigger both SLAs.
View the hr_case record after updating - the SLA field will be populated, but from which SLA was it populated?
Knowledge Management

PRB629229

KB0550855

Knowledge Management V3, I18N: Knowledge Management Internationalization Plugin v2 Activating I18N - Knowledge Management Internationalization does not import previous translations from the translation table If the instance has a language plugin installed, knowledge article translations created prior to activating the I18N - Knowledge Management Internationalization plugin are lost.
  1. Activate any language plugin.
  2. Create a new article and modify an existing article using a non-English translation.
  3. Activate the I18N - Knowledge Management Internationalization plugin.
  4. Navigate to the articles you created and edited.
Note that changes made using the non-English translation are migrated to English.
Knowledge Management

PRB648819

Knowledge Management Wiki Support Links in a wiki field containing spaces do not function as expected When clicking on a wiki link containing a space, the user gets a new kb_knowledge form rather than being linked to the appropriate wiki page.
  1. Create a new kb_knowledge record or open an existing one.
  2. Change the Article Type to Wiki to reveal the Wiki field.
  3. Click Wikitext to display the text box.
  4. Create a link using the following: [[Bereavement Leave]]
  5. Save the record.
  6. Click the Bereavement Leave link created in step 4.
Expected Behavior: Clicking the link should redirect to the the OOB article KB0000041, which has a short description of "Bereavement Leave".

Actual Behavior: Clicking the link opens a new kb_knowledge form with "Bereavement_Leave" as the short description.

Knowledge Management

PRB663803

Knowledge Management V3 Geneva: Knowledge Category field drop down hangs in the Knowledge Import popup if the Kb_category values exceed approximately 89 in count In Geneva, there is a new feature to Import Word documents into knowledge. This Import Knowledge popup has a Category field which freezes when the number of Categories in the drop down list exceed approximately 89 in count.

When there are around 90 categories, the size of the request is around 8k, which seems to be the default for the Tomcat server. At this size, the Web Server itself rejects the request, and it does not even reach the application server. This makes it seem that we are sending a request that is larger than what the Web Server was initially configured to serve.

Knowledge Management

PRB666185

Knowledge Management V3 File parsing error when trying to import Word document into Knowledge In a Geneva instance as an admin or user with elevated privileges:
  1. Navigate to Self-Service > Knowledge > Import.
  2. Select a Word document and attach it.
  3. In the Import window, select the Knowledge Knowledge base and click Import.
Instead of a new KB being created, the import results in errors.
File parsing error: com.snc.knowledge3.knowledge_import.KnowledgeImportException:
File parsing error:
com.snc.knowledge3.knowledge_import.ConvertToHTML.parseDocx(ConvertToHTML.java:183)
com.snc.knowledge3.knowledge_import.ConvertToHTML.parse(ConvertToHTML.java:258)
com.snc.knowledge3.knowledge_import.WordKnowledgeImporter.parseToArticle(WordKnowledgeImporter.java:31)
com.snc.knowledge3.processors.NGKnowledgeImportProcessor.parseFile(NGKnowledgeImportProcessor.java:139)
com.snc.knowledge3.processors.NGKnowledgeImportProcessor.processGetFile(NGKnowledgeImportProcessor.java:172)
com.snc.knowledge3.processors.NGKnowledgeImportProcessor.processDelegateMethod(NGKnowledgeImportProcessor.java:90)
com.snc.knowledge3.processors.NGKnowledgeImportProcessor.process(NGKnowledgeImportProcessor.java:38)
com.glide.ui.ng.AngularProcessor.process(AngularProcessor.java:107)
com.glide.processors.AProcessor.runProcessor(AProcessor.java:409)
com.glide.processors.AProcessor.processTransaction(AProcessor.java:183)
com.glide.processors.ProcessorRegistry.process(ProcessorRegistry.java:165)
com.glide.ui.GlideServletTransaction.process(GlideServletTransaction.java:32)
com.glide.sys.ServletTransaction.run(ServletTransaction.java:34)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
java.lang.Thread.run(Thread.java:682)
Knowledge Management

PRB666632

Social Q&A Social Q&A: When asking a question, the category list is empty and a 400 Bad Request error is encountered in the logs if the selected KB contains a large number of categories When a Knowledge Base contains a large number of categories, the contents of the Category field on the "Ask question" Social Q&A page does not load. Furthermore, a '400 Bad Request' error occurs in the network logs on the browser. This appears to be caused by the large amount data in the GET request query string. For example, when 79 categories are active, the URL that the GET request is made to contains 7,532 characters. In a Geneva Patch 4 instance with a Knowledge Base with many categories (e.g. 134 categories):
  1. Navigate to Knowledge > Homepage.
  2. Click the IT category.
  3. From the 'Create New' dropdown, choose Question.
  4. Click the Category field dropdown.
Expected behavior: The categories in the IT knowledge base appear in the dropdown

Actual behavior:

  • No categories appear in the dropdown. A '400 Bad Request' error appears in the 'Network' area of the web console.
  • If you open /kb_category_list.do and set active = false on a large number of the categories (e.g. so there are only about 50 that are left active = true), the issue will not occur.
Knowledge Management

PRB667232

Knowledge Management V3 Import from Word does not preserve formatting Use the Import from Word feature. The formatting is not preserved.
Knowledge Management

PRB673105

Knowledge Management V3 When there are many categories, drilling into a knowledge base from $knowledge.do is slow to load
Knowledge Management

PRB673962

Knowledge Management v3 Knowledge search results are limited to the user's preferred language

In Geneva, Knowledge search results are limited to the user's preferred language. This does not offer an option for customers to search articles in all languages. In a multilingual environment, where users may speak more than one language and articles may be written in English or any other language, it is not a desired and expected behavior to force searches to filter by language.

Geneva introduced a dependency where I18N: Internationalization requires the I18N: Knowledge Management Internationalization Plugin, which does not leave an option for customers decide to whether or not to localize or the Knowledge Base. However, this is not stated in product documentation.

To allow users to search all articles in all languages, there should be an 'All' option in the language picker and an option to force that as the default.

Scenario 1
In a Geneva instance:
  1. Install the 'I18N: Knowledge Management Internationalization Plugin v2' plugin.
  2. Install an alternate language (e.g. German).
  3. Create and publish a new KB article in German.
  4. Browse to Self-Service > Knowledge.
  5. Search for the article created in step 3. Note that the article does not appear in searches.
  6. Switch to the German language, or impersonate a user that has German as their preferred language.
  7. Search for the article again. It will be visible, but the English language KB articles will not.

Scenario 2

In Fuji, the 'I18N: Knowledge Management Internationalization Plugin v2' plugin is not activated, however I18N: Internationalization is active.
  1. Upgrade the instance to Geneva.
  2. Note that the I18N: Internationalization plugin requires I18N: and Knowledge Management Internationalization Plugin v2 due to the dependency. This does not give an option whether or not to have a translated knowledge base.
Knowledge Management

PRB674483

Knowledge Management V3 UI page kb_find published knowledge date does not show if glide.knowman.search.show_author is false Even though glide.knowman.search.show_published is set to true, which should control if the published date is shown on kb_find search results or knowledge home page results, the published date does not show if the glide.knowman.search.show_author is set to false.
  1. Go to the UI page kb_find. Click Try it to view the page.
  2. Search a term such as 'email'.
  3. If glide.knowman.search.show_published is set to true and glide.knowman.search.show_author is false, the published date does not show.
  4. Now set the glide.knowman.search.show_author system property to true and you will see all the information display.
Expected behavior: Published date should show even though the client does not want to display the author information.

Actual behavior: Published date information is dependent on author system property.

Knowledge Management

PRB675406

Knowledge Management V3 Changing knowledge search properties does not immediately apply to UI knowledge search page
Language and Translations

PRB640226

Italian Finnish translation missing on calendar When clicking the calendar popup for a date/time field, there is no translation for the days of the week in Italian. It displays in English (SMTWTFS), and it needs to be translated to Italian (DLMMGVS).
  1. Navigate to Plugin > Activate Italian or Finnish.
  2. Change the language to Italian or Finnish.
  3. Navigate to incident (Incidente) > open (Aperto).
  4. Click the date/time type fields Aperto (Opened) or Chiuso (Closed).
The Date/Time type fields Opened and Closed do not show the Italian translation.
Language and Translations

PRB677194

Days of the week in the Date picker do not get translated into Finnish
  1. Active the Finnish translations plugin.
  2. Change your language to Finnish.
  3. Open an existing change request.
  4. Find any date/time field, and click on the calendar icon to display the date picker.
Notice that the days of the week display as: M, T, W, T, F, S, S. In Finnish, they should be: M, T, K, T, P, L, S. The related UI message entry is being created when the plugin is activated, but the values are in English instead of Finnish.
Lists

PRB669717

UI16 List v3 features are shown in What's New in Helsinki popup
  1. Open What's New.
  2. Notice that there are two slides dedicated to List v3.
Lists

PRB671306

List v3 Components System property glide.ui.list_edit not working in new lists
Lists

PRB673308

List v3 Components List v3 fails to render if glide.ui.escape_text = false and table plural has an ampersand Using List v3:
  1. Change "Incidents" table plural to "Incidents & things".
  2. Set glide.ui.escape_text system property to false.
  3. Restart the instance.
  4. Go to the list of Incidents.
See error "The entity name must immediately follow the '&' in the entity reference."
Live Feed

PRB670749

After upgrading to Geneva Patch 5, Live Feed search is not working in public group and has latency issues After upgrading to Geneva, Live Feed search is not working in public groups. In a Geneva instance:
  1. Navigate to Live Feed > Group Feeds.
  2. Click All Feeds.
  3. Enter 'employees' in the search and press enter.
Instead of returning feeds that contain 'employees', search returns all the feeds.
MID Server

PRB667651

MID Server should be able to handle dzdo as a privileged command

A Service Mapping user was able to use "dzdo" as a privileged command, but it is not supported by the MID Server.

MID Server

PRB670521

MID Server fails to parse the output of the sudoers file and prompts for a password when using SSHKEY's MID Server fails to parse the output of the sudoers file correctly when there is a long line in the sudoers file, and it prompts the user for a password. This happens when using SSH keys. When there is a very long line in sudoer file, you cannot really tell if you are able to run a command without password or not through the output of "sudo -l" because the sudo -l output will cut the single line into multiple lines. In an instance that uses SSH keys in your credentials table:
  1. Run Discovery on any Linux system which has a long line in sudoers file.
  2. Look at the input from the Linux-Identity probe.
Note the error message in the ECC queue saying that a password is not supplied.
Mobile

PRB669406

Mobile UI, NG shared components In mobile web, linking to a date query displays incoherent string and causes error when attempting to edit date query
  1. Navigate to Mobile Navigator Apps > Self-Service > Add module.
  2. Set the table to incident and add a query for the table that includes a date: Opened on 12 months ago.
  3. Save the form and view the mobile web.
  4. Click the new module and notice the bad display in the filter: Opened on 12 months ago@javascriptandmorejavascript.
  5. Click to edit the filter.
  6. Click to edit the date condition on the filter.
Notice the JavaScript error on the page. The UI should be displaying a clean display without JavaScript.
Password Reset Application

PRB669891

OOB PW Reset - AD workflow not compatible with Minimum Age requirement in AD The password history policy is enforced even though the 'Enforce history policy' flag is disabled on the credential store.
  1. In Windows, select Switch User.
  2. Select the Ctrl+Alt+Del app.
  3. Select the pictures in the reCaptcha, then click Next.
The generated random text cannot be copied (Ctrl+C) or right-clicked (no context menu). Only the 'Cancel' button is available.
Performance Analytics

PRB668058

Performance Analytics Dashboard breakdown sources are no longer accessible from child domains In Geneva, PA dashboard breakdown sources are no longer accessible from child domains. In Fuji, these selectors were available.
Performance Analytics

PRB668718

When exporting to PNG, time series widget shows all scores when 'show range selector' is checked
  1. Create an indicator with a scores for 2 months.
  2. Add a breakdown to this indicator and add scores for 2 months.
  3. Create a time series widget with this indicator and 2 additional indicators with indicator/breakdown/element.
    • Period: 1 month
    • Show range selector=true
  4. Export to PNG.
Instead of showing only 1 month of data, all scores are shown.
Performance Analytics

PRB669162

Performance Analytics Widget Indicators Label is not being used on List Widgets On list type widgets, Additional Indicators [pa_widget_indicators] with a Label will display on the widget the Name of the Indicator and not the Label information. This feature works as expected with 'Workbench' and 'Time Series' widget types, and it is irrelevant to 'Score' and 'Breakdown' widget types.
  1. Make sure the sys_dictionary record for pa_widget_indicators.label is Display = true (OOB configuration).
  2. Create a list type widget, scorecard visualization, and save the record.
  3. Add new widget indicators to your list widget. Make sure to insert a label that differs from the Indicator Name.
  4. Add the list widget to a dashboard.
The list widget displays the name of the Indicators, not the Label defined on the widget indicators record.
Performance Analytics

PRB669762

KB0584151

Performance Analytics - Data Collector (deprecated), Performance Analytics Data collector fails when there is a script without facts table Performance Analytics scripts that do not specify a Facts table cause data collection to fail.
  1. Navigate to Performance Analytics > Scripts.
  2. Create a new script.
  3. Leave the Facts table field empty.
  4. Run a data collection job.
Performance Analytics

PRB674444

Performance Analytics When exporting to PNG/JPG, widget shows all scores and not the breakdown specific scores
  1. Create an indicator with a scores for 2 months.
  2. Add a breakdown to this indicator and add scores for 2 months.
  3. Create a time series widget with this indicator and 2 additional indicators with indicator/breakdown/element.
    • Period: 1 month
    • Show range selector=true
  4. Export to PNG.
Instead of showing only 1 month of data, all scores are shown.
Performance Analytics

PRB674734

KB0584646

Performance Analytics Unable to drag Performance Analytics Scorecard to favorites in UI16 In UI16, users are unable to drag the Performance Analytics Scorecard to favorites (using Chrome browser version 50.0.2661.94 and Safari 8.0.8).
  1. Navigate to Performance Analytics > Scorecards.
  2. Navigate to the Favorites tab.
  3. Select any scorecard and drag it to the Favorites tab.
Note that the selected scorecard cannot be added to the Favorites tab.
Performance Analytics

PRB675545

Russian translation is not working on PA widgets headings, etc. In a Geneva Patch 5 instance:
  1. Enable the Russian language plugin.
  2. Using the English language, navigate to Performance Analytics > Dashboard.
  3. Select Incident Management from top list.
  4. Change the language to Russian.
Notice the widget names, legends, etc. still appear in English.
Performance Analytics

PRB677641

KB0594674

Performance Analytics Performance Analytics dashboards display 'The reference to entity' error when selecting a value with an "&" in the name from the breakdown element dropdown Performance Analytics dashboards display 'The reference to entity' error when selecting a value with an "&" (ampersand) in the name from the breakdown element dropdown.
  1. Change the Value of the incident priority High choice from 2 to R&amp;D (no spaces surrounding the ampersand).
  2. Add breakdown source incident.priority to a breakdown dashboard.
  3. Navigate to the dashboard and select the high priority (with value R&amp;D).
Persistence

PRB650167

Oracle query issued in ElementMetadataQuerier joins lower('sys_id'), degrading performance because desired index is not used
  1. Invalidate cmdb_ci by running GlideTableManager.invalidateTable("cmdb_ci"); in Scripts - Background.
  2. Turn on SQL Debugging.
  3. Navigate to /cmdb_ci_list.do.
Note the large number of long-running queries such as:
19:51:25.789: Time: 0:00:00.111 id: SNC10111127[glide.8] for:
  SELECT * FROM sys_dictionary d left join
  sys_metadata m on lower(m."sys_id") = lower(d."sys_id")
  WHERE lower(d."name") = 'sys_ui_action_view'
These take 100+ms because we are missing index utilization on the join, since the columns are being unnecessarily "lowered".
Persistence

PRB668234

KB0565488

Human Resources Application: Core, Service Management Core In Geneva, hr_change table does not reparent properly to hr_case table According to the Geneva release notes: "In addition, the [hr_change] table is merged with the [hr_case] during the upgrade. All HR cases and changes are placed in the [hr_case] table and the [hr_change] table is removed. Any customizations you made to either table are applied to the [hr_case] table."

A user who upgraded from Fuji Patch 10 to Geneva Patch 4 had custom columns in their hr_change table that were deleted along with the corresponding data. This is caused by a defect in the upgrade script that fails to apply customizations that existed before the upgrade.

The fix for this PRB now properly reparents the hr_change table to the hr_case table. Custom columns in the hr_change table are no longer deleted for customers that upgraded from Fuji Patch 10 to Geneva Patch 4.

Refer to the listed Known Error KB article for details.
Persistence

PRB670065

KB0584891

Uncaught exception from RecordWatcherCache due to inconsistent watcher configuration factories between nodes Users are experiencing an intermittent blank white screen due to cache inconsistencies between nodes (node1 is sending messages in a different format than node2 is reading them). Refer to the listed Known Error KB article for details.
Platform Performance

PRB677006

Decrease AMB log volume
Platform Security

PRB667582

Monitoring: Remove login events Existing login events need to be removed, but we still need to continue logging the events into app server logs.
  • DB
  • LDAP
  • SAML
Platform Security

PRB674503

Performance degradation when using GlideRecordSecure when the record being queried contains fields such as variables, audio Performance degradation occurs while using GlideRecordSecure when the record being queried contains fields such as variables, audio, userImage, currency, and possibly other fields.
  1. Create a new table.
  2. Add several currency fields to it, along with other dummy fields (e.g. name, description).
  3. Create an entry under sys_relationship table:
    • Applies to table is incident
    • Queries from table is the new table created in step 1
  4. Add a query such as
    current.addQuery('&amp;lt;SOME_FIELD_IN_THE_NEW_TABLE>',
    &amp;lt;SOME_VALUE_THAT_MATCHES_A_LOT_OF_RECORDS>);
  5. Add many records to the new table.
  6. Create a list_edit ACL on the new table, and add a condition and a query using some fields on the table.
When you open an existing incident, note that the AJAX call to fetch the records under the new embedded list is taking a lot of time to get the response back.

Enable SQL debugging. Note that for every currency field under every record under the new embedded list, a GlideRecord query is being made when getSpecificDisplayValue is done.

Project Management

PRB627580

Project tasks created through the Project Workbench automatically get added as guided boards to the VTB According to the wiki, a guided board can be created by right-clicking on a list column of type choice list or reference. It does not mention if there is any other way that these guided boards can be created. However, project tasks that are created using the project workbench are automatically created as guided boards on the VTB. A guided board is created when a project task is created. When a lot of project tasks are being created, the guided VTB gets flooded with boards, which can become a huge issue for some users.
  1. In a Fuji instance, activate the Project Management and Visual Task Board plugins.
  2. Create a project.
  3. Load this project on the Project Workbench.
  4. Click on the Project Detail icon on the header (the i within a circle icon).
  5. A window should pop up. Within this, scroll to the Project Tasks related list.
  6. Create a new project task.
  7. Navigate to the My Task Boards module.
Note the new project task created was automatically added as a guided board.
Project Management

PRB668286

Project Management Planning console security The planning console is not available for users without CRUD on the project table. The planning console should be available as long as CRU access is available in project, CRUD is on the project task table, and CRUD is on the planned_task_rel_planned_task table
Project Management

PRB668503

Actual End Date for parent project gets incorrectly set and/or updated even though all of the Projects Tasks for the Project are not complete As per the Project Management design, a parent project's Actual End Date should get set only when the Percent Complete for the project is at 100% and all of the child Project Tasks of the Project are complete.
  1. Make sure the Project Management v3 plugin is enabled .
  2. Create a Project with multiple Project Tasks and child Project Tasks.
  3. Close an existing Project Task from the Project's list view in list edit mode.
Notice that the Actual End Date of the EDP - Network Segmentation parent project gets set incorrectly even though not all of the project tasks are Closed Complete. The Actual End Date should not have a value if all of the Project Tasks have not yet closed and the percent complete of the parent project is not at 100%.
Project Management

PRB668519

A "24x7" schedule for projects result in unexpected planned duration and planned end date behavior Once the planned end date is changed, it results in an unexpected calculated planned duration. Likewise, a change in planned duration results in an unexpected calculated planned end date.
  1. Create a "24x7" schedule.
  2. Schedule entries for it:
    • When: check the All day checkbox
    • Repeats: Daily
    • Repeat every: 1 Day
    • Repeat until: blank
  3. Create a new Project record.
  4. Set the daily schedule as 24x7 (repeats daily all day).
  5. Change the Planned end date.
  6. Go through it day by day. Note it works as expected until it hits a weekend, and the planned duration changes to an unexpected value.
  7. Reset the planned duration back to 00 00:00:00.
  8. Change the planned duration to a value such as 07 00:00:00.
Observe the planned end date is now an unexpected value as well. For example, if the planned start is 04/04, the planned end should be 04/11, but it is something like 05/23 instead.
Project Management

PRB668817

Users cannot create dependency when locale is not English Users cannot create dependencies when locale is Swedish. In an instance where the locale is Swedish:
  1. Create a new project.
  2. Create two task with the second starting next day after the first ends.
  3. Create a finish to start dependency between first and second.
You will see the error: "Cannot add relation to a successor task which has already started".
Project Management

PRB673030

Resource Management Omit new button not honored for Resource Plan related list on Project form Users are unable to remove the 'New' list control for the Resource Plan related list on the Project form. In a Geneva instance:
  1. Activate the Resource Management plugin with demo data.
  2. Navigate to Projects > All.
  3. Click into Demo Project for Resource Plan.
  4. Open the Resource Plan related list.
  5. Right-click the column header > Configure > List Control. Notice the OOB 'Omit new button' is checked (if for some reason it is not, check it and save the form).
  6. Go back to the Project form. Notice that the New button is there even though "Omit new button" is configured for that list control.
The New button should be hidden, but it is not.
Project Management

PRB673037

Selecting 'Project workbench' context menu from the project list view does not display anything When a user selects 'Project Workbench' from Project > Projects > All > right-click on a project record from the list view > Project Workbench, nothing appears. The browser inspect element shows: "Error running context menu 'Project Workbench': ReferenceError: g_form is not defined" In a Geneva instance:
  1. Navigate to Project > Projects > All > right-click on a project record from the list view > Project Workbench.
  2. Note that nothing appears.
Project Management

PRB673178

Project Management Latency issue with updating/creating/linking project tasks in a project with several layers of children tasks Updating/creating/linking a project task within a project and/or parent project task can result in latency issues when the project has many tasks in its hierarchy. In a Geneva instance:
  1. Create a project.
  2. Create many project tasks for the project. Make some of those tasks dependent upon other tasks (parent:child relationships), with multiple children tasks for several parent tasks, etc.
  3. Go into one of the child projects task and try to update it (e.g. change state from WIP to Closed).
This can take 15 seconds to several minutes.
Project Management

PRB674348

Timeline Visualization No scroll bar in the Alert Timeline balloon pop up There is no scroll bar in the Alert Timeline balloon pop up. If there are more than 4 alerts, list can only show 3-4 and there is no way to scroll down.
  1. Make sure there are 10 major alerts for a day.
  2. Open Alert Timeline.
  3. Click on the balloon that has the 10 alerts.
Only 3-4 alerts that fit into the screen, and there is no scroll bar.
Project Portfolio Management

PRB671438

Project Management Portfolio Workbench not displaying actual cost in the grid view
  1. Set up all the prerequisites for financial planning of projects.
  2. Create a Project for Portfolio and a Cost Plan for the project.
  3. Create an expense line for the cost plan and process the expense line.
  4. Open the portfolio workbench.
  5. Verify the actuals in the widget and the grid.
Note that instead of both the widget and the grid displaying the actual cost, the grid does not display any value for the actual cost.
Reporting

PRB669172

Grouping by a field with a % in the data causes the drill down to error out with URI Malformed error If you group by a field that has a % in the data and put that data into a bar chart, drilling down into the bar chart that has the % as part of the axis name will cause a URI Malformed error to occur.
  1. Navigate to incident.list.
  2. Filter assigned_to = Beth Anglin.
  3. Modify one of the short descriptions to have a % in it.
  4. Right-click the short description header and click Bar Chart.
  5. Click on the bar for the record where you added the %.
Instead of being taken to that record in a list, nothing happens, and the user gets the URI Malformed error in the browser console.
Reporting

PRB674530

When exporting a Column report with stack by + Grouped Columns to PDF, it becomes a Stacked Columns report
  1. Create a Column chart on incident grouped by priority (grouped columns), trend by created, per month, aggregation count.
  2. Save the report.
  3. Export to PDF.
Notice that the exported chart shows as stacked, not as grouped columns.
Resource Management

PRB675786

Resource Management Installing 'com.snc.resource_management' will not work as expected if 'com.snc.project_management_v2' is already active If an instance has Project Management v2 activated and the instance admin activates the Resource Management plugin, the fix 'com.snc.resource_management/update/install_project_management.xml' will NOT activate Project Management ['com.snc.project_management_v3'] as expected. This plugin contains several important dependencies for Resource management and will cause it not to work. One such dependency is the Common Workbench ['com.snc.common_workbench'] plugin and another is '/scripts/thirdparty/intro-v1.0.0/intro.js' file, which is required to load /$resource_workbench.do.
  1. On a pre-Geneva instance, activate 'com.snc.project_management_v2' plugin and upgrade to Geneva.
  2. Activate 'com.snc.resource_management'
  3. Navigate to /$resource_workbench.do.
Notice the error in the browser console:
WARNING *** WARNING *** Resource does not exist:
/scripts/thirdparty/intro-v1.0.0/intro.js
SDLC

PRB670490

Agile Development Sprint Burndown Chart is off by one day for users with GMT- timezones All scrum tasks completed during sprints in GMT timezones show they were completed one day earlier than they should have been. The burndown chart on sprint shows the 'Actual end date' being a day behind.
Server Side Scripting

PRB668211

Syntax Editor Service Portal script evaluation should support app scoping All script evaluation within Service Portal currently executes in global.
Server Side Scripting

PRB680182

Instances which compile thousands of short JavaScript expressions may experience OOM after upgrading to Helsinki When compiled to Java classes instead of being interpretatively executed, very short JavaScript expressions create larger Java class files in Helsinki due to an upgrade to the JavaScript compiler. Instances which compile very large numbers of very short JavaScript expressions to Java classes rather than interpreting them may experience OOM (Out Of Memory) issues after upgrading to Helsinki as a result. For example, filter expressions can cause a large number of short JavaScript expressions to be compiled.

The Rhino JavaScript compiler operates in two distinct modes. It can compile JavaScript to Java classes and then execute the generated class, or it can compile the JavaScript into a simple stack-based pseudocode (pcode) and then interpretatively execute the pcode. If Java classes are generated, they are stored in a special area of JVM memory, which was historically known as 'permgen' and (since Java 8) is now known as 'metaspace'. This area of memory is a limited resource, so compiling thousands of short scripts should be avoided, since it tends to cause the system to run out of permgen / metaspace.

There is no specific set of steps to reproduce. The only known case of this problem involved an instance which was using many SLAs and a large number of filter expressions. The expression cache contained thousands of slightly different entries for filter expressions.
Service Catalog

PRB666430

Cart Preview Screen pages can be slow to load if Lookup variables are empty The cart layout Column Macro 'sc_cart_view_column_expandable_desc' uses script include 'CatalogLabelEvaluator' to provide the variable name and values for the edit cart, and checkout screens.

If a variable is Lookup Select Box (type 18) and Lookup Multiple Choice (type 22), has the 'Lookup Value Field' set as sys_id, and has an empty value, then the code in the getDisplayValue function will still try to get a display value for this empty variable value.

What happens is a get() on the referenced table with sys_id=''. This results in the whole table being returned. In Geneva, that means the form is slow to load. In Helsinki, the variables fail to load and there is an onscreen error:

Illegal access to method getDisplayValue() in class
com.glideapp.questionset.LookupSelectQuestion
Service Catalog

PRB668555

KB0584845

SCStaleCacheListener.java causes sys_cache_flush table to bloat, stalling upgrades SCStaleCacheListener listens to inserts/updates/deletes on the tables listed below. This affects user_items_cache and user_categories_cache for every domain in the system, potentially causing sys_cache_flush to have millions of records and stalling upgrades.
  • sys_user
  • sys_user_role
  • sys_user_has_role
The defect affects instances that use User Criteria to control access to the items and categories in the Service Catalog within a domain-separated environment. The defect may cause very long upgrades and severe performance degradation. Any update to a record in the sys_user, sys_user_has_roles, or sys_user_grmember table will trigger the USER_CATEGORIES_CACHE cache flush. When enough of these triggers in quick succession, the system is unable to process the cache rebuild, slowing down the system and leading to unresponsive behavior. This impact grows by a factor based on the number of domains.

The defect occurs under the following scenarios:

  • Upgrade issue when com.glide.role_management.inh_count is not enabled and then com.glide.role_management adds multiple entries to the sys_user_has_role table. This can happen if a plugin upgrade adds a role or roles to other role or roles that are assigned to a large number of users.
  • Plugin activation com.glide.role_management.inh_count can run into this issue.
  • When a user adds a role or roles to another role or roles that are assigned to a large number of users.
  • LDAP imports to update users or user roles can be affected by this issue.
Service Catalog

PRB669607

Adding attachments to catalog item does not show the attachment, deletion progress bar shows indefinitely After uploading an attachment to a Service Catalog item, it will not show the 'Manage Attachments' list. This works as expected in Geneva. In addition, deleting a catalog item's attachment shows the deletion progress bar indefinitely even though the attachment gets deleted. These issues also exist for the record producer. Issue #1: 'Manage Attachments' list does not appear
  1. Go to the Service Catalog and open a catalog item.
  2. Attach one attachment in the item ordering page.
  3. Notice the 'Manage Attachments' list does not show up under the item header.
  4. Drag and drop a file to the attachment list.
  5. Notice the attachment is shown, but it is attached to the record. Clicking on the clip icon will not show the newly added attachment.
Issue #2: Deletion progress bar is displayed indefinitely
  1. Navigate to Service Catalog > Maintain items. Select one catalog item and try it.
  2. Attach multiple attachments in the item ordering page.
  3. Select any attachment and and click Remove.
  4. Note that deleting a catalog item attachment shows the deletion progress bar indefinitely.
  5. Close the the popup after a few seconds, and click on the attachment again. Note the attachment was deleted.
Service Catalog

PRB675472

Explicit Roles plugin activation throws a StackOverFlowError Activating the Explicit Roles plugin throws a StackOverFlowError, leading to unexpected behavior in sys_user_has_roles. This is related to the fix for PRB668555.
  1. Activate Explicit Roles (com.glide.explicit_roles) plugin.
  2. Note the following errors in the localhost logs:
2016-05-04 16:15:44 (628) worker.1 worker.1 SEVERE *** ERROR *** java.lang.StackOverflowError
org.mozilla.javascript.JavaScriptException: java.lang.StackOverflowError
at org.mozilla.javascript.JavaScriptException.wrapException(JavaScriptException.java:94)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:301)
at org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1227)
at org.mozilla.javascript.gen.c4923.call(sys_trigger.80ab4bff9383120057dcdc71967ffb02:1)
at org.mozilla.javascript.gen.c4923.exec(sys_trigger.80ab4bff9383120057dcdc71967ffb02)
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.Evaluator.evaluatePossiblePrefixedString(Evaluator.java:192)
at com.glide.job.RunScriptJob.evaluateScript(RunScriptJob.java:158)
at com.glide.job.RunScriptJob.execute(RunScriptJob.java:84)
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)

2016-05-04 16:15:44 (653) worker.1 worker.1 SEVERE *** ERROR *** JavaScript evaluation error on:
GlideSecurityManager.fixDefaultRoles();var jobGR = new GlideRecord('sys_trigger');jobGR.addQuery('name',
'Fix Default Roles on ACLs');jobGR.query();if (jobGR.next()) { gs.print ('Setting the scheduled job for
fixing the default roles to ready state'); jobGR.setValue('state', '0'); jobGR.update();}else
{ gs.print('Scheduled job for fixing the default roles is missing!');}
Root cause of JavaScriptException: java.lang.StackOverflowError

java.lang.StackOverflowError
at com.glide.role_management.RoleManagementHandler.preventDups(RoleManagementHandler.java:560)
at com.glide.role_management.RoleManagementHandler.handleUserHasRole(RoleManagementHandler.java:151)
at com.glide.role_management.RoleManagementHandler.handleDBA(RoleManagementHandler.java:109)
at com.glide.role_management.RoleManagementListener.onExecuteUseInhCount(RoleManagementListener.java:127)
at com.glide.role_management.RoleManagementListener.onExecute(RoleManagementListener.java:91)
at com.glide.db.DBAction.processListeners(DBAction.java:154)
at com.glide.db.DBAction.executeAndReturnException(DBAction.java:171)
at com.glide.script.GlideRecordITable.insert(GlideRecordITable.java:116)
at com.glide.script.GlideRecord.insert(GlideRecord.java:4399)
at com.glide.script.GlideRecord.insert(GlideRecord.java:4330)
at com.glide.sys.security.ContextualSecurityManager.getExplicitRole(ContextualSecurityManager.java:326)
at com.glide.sys.security.ContextualSecurityManager.fixExplicitRoles(ContextualSecurityManager.java:300)
at com.glide.sys.security.ContextualSecurityManager.load(ContextualSecurityManager.java:296)
at com.glide.sys.security.UserRoleResolver.resolveUserRoleForCSM(UserRoleResolver.java:16)
at com.glide.sys.User.loadUserRolesForCSM(User.java:1932)
at com.glide.sys.User.load(User.java:903)
at com.glide.sys.User.loadFromID(User.java:710)
at com.glide.sys.User.getUserByID(User.java:297)
at com.glide.sys.User.getUserByID(User.java:279)
at com.glide.catalog.db.UserItemsCacheableManager.getUserFlushKey(UserItemsCacheableManager.java:43)
at com.glide.catalog.db.UserItemsCacheableManager.getStaleCacheElements(UserItemsCacheableManager.java:82)
at com.glide.catalog.db.StaleUserCacheFinder.getStaleCacheElements(StaleUserCacheFinder.java:34)
at com.snc.application.caching.AbstractStaleCacheListener.getStaleElements(AbstractStaleCacheListener.java:70)
at com.snc.application.caching.AbstractStaleCacheListener.onExecute(AbstractStaleCacheListener.java:53)
at com.glide.db.DBAction.processListeners(DBAction.java:154)
at com.glide.db.DBAction.executeAndReturnException(DBAction.java:171)
at com.glide.script.GlideRecordITable.insert(GlideRecordITable.java:116)
at com.glide.script.GlideRecord.insert(GlideRecord.java:4399)
at com.glide.script.GlideRecord.insert(GlideRecord.java:4330)
at com.glide.sys.security.ContextualSecurityManager.getExplicitRole(ContextualSecurityManager.java:326)
at com.glide.sys.security.ContextualSecurityManager.fixExplicitRoles(ContextualSecurityManager.java:300)
at com.glide.sys.security.ContextualSecurityManager.load(ContextualSecurityManager.java:296)
at com.glide.sys.security.UserRoleResolver.resolveUserRoleForCSM(UserRoleResolver.java:16)
at com.glide.sys.User.loadUserRolesForCSM(User.java:1932)
Service Management Designer

PRB669179

Service Management Core Facilities Service Management - Templates are not usable when changing language If not already installed, install the Facilities Service Management and I18N: French Translations plugins.
  1. Navigate to Facilities > Catalog &amp; Knowledge > Facilities Request Templates.
  2. From the list of Templates, open one of the records.
  3. Set the language to French.
See the page is broken, and several errors are shown on the screen.
Service Mapping

PRB668135

Service Mapping logging debug messages when MID Server debug is disabled
Service Mapping

PRB668827

History - incorrect graph When the user views history one minute ago on business services, they are getting incorrect data.
Service Mapping

PRB669743

Service Mapping selects a wrong default MID Server When defining a default MID Server using mid.server.rba_default, Service Mapping picks up the defined MID as a potential MID, even if that server does not have SM capability.
  1. Define at least 2 MID Servers on an instance (MID1, MID2).
  2. Add SM capability to MID1.
  3. Add an IP range to MID1.
  4. Set MID2 as default MID, using the mid.server.rba_default MID parameter.
  5. Create BS with an entry point outside of MID1's range.
Note MID2 is selected for the Discovery task, even though no MID Server should be selected.
Service Mapping

PRB671441

MID upgrade occasionally fails due to lock on DLL used by Service Mapping (log4net.dll) This occurs when there were multiple MID Servers on the same server or MID Servers and the legacy SW collector. Since the WMI collector is shared by both MIDs, it may be that once we stop the service, the other MID will start it again and possibly lock the DLL of the first MID.
Service Mapping

PRB673960

BaseEndpointFullData calls isManualConnection, isTrafficBased even when the source ID is null During the opening of the Discovery log, isManualConnection is called from BaseEndpointFullData with a null source ID. As a result, cmdb_rel_ci is queried with type only, which may cause large result sets in case there are many relations in this table. Calling this method, as well as isTrafficBased, is unnecessary when the source ID is null. They can both be skipped, which will improve performance in some cases. Open the Discovery log. This triggers a call to EndpointFullData with null source and target IDs.
Service Portal

PRB674248

On the Service Portal 'Export URL' (e.g., &PDF) is failing and preventing export of attached items Certain types of attachments cannot be downloaded from Service Portal forms.
  1. Attach a PDF to a record.
  2. Try to click it.
Nothing happens.
Service Portal

PRB674262

Errors processing Order Guide Rule Bases, dependent items are not shown
  1. In the Service Portal, bring up /sp?id=sc_cat_item_guide&sys_id=6690750f4f7b4200086eeed18110c761 (new hire order guide).
  2. See errors in logs.
Service Portal

PRB676622

NG shared components, Service Portal Configuration Pages Branding editor does not load without a default portal specified
  1. Disable the default portal.
  2. Go to the branding editor.
  3. Note the UI is unusable.
Skills Mgmt / Timecards

PRB647489

KB0584813

Skills Management When adding a member to a group with existing skills, the skills are assigned but with the 'Inherited from' field not set sys_user_grmember Business Rules "Group Member Add - Skills" and "Group Member Delete - Skills" refer to a non-exiting field, "granted_by", in the [sys_user_has_skill] table. As a result, a user removal from any group removes all skills from that user, even if those skills were not granted to the group for which membership is revoked. Failure of "Group Member Delete - Skills"
  1. Activate "Skills Management" plugin with demo data.
  2. Check that beth.anglin is member of Service Desk and Hardware groups.
  3. Grant Skill "Backoffice" to Service Desk group. The user beth.anglin will get the skill.
  4. Grant Skill "Apple Computer" to Hardware group. The user beth.anglin will get the skill.
  5. Remove beth.anglin from Hardware group.
Expected result: User should loose the skill "Apple Computer" only.

Actual: Use loses all skills even granted by group "Service Desk" where he still has membership. Failure of "Group Member Add - Skills"

  1. Repeat steps 1-5 from above. The starting point is that beth.anglin does NOT have any skills + no membership in "Hardware".
  2. Add beth.anglin to "Hardware".
Expected result: sys_user_has_skill record with "Inherited from" populated as "Hardware" should appear.

Actual: sys_user_has_skill record appears, but with "Inherited from" empty.

SLA

PRB669343

Service Portfolio Management - SLA Commitments, Vendor Ticketing, SLA Timeline Service Offering SLAs only attach if the Service Offering is populated into the Configuration Item field on the associated task If a user has activated the Service Portfolio Management - SLA Commitments plugin, and they follow the instructions for configuring it in the wiki, the Service Offering SLA will only be attached to the incident if the associated Service Offering is populated as the Configuration Item (cmdb_ci) in the associated task record. There is a Service Offering (service_offering) reference field available on the task, but if it used, the Service Offering SLA will not attach.
  1. Activate the Service Portfolio Management - SLA Commitments plugin
  2. Configure the Service Offering SLA, Service Commitment, and Service Offering per the instructions in the wiki.
  3. Personalize the incident form to add the Service Offering field to the form.
  4. Create a new incident which meets the conditions of your Service Offering SLA, and populate the Service Offering field with the Service Offering and save it.
  5. ISSUE: The Service Offering SLA will not be attached as expected.
  6. Now update the incident, and populate the Service Offering into the Configuration Item field (cmdb_ci) and save it.
  7. Your Service Offering SLA will now attach.
UI Policy/Client Script

PRB658197

Eureka / Oracle: UI action visibility is opposite of expected behavior On a Eureka instance with Oracle, setting UI action visibility to "include" causes the UI action to be hidden from a view. Setting the visibility to "exclude" causes the UI action to show in a view.
  1. Create a new UI Action and make it a list banner button using default settings.
  2. Navigate to the list for the table where you created the UI Action. The button appears in the list.
  3. Go back to the UI action and click Edit in the related list for UI Action Visibility
  4. Select Default View from the list and add it. The default operation is Include.
  5. Go back to the list. The button does not show up. This is opposite from what will happen on a normal Eureka Patch 12 Instance.
  6. Go back to the UI action and change the action visibility to Exclude.
  7. Go back to the list. The button shows up.
Update Sets

PRB674866

Reparenting of existing table via update set works when it should not When an update set was applied to change the existing table table u_cmdb_ci_scanner and make it extend cmdb_ci, the reparenting seemed to work. It should not have. Note that the logs show a warning and error (see Steps to Reproduce). This can cause data loss when a table is incorrectly reparented by an update set, for instance when it already has a parent.
  1. In the target instance:
    1. Create a stand alone table named "u_my_extending_table" (initially, this table will not extend anything).
  2. In the source instance:
    1. Create an update set and set it as current.
    2. Create a table named "u_my_extending_table" (it is important that the table name is the same as target). Make this table extend CMDB_CI.
    3. Complete the update set.
  3. Back on the target instance:
    1. Verify table "u_my_extending_table" does not extend anything yet.
    2. Retrieve and commit the update set created in step 2.
    3. Commit logs will show a warning with the message "Prevented attempt to reparent u_cmdb_ci_scanner, from null, to cmdb_ci " or something similar. You will also see this error in the localhost logs.
    4. Verify table "u_my_extending_table" again after committing the update set. In ss_db_object, it now shows that it extends from cmdb_ci. Checking the DB, table schema, etc. confirms that the reparenting actually took place.
    Warning and error:
    2016-04-29 05:59:42 (425) Committing update set: <name of update set> SYSTEM WARNING ***
      WARNING *** Prevented attempt to reparent u_cmdb_ci_scanner, from null, to cmdb_ci 
    2016-04-29 05:59:42 (476) Committing update set: <name of update set> SYSTEM SEVERE
      *** ERROR *** removeChild - null 
    java.lang.reflect.InvocationTargetException 
    [ ... ]
    at com.glide.update.loader.DBObjectUpdateLoader.makePayloadParentMatchDBParent(DBObjectUpdateLoader.java:164) 
    [ ... ]
    Caused by: org.w3c.dom.DOMException: NOT_FOUND_ERR: An attempt is made to reference a node in a context where it does not exist. 
    [ ... ]
    
Update Sets

PRB676814

"Submit and make current" UI action on update sets is not updating the update set selector "Submit and make current" UI action on update sets is not updating the update set selector in the top right until refresh.
  1. Create a new update set.
  2. Click the UI action Submit and make current.
This is not updating the Selection under Settings > Developer > Update Set (top right).
Upgrade Engine Issues

PRB668114

sys_choice for extended tables are being incorrectly detected as collisions During plugin activation, new sys_choice entries are being skipped during table creation if the base table has an entry for sys_update_xml.
Usage Analytics

PRB670106

Access handler blocks licensing count configuration creation Count configurations for licenses are not created because they are blocked by the access handler on the count configuration table. This functionality worked as expected in Fuji and Geneva.
  1. Create a license.
  2. Download it.
  3. Look for count configurations.
User Interface (UI)

PRB603337

GlideDialogForm prevents editing text field on form In IE11, triggering a GlideDialogForm via a UI Macro on the incident form prevents the user from editing text fields.
  1. Create a new UI Macro with the following information:
    • Name: add_contact
    • XML:
      <?xml version="1.0" encoding="utf-8" ?>
      <j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide"
        xmlns:j2="null" xmlns:g2="null">
      <g:evaluate var="jvar_guid" expression="gs.generateGUID(this);" />
      <j:set var="jvar_n" value="add_edit_contact_${jvar_guid}:${ref}"/>
      <a id="${jvar_n}" onclick="testPop('${ref}')">
      <img border="0" src="images/icons/task.gifx"
        title="${gs.getMessage('Add/Edit Contact')}"
        alt="${gs.getMessage('Add/Edit Contact')}"/>
      </a>
      
      <script>
      function testPop(){ 
      var dialog = new GlideDialogForm('Add Contact', 'sys_user'); 
      dialog.render(); 
      }
      </script>
      </j:jelly>
  2. Go to the incident form and personalize the dictionary entry of Caller (caller_id).
  3. Remove all attributes and add the following attribute: ref_contributions=add_contact;
  4. On Internet Explorer 11, open an incident record and click on the middle UI Macro next to the caller field. (This is the custom UI Macro we just created. We removed the original UI Macro. If we hover over this UI Macro it should say Add/Edit Contact).
  5. Click on the UI Macro and a GlideDialogForm will open.
  6. Close this form.
Note all text fields cannot be edited.
User Interface (UI)

PRB619776

KB0546762

In Google Chrome, the catalog list collectors "onChange g_filter.setQuery()" apply to only one of multiple fields When multiple list collectors are present on a catalog item and a catalog client script is defined to filter the results using g_filter.setQuery(), the script will apply to only one of the three list collectors in place. Refer to the listed Known Error KB article for details.
User Interface (UI)

PRB628925

Fuji: Broken image icon (red X) displays in Knowledge Base articles in UI15 with IE9 In Fuji using IE9, a red X (broken image) icon appears next to the Image Search magnifying glass in Knowledge form. This issue does not occur in Chrome, Firefox, or IE10 and later. In a Fuji instance with UI15:
  1. Open an IE9 browser.
  2. Edit an existing Knowledge article or create a new one.
Note that a Red X (or broken image icon) appears between the Image label and magnifying glass icon for adding a KB icon.
User Interface (UI)

PRB641039

KB0564457

Lists v2 When creating a module and entering a sysparm_fixed_query in the Arguments field, user cannot export data from the list after using search headers When creating a module and entering a sysparm_fixed_query in the Arguments field, users cannot export data from the list after using search headers. The sysparm_query is not generated correctly. Refer to the listed Known Error KB article for details.
User Interface (UI)

PRB657134

KB0564278

Process flow arrows point in the wrong direction in Hebrew When using right-to-left languages, the process flow is working as expected from right to left, however the arrows in the process flow are in the wrong direction (pointing to right instead of left).
  1. Navigate to System UI > Process Flow.
  2. Using the State field, create a couple of records for the Problem table.
  3. Navigate to Problem > Open.
  4. Configure the Format layout and add Process Flow.
  5. Change the instance language to Hebrew.
  6. Navigate to Problem > Open.
  7. Select any record.
Note that the process flow is pointing to the left.
User Interface (UI)

PRB657491

Hebrew - export form as PDF shows in LTR When exporting a report to PDF in Hebrew, the content is shown incorrectly from left to right, which makes it impossible to read. It needs to be displayed from right to left.
  1. Navigate to Plugins > install the Hebrew language.
  2. Navigate to a report, open it, and right-click to export it to PDF.
Note the content is incorrectly displayed from left to right.
User Interface (UI)

PRB658590

In Geneva UI15 & UI16, form freezes in IE9 if there are a large number of templates available for the form
User Interface (UI)

PRB659008

User Guide ACL preventing user guide images from rendering for non-admin users The sys_attachment read ACL is preventing images from rendering when a non-admin user views the OOB User Guide. In a Geneva Patch 1 instance as any non-admin user:
  1. Open the User Guide.
  2. Click on any document link. Note that images do not render but appear as broken.
  3. Switch user to admin and repeat steps. Note all images render as expected.
User Interface (UI)

PRB659019

Displaying a list of records in a dialog window has scroll issues when the language is Hebrew Users cannot scroll horizontally when there are more columns to display. This works as expected in English.
User Interface (UI)

PRB659442

KB0565097

The Related List Loading > After Form Loads option causes records not to display in related lists in the Default view The System Setting option Related List Loading > After Form Loads causes records not to display in the related lists (Forms, Form Sections, Lists, Related Lists) in the Default view.
  1. Choose the System Setting option Related List Loading > With the Form.
  2. Navigate to System UI > Views > Open the default view record.

    The related lists for Forms, Form Sections, Lists, and Related Lists show a list of records.

  3. Choose the System Setting option Related List Loading > After Form Loads.
The related lists for Forms, Form Sections, Lists, and Related Lists do not display any records.
User Interface (UI)

PRB659771

NG shared components iFrame does not resize correctly for content pages showing forms with Activity Streams A widget can be set to a specific size larger than what the iFrame should show, however the iFrame does not resize to fill.
User Interface (UI)

PRB660190

The data field calendar in Hebrew is displaying incorrectly In a Geneva instance:
  1. Install the Hebrew language plugin, and set the language to Hebrew.
  2. Open a new incident record.
  3. Select one date field to choose the date in the widget.
Note the time is showing from right to left, and after selecting the date, the system shows the date/time incorrectly.
User Interface (UI)

PRB660196

Form View: date field calendar in Hebrew is clipped off Open a calendar widget on a Hebrew form.
User Interface (UI)

PRB660267

Tabs in forms need to be in the right side for Hebrew version
  1. Install the Hebrew language.
  2. Add a few related lists to the incident form.
  3. Set the configuration for 'tabbed-form'.
In Hebrew, the tabs should be to the right side.
User Interface (UI)

PRB665947

g_form.setValue no longer works on currency fields The error 'TypeError: Object doesn't support property or method 'replace' function' will be thrown if it is applied to a currency field.
  1. Make an onChange script on any currency field.
  2. Use g_form.setValue to change the value.
  3. Test the script.
The following node error is thrown:
TypeError: Object doesn't support property
or method 'replace' function.
User Interface (UI)

PRB666020

Lists v2 In Hebrew, group by in list view gets left aligned In Hebrew, group by on 'incident.state' field in list view gets left aligned. This is reproducible in Fuji Patch 11.
User Interface (UI)

PRB666123

Unable to use duration fields as part of SLA conditions (caused by already having a duration type field on the form) When adding a 'duration' type field in one of the conditions field of an SLA Definition (e.g. Start condition), although the field to select the comparison is displayed (e.g. is, greater than, not equal), the fields to enter the duration value to compare with are not shown. This only happens for UI15 (i.e. system property 'glide.ui.doctype' is true) and appears to be related to there being a 'duration' type field already on the form.
  1. Create a new SLA Definition ('contract_sla' table) and choose Incident in the table field.
  2. In Start Condition, add a new condition and select field name Time worked (which is a duration field). No additional fields are displayed to allow you to enter the duration value for that condition.
  3. Configure the form layout and remove the Duration field from the form.
  4. Repeat step 2. The fields to enter the duration value will be shown as expected.
User Interface (UI)

PRB666815

Lists v2 Rows render more slowly in Geneva compared to prior builds Row rendering in Geneva is taking twice as long as it did in Eureka, which is causing list view response times to double.
User Interface (UI)

PRB667422

Breadcrumbs order is wrong when one of the items is in Hebrew When using an instance in Hebrew, on the Project task form, if one of the chain project tasks name is in Hebrew, the breadcrumbs order is incorrect.
User Interface (UI)

PRB668587

Vertical scroll bars are deactivated when navigator and banner are not present in IE11 In a Geneva instance using UI16:
  1. Navigate to a list of records (e.g. incident).
  2. Open a record so that just the content frame is displayed.
  3. Try to scroll vertically on the form by clicking on the scroll bar on the right hand side of the display.
Notice that the scroll bar is visible, but it is deactivated. However, vertical scrolling can be achieved by using a mouse scroll wheel or a tactile touchpad.
User Interface (UI)

PRB673069

NG shared components Presence indicator missing on navpage header if Connect is not enabled Customers who have UI16 enabled but NOT Connect will not see the presence indicator in the nav page header. This only affects the user's avatar in the navpage header.
  1. Upgrade an instance from Fuji to Geneva OR remove the Connect entry in sys_plugins.
  2. Ensure presence is enabled.
  3. Load the navpage.
Notice the green dot is missing. You should still see presence on VTB and on the form activity stream.
User Interface (UI)

PRB673508

TinyMCE HTML Field Editor New attachments with the Tiny MCE Editor using the Insert/Modify image icon can be seen globally Open the email icon from any existing incident, try to attach any image using the Insert/Modify image icon, and cancel the email (i.e. do not send). The attachment can be seen from different incidents when trying to perform the same steps. The problem is that the new inserted attachment rows in the sys_attachment table have Table Name and Table Sys ID as empty.
  1. Navigate to Incident > Open.
  2. Click any incident from the list to edit it.
  3. Click the email icon, and then click the image icon.
  4. Inside the email editor, click the Insert/Modify image icon.
  5. Choose an attachment from the Type LOVNew > Choose File.
  6. Choose any image file from the file list.
  7. Click the Attach button, make sure that the image gets loaded to the screen, and click OK.
  8. Close the email window - do not send the email.
If you try to edit another incident and repeat the steps above after step 5, you will notice that the image field has the attachment that you added in the original incident.

Query the sys_attachment table: https://<instance>/sys_attachment_list.do. The attachments inserted have the Table Name and Table Sys ID as empty.

User Interface (UI)

PRB673920

There is no focus state for tabbed sections and related lists on forms Accessibility features allow other applications such as VoiceOver (enabled by hitting Command+F5 on Mac keyboard to activate the VoiceOver App to identify and get more voice enabled and on screen details and description of fields by tabbing into them within the ServiceNow platform.

In order for VoiceOver to work, ServiceNow needs to assign roles to fields/objects within the user interface so that such applications can access these fields. However, there are a few objects such as related lists within forms when using Tabbed forms where these roles are not getting assigned, thereby rendering such fields/objects unaccessible to VoiceOver and other such applications.

  1. Activate the VoiceOver application by clicking on Command+F5 from a Mac keyboard.
  2. Go to any form within the platform with more than one related list.
  3. Make sure that you are using tabbed forms.
  4. Hit the tab key in the form.
Observe that when you are on related lists, the system skips the remaining related lists on the form and only goes through the fields within the first related list on the form.
Web Services

PRB673025

KB0584795

REST API Provider Following upgrade to Geneva, REST quota rules are added to instances that do not already have any Instances that upgrade to Fuji and then to Geneva receive REST quota rules intended only for instances created on Fuji or later. Refer to the listed Known Error KB article for details.
Workflow

PRB667571

Financial Management, Contract Management com.snc.contract_management wf_workflow_version is overruling the current published workflow version When an instance is upgraded from an earlier version to Geneva, the 'Contract Approval' workflow is being updated with a workflow version that overrules the currently set published version. In a Fuji instance:
  1. Make some updates to the Contract Approval' workflow and publish it.
  2. Upgrade the instance to Geneva.

Other Helsinki Patch 1 information

Service Portal
  • Widget scripting:
    Note: Only client scripts set with the UI type as Both or Mobile run in Service Portal.

Fixes included with Helsinki Patch 1

* 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.