我有一个工作流程活动,我用它定期向供应商发送电子邮件,并安排后续电话等,如果没有回复。但是我的问题是我在发送消息之前需要为每个供应商检索电子邮件。
如何从CRM 2011中的特定实体检索特定字段中的值?
这是伪代码:
For each supplier entity in the system {
if (sendSalesRequest) {
Send Initial E-mail
- wait 21 days
if (noReply) {
Send Follow up e-mail
- wait 7 days
if (noFollowupReply) {
schedule phone call activity everyday until reply
}
}
}
}
但是,我需要一种从suppler实体检索电子邮件地址的方法。
我不是在找一个有效的解决方案(虽然我不会拒绝它!),只是关于如何开展这项任务的指导原则,因为我对CRM开发并不熟悉。
谢谢,
Tysin
答案 0 :(得分:1)
如果您是2011年新手,我建议您阅读SDK。特别是你需要看看custom workflow activity开发。它有许多样本可以帮助你。
我建议:
我建议这样做的原因是,这意味着您可以在工作流程中保持数据的创建,从而更易于管理和处理。例如。您可以更改电子邮件,而无需重新编译自定义工作流活动。
因此,在您的主自定义工作流活动的第一步,是查询Crm,我建议开始QueryExpression。通过这种方式,您可以获得基于逻辑的数据。
然后,您需要一些代码来启动针对记录的工作流程,以发送电子邮件和电话呼叫。有一个例子here。
然后你的代码会看起来像这样:
QueryExpression query = new QueryExpression("supplier");
query.ColumnSet = new ColumnSet("sendsalesrequest", "noreply", "nofollowupreply");
EntityCollection entities = service.RetrieveMultiple(query);
entities.Entities.ToList().ForEach(entity =>
{
if(entity["sendsalesrequest"] == "Yes")
{
StartWorkflow(entity.Id, "Send Initial E Mail Workflow Name");
}
//etc
}
这是一个非常高的水平,但希望能让你朝着正确的方向前进。