The CreatorCon Call for Content is officially open! Get started here.

getting null value in client script

jack33
Tera Expert

I am checking unique catalog item name in table sc_cat_item and always getting null

wrote onchange catalog client script on variable create_catalog_item and client callable SI

Here is the code

Client script:

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

  var cat_name = g_form.getValue('create_catalog_name');
	alert('cat_name'+cat_name);
var ga = new GlideAjax('UniqueCatalogName'); 
ga.addParam('sysparm_name','getName');
ga.addParam('sysparm_cat_name',cat_name);
ga.getXML(getCatName);
	
function getCatName(response) {
	var answer = response.responseXML.documentElement.getAttribute("answer");
	alert('answer'+answer); //getting null
    if(answer == 'true'){
		g_form.showErrorBox('create_catalog_name','This name is already available,please select other name');
		g_form.clearValue('create_catalog_name');
}}}

Script include:

var UniqueCatalogName = Class.create();
UniqueCatalogName.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    getName: function(){

        var cat_name = this.getParameter('sysparm_cat_name');
        var trimed_name = cat_name.trim();
        var flag = false;
        gs.log('cat_name' + cat_name + ' trimed name' + trimed_name);
        var avil_name = new GlideRecord('sc_cat_item');
        avil_name.addEncodedQuery('name=' + cat_name + '^ORname=' + trimed_name);
        avil_name.query();

        if (avil_name.next()) {
            flag = true;
        } else {
            flag = false;
        }
        return flag;	
    },

    type: 'UniqueCatalogName'
});

 

2 ACCEPTED SOLUTIONS

U_Viswa
Mega Sage

Hi Jack,

 

issue with your scriptinclude function name "getName" change with something like "getNameOfCatalog".

 

This would fix your issue. Please let me know after trying.

Thanks

Viswa

View solution in original post

Thank you Viswa, it worked

View solution in original post

9 REPLIES 9

Hi Jack,

Hope You're doing good.  Have you tried changing script include function name.

Make sure you update function name in client script also.

 

Thanks

Viswa

 

Thank you Viswa, it worked

Hi Jack,

 

Good to hear..

 

Thank you

Sai Kumar B
Mega Sage

@jack33 

Can you try the following code?

 

//Client script:

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

  var cat_name = g_form.getValue('create_catalog_name');
	alert('cat_name'+cat_name);
var ga = new GlideAjax('UniqueCatalogName'); 
ga.addParam('sysparm_name', 'getName');
ga.addParam('sysparm_cat_name', cat_name);
ga.getXMLAnswer(getCatName);
	
function getCatName(response) {

	alert('answer'+response);
    if(response == 'true'){
alert('This name is already available, please select another name');
		g_form.showFieldMsg('create_catalog_name', 'This name is already available,please select other name', 'error');
		g_form.clearValue('create_catalog_name');
}
}
}

//Script include:

var UniqueCatalogName = Class.create();
UniqueCatalogName.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    getName: function(){

        var cat_name = this.getParameter('sysparm_cat_name');
        var trimed_name = cat_name.trim();
        var flag = 'false';
        gs.log('cat_name' + cat_name + ' trimed name' + trimed_name);
        var avil_name = new GlideRecord('sc_cat_item');
        avil_name.addEncodedQuery('name=' + cat_name + '^ORname=' + trimed_name);
        avil_name.query();
        if (avil_name.next()) {
            flag = 'true';
        } 
        return flag;	
    },

    type: 'UniqueCatalogName'
});

 

User700674
Tera Contributor

Its not working for me and I am returning date