onload catalog client script g_form.getReference in Portal not working

dilini
Giga Expert

Hi, Following unload script is not working on new Portal. I tried to use GlidAjex and realized GlideAjex is not supporting portal too. does getRefrence also not support portal??

function onLoad() {
//Type appropriate comment here, and begin script below
var supervisorRef = g_form.getReference('bulkmail_supervisor_name', popSupervisorInfo);

function popSupervisorInfo(supervisorRef) {
if (supervisorRef.phone) {
g_form.setValue('bulkmail_supervisor_phone', supervisorRef.phone);
}
}

Thank you!

Dilini

1 ACCEPTED SOLUTION

If you run this do you see an alert with the supervisor name?

function onLoad() {
    // Query for the supervisor
    var supervisorRef = new GlideRecord('sys_user');
    supervisorRef.addQuery('sys_id', g_form.getValue('bulkmail_supervisor_name'));
    supervisorRef.query(popSupervisorInfo);
}

function popSupervisorInfo(supervisorRef) {
    if (supervisorRef.next()) {
alert('Supervisor: ' + supervisorRef.name);
        if (supervisorRef.phone) {
            g_form.setValue('bulkmail_supervisor_phone', supervisorRef.phone);
        }
    }
}

View solution in original post

32 REPLIES 32

Hi Mark,

above code doesn't work too.

YES, 'bulkmail_supervisor_name' is reference in a catalog item and  field referring 'sys_user' table. 

 

Try changing it to an 'onChange' script on the 'bulkmail_supervisor_name' field.

onChance doesn't work too.

 

 

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

//Type appropriate comment here, and begin script below
supervisorPhone = g_form.getReference('bulkmail_supervisor_name', populate_phone);
}

function populate_phone(supervisorPhone) {
if (supervisorPhone.phone) {
g_form.setValue('bulkmail_supervisor_phone', supervisorPhone.phone);
}
}

Hi Dilini,

g_form.getReference with callback should work fine in portal as well.

Mark Correct if this solves your issue and also mark Helpful if you find my response worthy based on the impact.
Thanks
Ankur

Regards,
Ankur
✨ Certified Technical Architect  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

Can you add some alerts and try

 

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

alert('manager sys_id '+g_form.getValue('bulkmail_supervisor_name'));
//Type appropriate comment here, and begin script below
supervisorPhone = g_form.getReference('bulkmail_supervisor_name', populate_phone);
}

function populate_phone(supervisorPhone) {

alert('manager phone '+supervisorPhone.phone);
if (supervisorPhone.phone) {
g_form.setValue('bulkmail_supervisor_phone', supervisorPhone.phone);
}
}


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