Dynamics crm 2011 如何从团队中获取团队用户从输入中获取

Dynamics crm 2011 如何从团队中获取团队用户从输入中获取,dynamics-crm-2011,dynamics-crm,dynamics-crm-online,Dynamics Crm 2011,Dynamics Crm,Dynamics Crm Online,我正在尝试构建我的第一个工作流,它从一个团队中获取输入信息,并将该团队中的所有用户放入CRM电子邮件的“收件人”字段中 我的第一个挑战是检索兼容的输入类。例如:类:XrmDataContext,团队成员资格,电子邮件(Email.Subject)编译器无法识别它们 我一直在尝试在互联网上找到的这段代码,但对我来说不太清楚 [输入(“团队名称”)] [默认(“案例团队”)] 公共InArgument案例团队{get;set;} [输出(“日期时间”)] 公共输出参数TaskDueDate{get;

我正在尝试构建我的第一个工作流,它从一个团队中获取输入信息,并将该团队中的所有用户放入CRM电子邮件的“收件人”字段中

我的第一个挑战是检索兼容的输入类。例如:类:XrmDataContext团队成员资格电子邮件(Email.Subject)编译器无法识别它们

我一直在尝试在互联网上找到的这段代码,但对我来说不太清楚

[输入(“团队名称”)]
[默认(“案例团队”)]
公共InArgument案例团队{get;set;}
[输出(“日期时间”)]
公共输出参数TaskDueDate{get;set;}
受保护的覆盖无效执行(CodeActivityContext executionContext)
{
尝试
{
//创建跟踪服务
ITracingService tracingService=executionContext.GetExtension();
//创建上下文
IWorkflowContext=executionContext.GetExtension();
IOOrganizationServiceFactory服务工厂=executionContext.GetExtension();
//创建组织服务
IOOrganizationService=serviceFactory.CreateOrganizationService(context.UserId);
//从上下文中获取目标实体
实体目标=(实体)上下文。输入参数[“目标”];
//使用自动生成的cs文件准备DataContext
XrmDataContext=新的XrmDataContext(服务);
//从工作流输入参数获取团队名称
字符串teamName=CaseTeam.Get(executionContext);
//从团队名称中获取团队Id
var team=(来自datacontext.TeamSet中的t
其中t.Name==teamName
选择新的{t.TeamId}).First();
//让团队的所有成员发送电子邮件
列出团队成员=(来自datacontext.TeamMembershipSet中的t)
其中t.TeamId==team.TeamId
选择t.ToList();
//向团队成员发送电子邮件
CreateEmail(服务、团队成员、目标、上下文.InitiatingUserId);
//使用输出参数将任务日期设置为2天
Set(executionContext,DateTime.Now.AddDays(2));
}
捕获(SoapException-ex)
{
//在事件日志中添加SoapException消息
EventLog.WriteEntry(“代码错误”,“错误发生在”+ex.Detail.InnerText.ToString(),EventLogEntryType.error)中);
}
捕获(异常exe)
{
//在事件日志中添加GeneralException消息
EventLog.WriteEntry(“代码错误”,“在“+exe.InnerException.ToString(),EventLogEntryType.error”中发生错误);
}
}
公共静态void CreateEmail(IOOrganizationService服务,列出团队成员,实体caseEntity,Guid loggedinUser)
{
//创建电子邮件
实体电子邮件=新实体(“电子邮件”);
//将电子邮件的发件人用户设置为登录用户
实体方=新实体(“活动方”);
fromParty.Id=新的EntityReference(SystemUser.EntityLogicalName,loggedinUser);
List toPartyList=新列表();
//为团队中的每个成员添加活动组
foreach(teamMembers中的TeamMembership用户)
{
ActivityParty toParty=新ActivityParty();
toParty.PartyId=新的EntityReference(SystemUser.EntityLogicalName、user.SystemUserId.Value);
TopPartyList.Add(TopParty);
}
//通过具体说明案例票号添加主题和描述
email.Attributes.Add(“Case”+caseEntity.Attributes[“ticketnumber”].ToString()+“Added.Please review”);
email.Description=“Case”+caseEntity.Attributes[“ticketnumber”].ToString()+“已添加。请查看”;
//将用户添加到电子邮件或从用户添加到电子邮件
email.To=toPartyList.ToArray();
email.From=new[]{fromParty};
//就
email.RegardingObjectId=新的EntityReference(Incident.EntityLogicalName,caseEntity.Id);
//创建电子邮件
Guid emailId=service.Create(电子邮件);
SendEmailRequest sendRequest=新的SendEmailRequest();
sendRequest.EmailId=电子邮件ID;
sendRequest.TrackingToken=string.Empty;
sendRequest.IssueSend=true;
//发送电子邮件。
执行(sendRequest);
}

您必须使用CrmSvcUtil生成该类的引用。坐一会儿。我不知道你是否在关注任何文章,但你可以检查一下