The Zurich release has arrived! Interested in new features and functionalities? Click here for more

onchange Client script is not working for the script include

pavam
Tera Contributor

Hi, MY catalog form

 

pavam_0-1726233182887.png

 

 

Based on level3 value, level 4  choice list values will be populated.

 

Based on level4 value, level 5  choice list values will be populated.

Based on level5 value, level 6  choice list values will be populated.

 

 

Below is the script include.

 

 BusinessGroup : function(){
         
         
          gs.log(" level3 in si"+level3)
         var choices=[];
         var gr= new GlideAggregate('u_ehsvelocities');
         gr.groupBy('u_business_group');
         gr.query();
         
         while (gr.next()){
            gs.log(" level3 in si in loop"+gr.u_business_group);
            choices.push (gr.getValue('u_business_group').toString());

         }
         //return JSON.stringify(choices);
          return 'sys_idIN' +chocies;
    },


        BusinessUnits : function(BusinessGroup){
         gs.log(" level4 business Unit"+ BusinessGroup );
         
         var unitchoices=[];
         var gr= new GlideRecord('u_ehsvelocities');
         gr.addQuery('u_business_group',BusinessGroup);
         gr.query();
         
         while (gr.next()){
            gs.log(" level4 in while loop"+gr.u_business_unit);
          unitchoices.push (gr.getValue('u_business_unit').toString());
         }
         
          return 'sys_idIN' +unitchoices;
    },
     
       WorldArea : function(BusinessGroup, BusinessUnits){

         gs.log("level5 WorldArea " );
         
         var worldareas=[];
         var gr= new GlideRecord('u_ehsvelocities');
         gr.addQuery('u_business_group',BusinessGroup);
         gr.addQuery('u_business_unit',BusinessUnits);
         gr.query();
         while (gr.next()){
            gs.log(" level5 in while loop"+gr.u_world_area);
         worldareas.push (gr.getValue('u_world_area').toString());

   
         }
         
          return 'sys_idIN' +worldareas;
   
    },  

               
   getCountry : function(){

         gs.log("level6 Country " );

         var businessGroup=this.getParameter('sysparm_business_group');
          var businessUnits=this.getParameter('sysparm_business_unit');
          var worldArea=this.getParameter('sysparm_word_area');

         var buflexCountry=[];
         var gr= new GlideRecord('u_ehsvelocities');
         gr.addQuery('u_business_group',businessGroup);
         gr.addQuery('u_business_unit',businessUnits);
         gr.addQuery('u_world_area',worldArea);
         gr.query();
         while (gr.next()){
            gs.log(" level6 in while loop"+gr.u_bu_flex);
         buflexCountry.push(gr.getValue('u_bu_flex').toString());

         }
         
          //return 'sys_idIN' +buflexCountry;
          return buflexCountry.join(',');
 
 
 and below is my client script :
 
function onChange(control, oldValue, newValue, isLoading) {
   if (isLoading || newValue == '') {
      return;
   }
 alert("1");
   //Type appropriate comment here, and begin script below
   var level3BusinessGroup=g_form.getValue('location_of_role_assignment_as_in_the_location_tree_level_3');
    var level4Businessunit=g_form.getValue('location_of_role_assignment_as_in_the_location_tree_level_4');
    if(!level3BusinessGroup||level4Businessunit){

        return;
    }
  alert("before entering the loop");
    var ga= new GlideAjax('GetBusinessUnitsByBusinessGroup');
    ga.addParam('sysparm_name','getCountry');
    ga.addParam('sysparm_business_group','level3BusinessGroup');
    ga.addParam('sysparm_business_unit','level4Businessunit');
    ga.addParam('sysparm_word_area',newValue);

    ga.getXMLAnswer(function (response){
       
        alert("in response");
        var buflexCountry=response.split(',');
        g_form.clearOptions('u_bu_flex');
        g_form.addOption('u_bu_flex','','--select Country--');
         alert("ibefore for");
        for(var i=0;i<buflexCountry.length;i++){
            g_form.addOption('u_bu_flex',buflexCountry[i],buflexCountry[i]);
            alert("in for");

        }
        alert("after for");
    });
    
}
 
 
 and custom table is
 
pavam_1-1726233954029.png

 

 

and the fields in the Service catalog is 

 

pavam_2-1726234046106.png

 

 

 

level4 ,  the field type i have given is Select box, to populate the list of values on that field.

 

 

 I dont know , where i have made mistake.

 

method in Script include is executing , but the result is not updating on the Service catalog form.

 
 
5 REPLIES 5

pavam
Tera Contributor

The above screen sheet is the custom table.

 and like u said, i kept the variable as select box only to display the list of variable values.

 

 and the code is not working.