We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

Help pulling info from Reference Field on Record Producer

Nic Omaha
Tera Guru

Hello, 

I have a record producer where the individual chooses an event to participate in on a reference field. Let's just say this field is "Event_Interested_In" which is mapped to the custom table "u_events". As they fill out the form I would like to write a on change client script for another field, lets say "phone" that it checks the event selected and if on that record "u_tshirts_provided" is "True" then a variable on the record producer is "u_tshirt_size" is changed to "true".  Everything I have tried hasn't worked since you can't dot walk on the ui policy. Not sure since this is a producer if maybe I should be using variables somewhere?

 

Here is where I kinda left off

function onChange(control) {
  // Since this is an onChange script, control will always be 'event_interested_in'
  var selectedRecord = g_form.getReferenceRecord('event_interested_in'); // Get selected record from 'event_interested_in'

  // Check if a record is selected and 'u_tshirts_provided' is true 
  if (selectedRecord && selectedRecord.u_t_shirts_provided == 'true') {
    g_form.setValue('shirts', 'true');
  } else {
    g_form.setValue('shirts', '');
  }
}

 

1 REPLY 1

Sandeep Rajput
Tera Patron

@Nic Omaha Please update your script as follows and check if it works for you.

 

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

    //Type appropriate comment here, and begin script below
    // Since this is an onChange script, control will always be 'event_interested_in'
    var selectedRecord = g_form.getReference('event_interested_in', eventCallback); // Get selected record from 'event_interested_in'

    function eventCallback(selectedRecord) {
        // Check if a record is selected and 'u_tshirts_provided' is true 
        if (selectedRecord && selectedRecord.u_t_shirts_provided == 'true') {
            g_form.setValue('shirts', 'true');
        } else {
            g_form.setValue('shirts', '');
        }
    }
}