Querying Another table from Client Script

nehapateria
Kilo Expert

Hi Members,

I have a simple query. I am trying to query 'sys_user' table from my Custom form. I am querying 'user_id'   of my current form to 'user_name' of 'sys_user' table. If the record is found then a user must get an alert that the same UserId exists in the system. For that I have written the below Client Script. Issue is :- I am getting a below error message in the 'user_id' field.

Error:-

onChange script error: TypeError: GlideRecord is not a constructor function (){var o=i(m,arguments);return l.apply(n,o)}

Please Suggest.

Thanks,

Neha

function onChange(control, oldValue, newValue, isLoading, isTemplate) {

                              if(isLoading)

                              {

                                                              return;

                              }

                              var gr1 = new GlideRecord('sys_user');

                              gr1.addQuery('user_name', newValue);

                              gr1.query();

                              myFunc();

                             

                              function myFunc()

                              {

                                while(gr1.next())

                                    alert('USER ID already exists');

                              }

    //Type appropriate comment here, and begin script below

   

}

1 ACCEPTED SOLUTION

Hi Neha ,



Try something as below in script include:-



var sysid = this.getParameter('sysparm_sys_id')   ;
var gr1 = new GlideRecord('sys_user');


                              gr1.addQuery('sys_id', sysid )


                              gr1.query();
                         


                                while(gr1.next())


                                    gs.log('user exists');


                                      return true;
                              }




Mark Correct if it solved your issue or hit Like and Helpful if you find my response worthy.


Thanks,
Deepa


View solution in original post

39 REPLIES 39

No it didn't help. FYI - Mine is Scoped Application


For Scoped Application Glide AJax is an option Please use it.



write your client script in script include and call it in client script.


kalp_d123
Tera Expert

Hi Neha,



Could you please check with below script,



function onChange(control, oldValue, newValue, isLoading, isTemplate) {


    if (isLoading || newValue === '') {


          return;


    }



                              var gr1 = new GlideRecord('sys_user');


  alert('New Value '+newValue);


                              gr1.addQuery('sys_id', newValue);


                              gr1.query();


                              myFunc();


                           


                              function myFunc()


                              {


                                while(gr1.next())


                                    alert('USER ID already exists');


                              }




    //Type appropriate comment here, and begin script below


   


}


Issue is not with the gr1.addQuery. The issue is



onChange script error: TypeError: GlideRecord is not a constructor function (){var o=i(m,arguments);return l.apply(n,o)}



Yes right, becoz glide record cannot access tables which are out of scope application through client script. for this purpose we use script include and glide ajax in client script.