Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Microsoft Dynamics CRM (Archived)

How to retrieve a user's teams? Javascript.

(0) ShareShare
ReportReport
Posted on by

I am trying to retrieve a user's team. The teams the user is a member of.

I trying to do this in JavaScript for CRM 2013 or 2015.

any ideas how?

appreciate all the help i can get!

*This post is locked for comments

  • Suggested answer
    Community Member Profile Picture
    on at
    RE: How to retrieve a user's teams? Javascript.

    Hello All,

    If you want to achieve the same using latest Web API please try below sample code:  

    Note : I have added few additional filter conditions. If you do not want them just remove . Also , i am considering only first team for my functionality. If you want all teams just use for reach loop.

    // Retreive Data using Web.API ..........................................................................
    var userSettings = Xrm.Utility.getGlobalContext().userSettings; // userSettings is an object with user information.
    var current_User_Id = userSettings.userId; // The user's unique id
    var UserID = current_User_Id.slice(1, -1);

    Xrm.WebApi.online.retrieveMultipleRecords("systemuser", "?$expand=teammembership_association($filter=name ne 'Web' and ltf_teamtype eq 100000000;$select=ltf_teamtype,name,teamid)&$filter=systemuserid eq "+UserID+"").then(
    function success(results) {
    if (results.entities.length > 0) {
    var teammembership_association = results.entities[0]["teammembership_association"];
    if (teammembership_association.length > 0) {
    var UserTeamName = teammembership_association[0].name;
    var UserTeamGUID = teammembership_association[0].teamid;
    }
    var systemuserid = results.entities[0]["systemuserid"];
    }
    },
    function(error) {
    Xrm.Utility.alertDialog(error.message);
    }
    );

    Other way to do the same using Fetch XML -  

    // Retreive Data using fetchXML ......................................................................
    var objectTeamAttributes = new Object();


    var fetchXML = "<fetch mapping='logical' output-format='xml-platform' version='1.0' distinct='true'>\
    <entity name='team'>\
    <attribute name='name' />\
    <attribute name='businessunitid' />\
    <attribute name='teamid' />\
    <attribute name='teamtype' />\
    <order descending='false' attribute='name' />\
    <filter type='and'>\
    <condition value='100000000' attribute='ltf_teamtype' operator='eq' />\
    <condition value='Web Specialist' attribute='name' operator='ne' />\
    </filter>\
    <link-entity name='teammembership' to='teamid' from='teamid' intersect='true' visible='false'>\
    <link-entity name='systemuser' to='systemuserid' from='systemuserid' alias='ag'>\
    <filter type='and'>\
    <condition attribute='systemuserid' operator='eq-userid' />\
    </filter>\
    </link-entity>\
    </link-entity>\
    </entity>\
    </fetch>";

    var encodedFetchXml = encodeURI(fetchXML);
    var queryPath = "/api/data/v9.1/teams?fetchXml=" + encodedFetchXml;
    var requestPath = Xrm.Utility.getGlobalContext().getClientUrl() + queryPath;

    var req = new XMLHttpRequest();

    req.open("GET", requestPath, true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");

    req.onreadystatechange = function ()
    {
    if (this.readyState === 4)
    {
    this.onreadystatechange = null;
    if (this.status === 200)
    {
    var returned = JSON.parse(this.responseText);
    var results = returned.value;

    if (results.length > 0)
    {
    var TeamName = results[0]["name"];
    var TeamGUID = results[0]["teamid"];
    objectTeamAttributes.TeamName = TeamName;
    objectTeamAttributes.TeamGUID = TeamGUID;
    //alert(objectTeamAttributes.TeamName);
    //alert(objectTeamAttributes.TeamGUID);
    }

    }
    else
    {
    alert(this.statusText);
    }
    }
    };
    req.send();

  • Andreas Cieslik Profile Picture
    9,267 on at
    RE: How to retrieve a user's teams? Javascript.

    Please check my answer above. It will enlist all teams that the user belongs to.

  • NK Bhairi Profile Picture
    244 on at
    RE: How to retrieve a user's teams? Javascript.

    What if a user belongs to multiple teams?

  • Community Member Profile Picture
    on at
    RE: How to retrieve a user's teams? Javascript.

    I believe the verified answer is missing a '?' before 'teams' and '$select....'

  • Suggested answer
    Community Member Profile Picture
    on at
    RE: How to retrieve a user's teams? Javascript.

    To make it easy in CRM 2016 / 365, I found the following works well using the new Web API functionality.

    function someFunction() {

      if (checkTeam('System Administrator') == false )

      {

            Xrm.Page.getControl("expireson").setDisabled(true);

      }

    }

     

    function checkTeam(teamName) {

      var clientURL = Xrm.Page.context.getClientUrl();

      var req = new XMLHttpRequest();

      var userId = Xrm.Page.context.getUserId().substr(1, 36);

      var query = "/api/data/v8.2/systemusers(" + userId + ")?$expand=teammembership_association($select=name;$filter=name eq '" + teamName + "')";

      req.open("GET", encodeURI(clientURL + query), false);  

      req.setRequestHeader("Accept", "application/json");

      req.setRequestHeader("Content-Type", "application/json;charset=utf-8");

      req.setRequestHeader("OData-MaxVersion", "4.0");

      req.setRequestHeader("OData-Version", "4.0");

      req.send();

      if (req.status == 200) {

        var data = JSON.parse(req.response).teammembership_association;

                    if (data.length > 0)

        { return true; } else { return false; }

      };

    }

  • Community Member Profile Picture
    on at
    RE: How to retrieve a user's teams? Javascript.

    thanks, this is just what i needed it!

  • Verified answer
    Abed Haniyah Profile Picture
    4,285 on at
    RE: How to retrieve a user's teams? Javascript.

    function GetRequestObject() {
    if (window.XMLHttpRequest) {
    return new window.XMLHttpRequest;
    } else {
    try {
    return new ActiveXObject("MSXML2.XMLHTTP.3.0");
    } catch (ex) {
    return null;
    }
    }
    }


    function makeRequest(query) {
    var serverUrl = Xrm.Page.context.getClientUrl();

    var oDataEndpointUrl = serverUrl + "/XRMServices/2011/OrganizationData.svc/";
    oDataEndpointUrl += query;

    var service = GetRequestObject();

    if (service != null) {
    service.open("GET", oDataEndpointUrl, false);
    service.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    service.setRequestHeader("Accept", "application/json, text/javascript, */*");
    service.send(null);

    var retrieved = JSON.parse(service.responseText).d;

    var results = new Array();
    for (var i = 0; i < retrieved.results.length; i++) {
    results.push(retrieved.results[i]);
    }

    return results;
    }
    return null;
    }

    function getUserTeam()
    {
    var myTeamId = null;
    var myTeamName = null;

    var guid = "[A-z0-9]{8}-[A-z0-9]{4}-[A-z0-9]{4}-[A-z0-9]{4}-[A-z0-9]{12}";

    var serverUrl = Xrm.Page.context.getClientUrl();
    var userId = Xrm.Page.context.getUserId();
    userId = userId.match(guid);
    userId = userId.input;

    // Retrieve TeamIds of the Teams Current SystemUser belongs to
    var userTeamsQuery = "TeamMembershipSet?$select=TeamId&$filter=SystemUserId eq guid'"+ userId +"'";
    var userTeams = makeRequest(userTeamsQuery);

    var teamQuery = null;
    var teams = null;

    if(userTeams !== null){

    for(var i = 0; i< userTeams.length; i++){

    userTeams[i] = userTeams[i].TeamId;

    console.log("Team Id : " + userTeams[i]); // to see TeamIds of user in Console

    var teamId = "{" + userTeams[i] + "}";

    // Retrieve Name and TeamIds of the Teams via given TeamId that we already have above
    teamQuery = "TeamSet?$select=Name, TeamId&$filter=TeamId eq guid'" + teamId + "'";
    teams = makeRequest(teamQuery);

    myTeamId =teamId;

    if(teams !== null && teams.length >0){
    myTeamName = teams[0].Name;
    }

    alert(myTeamName); // alert name of the teams user belongs to

    }
    }
    }

  • Community Member Profile Picture
    on at
    RE: How to retrieve a user's teams? Javascript.

    Using your JavaScript code to call code generated by Dynamics CRM REST Builder

  • Verified answer
    Andreas Cieslik Profile Picture
    9,267 on at
    RE: How to retrieve a user's teams? Javascript.

    Old CRM versions:

    Get current user id:

    Xrm.Page.context.getUserId()

    On this blog:

    http://crmxpg.nl/wp/2010/05/27/determine-teams-for-any-user-in-javascript/

    Use method

    getUserTeams (userid)

    In CRM 2016 ODATA v8.1:

    https://customer.crm.dynamics.com/api/data/v8.1/teams$select=name&$expand=teammembership_association($filter=systemuserid eq 014853d6-4f9f-e611-80e6-c4346bacbcbc)

    Result:

    {
      "@odata.context":"https://customer.crm.dynamics.com/api/data/v8.1/$metadata#teams(name,teammembership_association)","value":[
        {
          "@odata.etag":"W/\"596262\"","name":"Contoso","teamid":"56031a5c-4296-e611-80e4-c4346bad0070","ownerid":"56031a5c-4296-e611-80e4-c4346bad0070","teammembership_association":[
            
          ],"teammembership_association@odata.nextLink":"https://customer.crm.dynamics.com/api/data/v8.1/teams(56031a5c-4296-e611-80e4-c4346bad0070)/teammembership_association$filter=systemuserid%20eq%20014853d6-4f9f-e611-80e6-c4346bacbcbc"
        }
      ]
    }

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Daivat Vartak – Community Spotlight

We are honored to recognize Daivat Vartak as our March 2025 Community…

Announcing Our 2025 Season 1 Super Users!

A new season of Super Users has arrived, and we are so grateful for the daily…

Kudos to the February Top 10 Community Stars!

Thanks for all your good work in the Community!

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 292,997 Super User 2025 Season 1

#2
Martin Dráb Profile Picture

Martin Dráb 231,831 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156 Moderator

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans