User GlideAjax
Native View Code
function checkMandatoryFields() { if (g_form.getValue('doa_type') == '' || g_form.getValue('doa_level') == '') { g_form.setMandatory('doa_type', true); g_form.setMandatory('doa_level', true); g_form.addErrorMessage("Doa Type and Doa Level fields are Mandatory"); return false; //Abort submission } //Call the UI Action and skip the 'onclick' function gsftSubmit(null, g_form.getFormElement(), 'add_doa_approvals'); //MUST call the 'Action name' set in this UI Action } //Code that runs without 'onclick' //Ensure call to server-side function with no browser errors if (typeof window == 'undefined') addApprovals(); //Server-side function function addApprovals() { current.update(); try { var inputs = {}; inputs['irs'] = current; var result = sn_fd.FlowAPI.getRunner().subflow('x_edc_irs.irs_approval').inForeground().withInputs(inputs).run(); var outputs = result.getOutputs(); } catch (ex) { var message = ex.getMessage(); gs.error(message); } action.setRedirectURL(current); }
Workspace Code
function onClick(g_form) { if (g_form.getValue('doa_type') == '' || g_form.getValue('doa_level') == '') { g_form.setMandatory('doa_type', true); g_form.setMandatory('doa_level', true); g_form.addErrorMessage("Doa Type and Doa Level fields are Mandatory"); return false; //Abort submission } else { var usrInfo = new GlideAjax('x_edc_irs.ISRApprovals'); usrInfo.addParam('sysparm_name', 'addApprovals'); usrInfo.addParam('sysparm_user', g_form.getValue("number")); usrInfo.getXML(getBase); function getBase(response) { g_form.save(); } } }
Script Include Name: x_edc_irs.ISRApprovals
var ISRApprovals = Class.create(); ISRApprovals.prototype = Object.extendsObject(global.AbstractAjaxProcessor, { addApprovals: function() { var gr = new GlideRecord("x_edc_irs_case"); gr.addQuery("number", this.getParameter("sysparm_user")); gr.query(); if(gr.next()) { try { var inputs = {}; inputs['irs'] = gr; var result = sn_fd.FlowAPI.getRunner().subflow('x_edc_irs.irs_approval').inForeground().withInputs(inputs).run(); var outputs = result.getOutputs(); } catch (ex) { var message = ex.getMessage(); gs.error(message); } } }, type: 'ISRApprovals' });
How to use gsftSubmit on Workspace ServiceNow
Working Code Asked question February 5, 2025