Get Display Value for Client Script

KristyS
Kilo Guru

I've created a client script to populate fields onChange from a custom table.   The field is returning a sys_id and not locating the vendor name.  

How can I return the display value for the sys_id

Here is my client script:


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

        var existingVendor = g_form.getValue('existing_vendor');
 
    var venRec = new GlideRecord ('u_business_impact_analysis');   //Look at BIA table and find existing vendor
    venRec.addQuery('u_vendor_name', existingVendor);
    venRec.query(mycallback);
   
  function mycallback(venRec){
  while (venRec.next()){
     
                //Populate form txt fields from BIA table.
                            g_form.setValue('system_owner', venRec.u_system_owner);
                            g_form.setValue('asset_type', venRec.u_asset_type);
                            g_form.setValue('product_scope', existingVendor);  
                  }

  }    
 
}

Table:

The Vendor Name is a string field for when a new vendor is entered and i'm attempting to retrieve the display value of this field in the client script.  

find_real_file.png

1 ACCEPTED SOLUTION

KristyS
Kilo Guru

I found a solution to get the display values as needed.     I had to set the value for each variable in an if statement.



Thank you for your assistance.  



find_real_file.png


View solution in original post

11 REPLIES 11

SanjivMeher
Kilo Patron
Kilo Patron

Hi Kristy,



You need to use getreference, since it is a refernece field, the field stores the sys_id value.



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


        var existingVendor = '';



var vendor= g_form.getReference('existing_vendor', doAlert);


function doAlert(vendor) { //reference is passed into callback as first arguments


  existingVendor = vendor.name;


}




    var venRec = new GlideRecord ('u_business_impact_analysis');   //Look at BIA table and find existing vendor
    venRec.addQuery('u_vendor_name', existingVendor);
    venRec.query(mycallback);



  function mycallback(venRec){
  while (venRec.next()){



                //Populate form txt fields from BIA table.
                            g_form.setValue('system_owner', venRec.u_system_owner);
                            g_form.setValue('asset_type', venRec.u_asset_type);
                            g_form.setValue('product_scope', existingVendor);  
                  }


  }    
 
}



Please mark this response as correct or helpful if it assisted you with your question.

The vendor name did not return anything nor populated the fields.


Hi Kristy,



Can you put some alert? which table does the existing_vendor field points to?



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


        var existingVendor = '';



var vendor= g_form.getReference('existing_vendor', doAlert);


function doAlert(vendor) { //reference is passed into callback as first arguments


  existingVendor = vendor.name;


  alert(existingVendor);


}


alert('--------------'+existingVendor);



    var venRec = new GlideRecord ('u_business_impact_analysis');   //Look at BIA table and find existing vendor
    venRec.addQuery('u_vendor_name', existingVendor);
    venRec.query(mycallback);



  function mycallback(venRec){
  while (venRec.next()){



                //Populate form txt fields from BIA table.
                            g_form.setValue('system_owner', venRec.u_system_owner);
                            g_form.setValue('asset_type', venRec.u_asset_type);
                            g_form.setValue('product_scope', existingVendor);  
                  }


  }    
 
}



Please mark this response as correct or helpful if it assisted you with your question.

The existing vendor is a form variable that populates to the Vendor Name field on the 'u_business_impact_analysis' table.



Kristy Stevens