On approving or rejecting approvals via email for HR cases, the HR case record is not being approved although the sysapproval_approval record is marked approved. The workflow is also stuck in the Approval Activity.
When doing an update to the HR case, the approval will be processed, and workflow continues.
The following error occurs:
WARNING * WARNING * Get for non-existent record: sn_hr_core_case_payroll:72b928b3dbd9d788ea7ba7835b9619e5, initializing.
This error occurs because the hr_Utils script include is sometimes initializing as "system" instead of the target user from the email when approvals are approved via email.
Steps to Reproduce
On a production instance:
Create a case that requires approval from a user who cannot read the case otherwise.
Have the user approve the case via email.
Note that the case might not move to approved until an update is made to the record.
Add a check/reinitialize to the top of the Restrict Query business rule.
var userId = gs.getUserID();
if (userId !== hr_Utils.userID)
Related Problem: PRB1278805