Search code examples
javascriptdynamics-crm-2011dynamics-crmdynamics-crm-online

Get selected user from lookup


In my scenario i have a custom entity form.

This custom entity form is having a lookup for user record, my requirement is to get the selected user from javascript which am able to do.

var lookupObject = Xrm.Page.getAttribute("new_accountmanager0");

if (lookupObject != null) 
{

    var lookUpObjectValue = lookupObject.getValue();

    if ((lookUpObjectValue != null))         
    {
     var lookuptextvalue = lookUpObjectValue[0].name;
     var lookupid = lookUpObjectValue[0].id;
     }

  }

But i want to get seleced user "phonenumber" which is a column in lookup using JavaScript!


Solution

  • You need to call the CRM webservices to retrieve the phone number, you can use this function (this will works if your lookup points to a system user)

    function getPhoneNumberBySystemUserId(userId) {
    var serverUrl;
    if (Xrm.Page.context.getClientUrl !== undefined) {
        serverUrl = Xrm.Page.context.getClientUrl();
    } else {
        serverUrl = Xrm.Page.context.getServerUrl();
    }
    // build the request
    var ODataPath = serverUrl + "/XRMServices/2011/OrganizationData.svc"; 
    var userRequest = new XMLHttpRequest();
    userRequest.open("GET", ODataPath + "/SystemUserSet(guid'" + userId + "')", false); 
    userRequest.setRequestHeader("Accept", "application/json"); 
    userRequest.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    // execute the request
    userRequest.send();
    if (userRequest.status === 200) {
        var retrievedUser = JSON.parse(userRequest.responseText).d;
        // retrieve the phone number of the user
        var phonenumber = retrievedUser.Address1_Telephone1; // change to MobilePhone to get the mobile phone, to HomePhone to get the home phone
        return phonenumber;
    } else {
        return "error";
    }
    }
    

    and with your code you can use in this way:

    var lookupObject = Xrm.Page.getAttribute("new_accountmanager0");
    var lookUpObjectValue = lookupObject.getValue();
    if (lookUpObjectValue != null) {
        var phonenumber = getPhoneNumberBySystemUserId(lookUpObjectValue[0].id);
        alert(phonenumber);
    }