gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 23:39:36 25 4
gpt4 key购买 nike

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

我的第一个挑战是检索兼容的输入类。例如类:XrmDataContextTeamMembershipEmail(email.Subject) 编译器无法识别它们。

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

    [Input("Team Name")]
[Default("Case Team")]
public InArgument<string> CaseTeam { get; set; }

[Output("Date time")]
public OutArgument<DateTime> TaskDueDate { get; set; }
protected override void Execute(CodeActivityContext executionContext)
{
try
{
// Create the tracing service
ITracingService tracingService = executionContext.GetExtension<ITracingService>();

// Create the context
IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>();

IOrganizationServiceFactory serviceFactory = executionContext.GetExtension<IOrganizationServiceFactory>();

// Create the Organiztion service
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

// Get the target entity from the context
Entity target = (Entity)context.InputParameters["Target"];

// Prepare DataContext by using AutoGenerated cs file
XrmDataContext datacontext = new XrmDataContext(service);

// Get the Team Name from the Workflow input parameter
string teamName = CaseTeam.Get<string>(executionContext);

// Get the Team Id from the Team Name
var team = (from t in datacontext.TeamSet
where t.Name == teamName
select new { t.TeamId }).First();

// Get all the members of the team to send email
List<Entity> teamMembers = (from t in datacontext.TeamMembershipSet
where t.TeamId == team.TeamId
select t).ToList();

// Send email to memebers of the team
CreateEmail(service, teamMembers, target, context.InitiatingUserId);

// Set the Task DueDate to 2 days by using Output Parameter
TaskDueDate.Set(executionContext, DateTime.Now.AddDays(2));

}
catch (SoapException ex)
{
// Add the SoapException message in event log
EventLog.WriteEntry("code error", "Error occured in " + ex.Detail.InnerText.ToString(), EventLogEntryType.Error);
}
catch (Exception exe)
{
// Add the GeneralException message in event log
EventLog.WriteEntry("code error", "Error occured in " + exe.InnerException.ToString(), EventLogEntryType.Error);
}
}

public static void CreateEmail(IOrganizationService service, List<Entity> teamMembers, Entity caseEntity, Guid loggedinUser)
{
// Create Email
Entity email = new Entity("email");

// Set the from user of the email to Logged in user
Entity fromParty = new Entity("activityparty");
fromParty.Id = new EntityReference(SystemUser.EntityLogicalName, loggedinUser);

List<Entity> toPartyList = new List<Entity>();

// Add the Activity party for each member in the team
foreach (TeamMembership user in teamMembers)
{
ActivityParty toParty = new ActivityParty();
toParty.PartyId = new EntityReference(SystemUser.EntityLogicalName, user.SystemUserId.Value);
toPartyList.Add(toParty);
}

// Add the subject and description by concating the case ticket number
email.Attributes.Add("Case " + caseEntity.Attributes["ticketnumber"].ToString() + " Added. Please review");
email.Description = "Case " + caseEntity.Attributes["ticketnumber"].ToString() + " Added. Please review";

// Add To and From users to email
email.To = toPartyList.ToArray();
email.From = new[] { fromParty };

// Set the case regarding
email.RegardingObjectId = new EntityReference(Incident.EntityLogicalName, caseEntity.Id);

// Create email
Guid emailId = service.Create(email);

SendEmailRequest sendRequest = new SendEmailRequest();
sendRequest.EmailId = emailId;
sendRequest.TrackingToken = string.Empty;
sendRequest.IssueSend = true;

// Send the email message.
service.Execute(sendRequest);
}

最佳答案

您已使用 CrmSvcUtil 生成以获得该类的引用。拿个look .我不知道你是否在关注任何文章,但你可以查看此 article .

关于dynamics-crm-2011 - 如何从团队中获取团队用户从输入中获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15229971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com