Populate User ID Catalog Client Script

Alik_92
Tera Contributor

Hello everyone,

I would like to automatically populate certain data for the Record Producer. These include gender, phone number, and company/car policy. Do you know how I can accomplish this?

Thank you for your assistance!

1 ACCEPTED SOLUTION

Try this updated script for phone number.

var GetUserInfo = Class.create();
GetUserInfo.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {

    getUserDetails: function() {
        var userName = this.getParameter("sysparm_user_id");
        var grUser = new GlideRecord('sys_user');
        grUser.get("sys_id", userName);

        // Build the payload. You can return additional data if needed. 
        var result = {    
           "first_name": grUser.getDisplayValue('first_name'),
           "last_name": grUser.getDisplayValue('last_name'),
           "gender": grUser.getDisplayValue('gender'),//similarly add other fields 
           "phone_number": grUser.getDisplayValue('phone'),//similarly add other fields 
           "mobile_number": grUser.getDisplayValue('mobile_phone')//similarly add other fields 
        }; 
        return JSON.stringify(result);
    },
    type: 'GetUserInfo'
});

View solution in original post

4 REPLIES 4

Sandeep Rajput
Tera Patron
Tera Patron

@Alik_92 You need to use the GlideAjax in a client script to fetch the user details. Here is the example script you can use as a part of an onLoad client script on a record producer.

 

 

function onLoad(){

var ga = new GlideAjax('HelloWorld'); // HelloWorld is the script include class 
ga.addParam('sysparm_name','getUserDetails'); // helloWorld is the script include method 
ga.addParam('sysparm_user_name',g_user.userID); // Set parameter sysparm_user_name  
ga.getXML(getUserDetailsParse); 
function getUserDetailsParse(response) { 
var answer = response.responseXML.documentElement.getAttribute("answer"); 
alert(answer); //set the user details here
}
}

 

 

Here is your script include script.

 

var GetUserInfo = Class.create();
GetUserInfo.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {

    getUserDetails: function() {
        var userName = this.getParameter("sysparm_user_id");
        var grUser = new GlideRecord('sys_user');
        grUser.get("sys_id", userName);

        // Build the payload. You can return additional data if needed. 
        var result = {    
           "first_name": grUser.getDisplayValue('first_name'),
           "last_name": grUser.getDisplayValue('last_name'),
           "gender": grUser.getDisplayValue('gender')//similarly add other fields 
        }; 
        return JSON.stringify(result);
    },
    type: 'GetUserInfo'
});

 

Hope this helps.

Hi, I want the phone number to be displayed directly. How can I achieve that using GlideAjax? I've prepared a String for it on ServiceNow.

Try this updated script for phone number.

var GetUserInfo = Class.create();
GetUserInfo.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {

    getUserDetails: function() {
        var userName = this.getParameter("sysparm_user_id");
        var grUser = new GlideRecord('sys_user');
        grUser.get("sys_id", userName);

        // Build the payload. You can return additional data if needed. 
        var result = {    
           "first_name": grUser.getDisplayValue('first_name'),
           "last_name": grUser.getDisplayValue('last_name'),
           "gender": grUser.getDisplayValue('gender'),//similarly add other fields 
           "phone_number": grUser.getDisplayValue('phone'),//similarly add other fields 
           "mobile_number": grUser.getDisplayValue('mobile_phone')//similarly add other fields 
        }; 
        return JSON.stringify(result);
    },
    type: 'GetUserInfo'
});

Ankur Bawiskar
Tera Patron
Tera Patron

@Alik_92 

if you want those variables to be auto-populated based on a reference variable which refers to sys_user then no scripting is required.

if you are on utah version then check this link

Auto-Populate Reference data in Service Catalog 

If my response helped please mark it correct and close the thread so that it benefits future readers.

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