Approval getting "Update failed" errors from portal for one user

Kanna12
Tera Expert

Hello Every one,

 

My Manager not able to approve the any requests from the portal, even though he have "approva_user " role assigned.
I checked for another managers, they are able to approve successfully from portal. I am not sure why only one person not able approve if he have required roles. I checked in Approval info widget as well.

 

Please find below script:

(function() {
    data.actionPreventedMsg = gs.getMessage("Update failed");
    var gr = $sp.getRecord();
    if (gr == null || !gr.isValid()) {
        data.isValid = false;
        return;
    }
   
    data.isValid = true;
    data.isMine = isApprovalMine(gr);
    var userApprovalAccess = gs.hasRole("approval_admin") || (gs.hasRole("approver_user") && data.isMine);
   
    var approverDisplay = gr.approver.getDisplayValue();
    if (!data.isMine && approverDisplay)
        data.approverDisplay = approverDisplay;
   
    if (approverDisplay) {
        data.approvedMsg = gs.getMessage("Approved by {0}", approverDisplay);
        data.rejectedMsg = gs.getMessage("Rejected by {0}", approverDisplay);
    } else {
        data.approvedMsg = gs.getMessage("Approved");
        data.rejectedMsg = gs.getMessage("Rejected");
    }
    if (input && input.op && userApprovalAccess) {
        gr.state = input.op;
        data.updateID = gr.update();
        if (GlideStringUtil.nil(data.updateID)) {
            // update failed so fetch again for correct values
            gr = $sp.getRecord();
        }
        data.op = "";
    }

    var fields = $sp.getFields(gr, 'state,sys_created_on');

    if (gr.sys_mod_count > 0)
        fields.push($sp.getField(gr, 'sys_updated_on'));

    data.fields = fields;
    data.state = gr.state.toString();
    data.sys_updated_on = gr.sys_updated_on.toString();
    data.sys_id = gr.getUniqueValue();
    data.table = gr.getTableName();
    var record = getRecordBeingApproved(gr);
    data.label = record.getLabel();
    data.approvedStatusMsg = gs.getMessage("{0} has been approved", record.number);
    data.esignature = {
        username:  gs.getUserName(),
        userSysId: gs.getUserID(),
        e_sig_required: checkESig(gr)
};
 
Any inputs on this please.
    function checkESig(approvalGR) {
        var esigRegistryGR = new GlideRecord("e_signature_registry");
        if (!esigRegistryGR.isValid())
            return false;
       
        var table = approvalGR.getValue("source_table");
        if (!table)
            table = approvalGR.sysapproval.sys_class_name;
        if (!table)
            return false;
       
        esigRegistryGR.addQuery("enabled", "true");
        esigRegistryGR.addQuery("table_name", table);
        esigRegistryGR.query();
        return esigRegistryGR.hasNext();
    }
   
    function getRecordBeingApproved(gr) {
        if (!gr.sysapproval.nil())
            return gr.sysapproval.getRefRecord();

        return gr.document_id.getRefRecord();
    }
})();
0 REPLIES 0