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.


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

Fixed In

New York

Associated Community Threads

There is no data to report.

Article Information

Last Updated:2019-05-21 11:42:01