How to populate the logged in user to a variable from the Onload Client script

kavitha_cr
Mega Guru

Hi All,

Requirement: 

On the load of the form, it should populate the logged in user name, company, email Id in the variables on the form level,

I have written a Onload client script to populate the company and email details but I'm unable to get the logged in user name to the field.

Below are scripts

Script Include:

var microsoft_teams_external_calling = Class.create();
microsoft_teams_external_calling.prototype = Object.extendsObject(AbstractAjaxProcessor, {
   
    getEmployeeDetails: function() {
            var requested_for = this.getParameter('sysparm_user_name');
            var result = this.newItem("result");
            var grp1 = new GlideRecord('sys_user');
            grp1.addQuery('sys_id', requested_for);
            grp1.query();
            if(grp1.next()){
                
                result.setAttribute("usserName", grp1.user_name); 
                result.setAttribute("emailID", grp1.email); 
                result.setAttribute("companyName", grp1.company);
            
            return result;
    }
    },
    type: 'microsoft_teams_external_calling'
});

Client Script:

function onLoad() {
    
    var requested_for = g_form.getValue('requested_for');
    var ga = new GlideAjax('microsoft_teams_external_calling');
    ga.addParam('sysparm_name', 'getEmployeeDetails');
    ga.addParam('sysparm_user_name', requested_for);
    ga.getXML(Displayresult);

    function Displayresult(response) {
        var result = response.responseXML.getElementsByTagName("result");

var email_ID = result[0].getAttribute("emailID");
        var Company     = result[0].getAttribute("companyName");
        var UserN  = result[0].getAttribute("usserName");

        g_form.setValue('email', email_ID);
        g_form.setValue('company',Company);
        g_form.setValue('name',UserN);
     
    }
}
    To get the Logged in user and based on that to populate the name, company and email details is what I'm not getting, Can anyone please guide me.

Thanks,

Siva Jyothi.    
 

10 REPLIES 10

Harish KM
Kilo Patron
Kilo Patron

Hi replace your script with this

Script Include

getUser: function()
{
var user = this.getParameter("sysparm_id");
var userInform ={};
var gr = new GlideRecord("sys_user");
gr.addQuery("sys_id", user);
gr.query();
if (gr.next()){
userInform.email = gr.getValue("email"); // get email value
userInform.company = gr.getValue("company"); //get company value
userInform.name = gr.getValue("name"); //get namevalue
}
    
return JSON.stringify(userInform);
},
    

Onload Client script:

function onLoad() {
     var requestor = g_form.getValue("requestor"); // variablename
    alert(requestor);

    var ga = new GlideAjax("userDetails"); // script include
    ga.addParam("sysparm_name", "getUser"); // function from script include
    ga.addParam("sysparm_id", requestor); // send value to SI
    ga.getXMLAnswer(response);
}


function response(getResponse) {
    var answer = JSON.parse(getResponse);
    alert(answer);
    g_form.setValue("email", answer.email); // variable name
    g_form.setValue("company", answer.company);
    g_form.setValue("name", answer.name);


}

Regards
Harish

Hi @Harish KM ,

Thanks for the Response.

Here, on the onload only we are getting null as requested by, so we will have to get the logged in user which I'm not getting.

Thanks,

Siva Jyothi.

Hi in your requested for variablename have you set default value as JavaScript:gs.getUserID();? If not you need to set it there in order for script to work

Regards
Harish

kavitha_cr
Mega Guru

@Ankur Bawiskar Could you please have a look at this.