Notifications

9 views

Description

The server script against the 'Approvals' menu item contains the following 'else if' statement:

} else if (rec.getRecordClassName() == 'sn_customerservice_registration') {
a.short_description = rec.getDisplayValue();
a.number = rec.getDisplayValue("account");
a.__table = rec.getTableName();
a.__page = 'publication';
a.type = 'record';
}

This is picking up on the previously queried records for [sysapproval_approver] where the Source Table is [sn_customerservice_registration]. These approval records are those created for 'Pending Registration Requests' associated with the 'Customer Service' application (com.sn_customerservice plugin).

This results in the pending approvals displaying under the 'Approvals' menu in the CSM application. However, if a record in the menu is selected, the 'Article not found' message displays in the UI. This is due to the system attempting to find a record in the [sn_customerservice_registration] table with the same sys_ID of the record that is in the [sysapproval_approver] table.

Steps to Reproduce

 

1) Login as administrator.
2) Activate the 'Customer Service' (com.sn_customerservice) plugin.
3) Activate the 'Approvals' Menu Item under 'CSM Header Menu' that is used by the CSM portal.
4) Look at the Pending Registration Requests [sn_customerservice_registration] table to check for an existing 'Pending' records. If none is present, create a new one.
5) View the requests in the [sysapproval_approver] table with 'Source table' column as [sn_customerservice_registration].
6) See who the Approver is and impersonate this user.
7) Go to the CSM portal and check that the 'Approvals' menu item displays with pending registrations under it.
8) Click on one of the pending registration.

Observe a blank landing page and the 'Article not found' message. The URL of the page trying to open is on the [sn_customerservice_registration] table, but using the sys_ID of the record retrieved from the [sysapproval_approver] table.

Workaround

This problem is under review and targeted to be fixed in a future release.You can Subscribe to this article to receive notifications when more information will become available.

As a workaround, in order to approve the records, the else-if script section needs to be altered as listed below in order to take the user to the 'sysapproval_approver' table instead:

} else if (rec.getRecordClassName() == 'sn_customerservice_registration') {
a.short_description = rec.getDisplayValue();
a.number = rec.getDisplayValue("account");
//a.__table = rec.getTableName();
a.__page = 'csm_approval';
a.type = 'record';
}


Related Problem: PRB1323917

Seen In

London Patch 4 Hot Fix 2

Intended Fix Version

New York

Safe Harbor Statement

This "Intended Fix Version" information is meant to outline ServiceNow's general product direction and should not be relied upon in making a purchasing decision. The information provided here is for information purposes only and may not be incorporated into any contract. It is not a commitment, promise, or legal obligation to deliver any material, code, or functionality. The development, release, and timing of any features or functionality described for our products remains at ServiceNow's sole discretion.

Associated Community Threads

There is no data to report.

Article Information

Last Updated:2019-05-21 11:42:01
Published:2019-03-22