Dynamics crm 2011 Dynamics CRM 2011插件如何获取用户所属的团队

Dynamics crm 2011 Dynamics CRM 2011插件如何获取用户所属的团队,dynamics-crm-2011,crm,microsoft-dynamics,Dynamics Crm 2011,Crm,Microsoft Dynamics,我需要检查用户是否在特定的团队中。我假设我必须从球队开始,但我不是很确定。只需查看和查看用户所属的所有团队就更容易了。有人举过在插件中使用N:N关系的例子吗 这是我到目前为止的代码 //设置QueryExpression对象的属性。 teamQuery.EntityName=“团队”; teamQuery.AddAttributeValue(“名称”、“团队”); teamQuery.ColumnSet=teamColumnSet; EntityCollection teamDetail=ser

我需要检查用户是否在特定的团队中。我假设我必须从球队开始,但我不是很确定。只需查看和查看用户所属的所有团队就更容易了。有人举过在插件中使用N:N关系的例子吗

这是我到目前为止的代码

//设置QueryExpression对象的属性。
teamQuery.EntityName=“团队”;
teamQuery.AddAttributeValue(“名称”、“团队”);
teamQuery.ColumnSet=teamColumnSet;
EntityCollection teamDetail=service.RetrieveMultiple(teamQuery);
foreach(teamDetail.Entities中的var teamDetail)
{
teamGuid=teamDetail.Id;
}
谢谢你的帮助


Gary

您可以使用fetchXML。这将签入一个服务器请求,而不是两个(一个用于获取teamid,第二个用于检查N:N关系)

string fetchXML=@”
";
Guid用户标识//在这里分配userid。
string teamName=“要检查的团队”;
fetchXML=string.Format(fetchXML、userID、teamName);
EntityCollection结果=service.RetrieveMultiple(新的FetchExpression(fetchXML));
bool isUserInTeam=result.Entities.Count>0;

这是我的最终解决方案

QueryExpression teamQuery = new QueryExpression("team");
ColumnSet teamColumnSet = new ColumnSet("name");

teamQuery.ColumnSet = teamColumnSet;
teamQuery.Criteria = new FilterExpression();
teamQuery.Criteria.FilterOperator = LogicalOperator.And;
teamQuery.Criteria.AddCondition("name", ConditionOperator.Equal, "Sales");
teamQuery.AddLink("teammembership", "teamid", "teamid").AddLink ("systemuser", "systemuserid", "systemuserid").LinkCriteria.AddCondition("systemuserid", ConditionOperator.Equal, salesRepGuid);

 EntityCollection teamDetail = service.RetrieveMultiple(teamQuery);

Gary

在哪里查找fetchXML的语法?我收到以下消息…尝试将输入值“{0}”转换为属性“systemuser.systemuserid”时引发异常System.FormatException。属性值的预期类型:System.Guid。引发异常:{0}中应为十六进制0x。我的错误-一对{}太多。。。第四行应为:。有人能给我一个替代fetchXML的方法吗?