0

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