catalog client script requested for

levino
Giga Guru

Hi there

this client script works,  when i changed the requested for the first time, but then when i change again it always evaluates to true.

i think i need to clear value but not sure where

 

Thanks

Levino

 

 

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }

    var thisUser = g_form.getValue("requested_for");

    var encoded_query = 'u_name=' + thisUser + '^u_status=approved' + '^u_clearance_name=govt';
    var gAj = new GlideAjax('global.GeneralRecordRetrievalUtil');
    gAj.addParam('sysparm_name', 'returnSingleFieldValuesAJAX');
    gAj.addParam('sysparm_table', 'u_security_clearance');
    gAj.addParam('sysparm_rtnField', 'sys_id');
    gAj.addParam('sysparm_encodedQry', encoded_query);
    gAj.getXML(function(response) {
        var bs = response.responseXML.getElementsByTagName("result");
        var thisSysid = bs[0].getAttribute('sys_id');
        if (!thisSysid) {
            g_form.clearValue('thisUser');
        }else{
			g_form.setMandatory('evidence_of_clearance',true);
		}
    });
}

 

3 REPLIES 3

Shruti
Mega Sage
Mega Sage
function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }

    var thisUser = g_form.getValue("requested_for");
    g_form.clearValue('requested_for');
    var encoded_query = 'u_name=' + thisUser + '^u_status=approved' + '^u_clearance_name=govt';
    var gAj = new GlideAjax('global.GeneralRecordRetrievalUtil');
    gAj.addParam('sysparm_name', 'returnSingleFieldValuesAJAX');
    gAj.addParam('sysparm_table', 'u_security_clearance');
    gAj.addParam('sysparm_rtnField', 'sys_id');
    gAj.addParam('sysparm_encodedQry', encoded_query);
    gAj.getXML(function(response) {
        var bs = response.responseXML.getElementsByTagName("result");
        var thisSysid = bs[0].getAttribute('sys_id');
        if (!thisSysid) {
            g_form.clearValue('requested_for');
        }else{
			g_form.setMandatory('evidence_of_clearance',true);
		}
    });

Vishal Birajdar
Giga Sage

Hi @levino 

 

If possible can you share the script include as well...!!

 

 

Vishal Birajdar
ServiceNow Developer

I know one thing, and that is that I know nothing.
- Socrates

returnSingleFieldValuesAJAX: function()
    /************************************************************************
     * returnSingleFieldValuesAJAX retrieves values from a given table using *
     * an encoded query string, and returns the list of values from one      *
     * specified field as an AJAX XML format.                                *
     * NOTE: Client Script call should be written in the following format:   *
     *    var gAj = new GlideAjax('GeneralRecordRetrievalUtil');       *
     *    gAj.addParam('sysparm_name','returnSingleFieldValuesAJAX');        *
     *    gAj.addParam('sysparm_table','tablename');                         *
     *    gAj.addParam('sysparm_rtnField','fieldname');                      *
     *    gAj.addParam('sysparm_encodedQry',encoded_query);                  *
     *    gAj.getXML(function (response){ var bs =                           *
     *               response.responseXML.getElementsByTagName("result");    *
     *	   g_form.setValue('fieldname',bs[0].getAttribute('fieldname'));}); *
     ************************************************************************/
    {
        var result = this.newItem("result");
        var snTable = this.getParameter('sysparm_table'); //Supply tablename to query
        var snRetField = this.getParameter('sysparm_rtnField'); //Supply the fieldname to return results from
        var snEncodedQry = this.getParameter('sysparm_encodedQry'); //Supply the encoded Query to filter records
        var rtn = '';
        try {

            if (snTable != '' && snEncodedQry != '') {
                var encQry = new GlideRecord(snTable);
                encQry.addEncodedQuery(snEncodedQry);
                encQry.query();
                while (encQry.next()) {
                    rtn = encQry.getElement(snRetField).toString();
                }
            }
        } catch (e) {
            alert(e);
        }
        //gs.log("returnSingleFieldValuesAJAX result: " + snRetField + " value: " + rtn);
        result.setAttribute(snRetField, rtn);
    },