Sometime we need to add users into access teams when record is created or based on some business logic.
From MS CRM 2013 Microsoft introduced access teams.
For information about access team
Use access teams and owner teams to collaborate and share information
You can enable access team for entity and create access team templates.
Here is more information on how to create access team template and add to form.
Create Access Teams
when you created access team template you can add it to form and add users manually to give access to record, but some time we need to it automatically.
To do automatically, you can use AddUserToRecordTeamRequest messge.
and use Execute to pass this request.
If want to do add user into multiple records access Team.
To remove user from access team you can use RemoveUserFromRecordTeamRequest messge.
Use similar method as AddUserToAccessTeam, if you want to remove user from multiple records.
From MS CRM 2013 Microsoft introduced access teams.
For information about access team
Use access teams and owner teams to collaborate and share information
You can enable access team for entity and create access team templates.
Here is more information on how to create access team template and add to form.
Create Access Teams
when you created access team template you can add it to form and add users manually to give access to record, but some time we need to it automatically.
To do automatically, you can use AddUserToRecordTeamRequest messge.
AddUserToRecordTeamRequest addReq = new AddUserToRecordTeamRequest()
{
Record =
Record Entity Reference,
SystemUserId
= UserId,
TeamTemplateId
= TemplateId
};
service.Execute(addReq);
and use Execute to pass this request.
If want to do add user into multiple records access Team.
public void AddUserToAccessTeam(IOrganizationService service, List<EntityReference> lstentref, string templateName, Guid loggedInUser, Guid? TemplateId)
{
using
(XrmServiceContext Xrmcontext = new XrmServiceContext(service)) {
Guid teamTemplate = new Guid();
if (TemplateId == null || TemplateId.Value == Guid.Empty)
/*Get Access Team Template from Template Name*/
teamTemplate = Xrmcontext.TeamTemplateSet.Where(ttm
=> ttm.TeamTemplateName == templateName).Select(ttm =>
ttm.TeamTemplateId.Value).FirstOrDefault();
else
teamTemplate =
TemplateId.Value;
int count = 0;
int TotalRecord = lstentref.Count();
int recordRemaining = TotalRecord;
/*Initialize
multiple request*/
ExecuteMultipleRequest requestWithResults = new ExecuteMultipleRequest()
{
Settings = new ExecuteMultipleSettings()
{
ContinueOnError = true,
ReturnResponses = true
},
Requests = new OrganizationRequestCollection()
};
foreach (EntityReference entRef in lstentref)
{
recordRemaining--;
/*Add user to Record Team request*/
AddUserToRecordTeamRequest
addReq = new AddUserToRecordTeamRequest()
{
Record = entRef,
SystemUserId =
loggedInUser,
TeamTemplateId =
teamTemplate
};
requestWithResults.Requests.Add(addReq);
count++;
if (count == 999 ||
recordRemaining == 0)
{
ExecuteMultipleResponse
responseWithResults = (ExecuteMultipleResponse)Xrmcontext.Execute(requestWithResults);
requestWithResults.Requests.Clear();
count = 1;
}
}
}
}
To remove user from access team you can use RemoveUserFromRecordTeamRequest messge.
RemoveUserFromRecordTeamRequest addReq = new RemoveUserFromRecordTeamRequest()
{
Record = Record Entity Reference,,
SystemUserId = User Id,
TeamTemplateId = Access Team Template Id
};
Use similar method as AddUserToAccessTeam, if you want to remove user from multiple records.