What did I do wrong in this script?

Jessica28
Tera Guru

Hello,

The following script is working fine in Scripts Background.  However, when I put it in onChange, it returns "0" record.

Please let me know what I did wrong?  Thank you

 

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }
    var requestor = g_form.getValue('who_is_this_request_for');

    var gr = new GlideRecord('alm_asset');
    gr.addQuery('assigned_to', requestor);
    gr.addQuery('asset_tag''!=''');
    gr.query();
    var Count = 0;
    while (gr.next()) {
        Count++;
    }
    alert("Count is " + Count);
}

 

1 ACCEPTED SOLUTION

Community Alums
Not applicable

Hi @Jessica28 ,

 

Example:

 

Script include:

var Test = Class.create();
Test.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    test: function() {

        var callerId = this.getParameter('callerId');
        var Count = 0;
        var gr = new GlideRecord('alm_asset');
        gr.addQuery('assigned_to', callerId);
        gr.addEncodedQuery('asset_tagISNOTEMPTY');
        gr.query();
        if(gr.next()) {
            Count++;
        }
        return Count;
    },
    type: 'Test'
});
 
Client Script:
 var requestor = g_form.getValue('caller_id');
    var ga = new GlideAjax("Test");
    ga.addParam('sysparm_name', 'test'); //Method
    ga.addParam('callerId', requestor); //Parameters
    ga.getXMLAnswer(getResponse);

    function getResponse(response)
    {
        g_form.setValue('short_description', response);
    }
 
Thanks,
Vikas

View solution in original post

9 REPLIES 9

Community Alums
Not applicable

Hi,

 Please use the script include and client script.

VikasShukla2_0-1692950211282.pngVikasShukla2_1-1692950236278.png

check the above example.

 

Thanks,

Vikas Shukla

Hello @Community Alums 

Thank you for capturing the screenshots.  It was extremely helpful using it as a guide.  

 

1. What is the the difference if I call the script include from Catalog Client Script or Client Script?

2. What have I done wrong this time to the code that made it return "null" value?

 

Thank you

 

Jessica28_0-1693232750875.png

 

Jessica28_1-1693232810786.png

 

 

 

 

 

 

 

Community Alums
Not applicable

Hi @Jessica28 ,

 

Example:

 

Script include:

var Test = Class.create();
Test.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    test: function() {

        var callerId = this.getParameter('callerId');
        var Count = 0;
        var gr = new GlideRecord('alm_asset');
        gr.addQuery('assigned_to', callerId);
        gr.addEncodedQuery('asset_tagISNOTEMPTY');
        gr.query();
        if(gr.next()) {
            Count++;
        }
        return Count;
    },
    type: 'Test'
});
 
Client Script:
 var requestor = g_form.getValue('caller_id');
    var ga = new GlideAjax("Test");
    ga.addParam('sysparm_name', 'test'); //Method
    ga.addParam('callerId', requestor); //Parameters
    ga.getXMLAnswer(getResponse);

    function getResponse(response)
    {
        g_form.setValue('short_description', response);
    }
 
Thanks,
Vikas