将帐户的联系人列表放入电子邮件中的cc字段

时间:2011-10-04 12:19:35

标签: email plugins dynamics-crm-4

我的任务是在crm 4中制作一个插件,该插件应该1.在电子邮件的主题字段中输入帐户的名称,然后2.将帐户的联系人列表放入电子邮件的cc字段。 我做的第一件事就是它的工作,但第二件......不是那么多...... 我看过一些样品,但没有一个接近我的样子...... 我想帮助解释如何找到属于该帐户的联系人列表,然后将该列表放在cc字段中。 这是开始......:

namespace mail
{
public class Class1 : IPlugin
{
        public void Execute(IPluginExecutionContext context)
        {
            DynamicEntity entity = null;

            if (context.InputParameters.Properties.Contains("Target") &&
               context.InputParameters.Properties["Target"] is DynamicEntity)
            {
                entity = (DynamicEntity)context.InputParameters.Properties["Target"];

                if (entity.Name != EntityName.account.ToString())
                {
                    return;
                }
            }
            else
            {
                return;
            }

            try
            {
                // updating the subject of the email
                ICrmService service = context.CreateCrmService(true);
                account accountRecord = (account)service.Retrieve("account", ((Key)entity.Properties["accountid"]).Value, new ColumnSet(new string[] { "name" }));
                String str = String.Empty;
                str = accountRecord.name.ToString();
                DynamicEntity followup = new DynamicEntity();
                followup.Name = EntityName.email.ToString();

                followup.Properties = new PropertyCollection();
                followup.Properties.Add(new StringProperty("subject", str));

                //updating the CC of the email

                TargetCreateDynamic targetCreate = new TargetCreateDynamic();
                targetCreate.Entity = followup;

                CreateRequest create = new CreateRequest();
                create.Target = targetCreate;

                CreateResponse created = (CreateResponse)service.Execute(create);
            }
            catch
            {
                throw new InvalidPluginExecutionException(
                      "An error occurred in the AccountUpdateHandler plug-in.");
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情,

List<BusinessEntity> contactList = GetNeededContacts(crmService, sourceEntity);
email targetEmail = GetTargetEmail(crmService, emailid);            
foreach (DynamicEntity contact in contactList)
            {
                activityparty contActParty = new activityparty() { partyid = new Lookup("contact", contact.contactid.Value };
                List<activityparty> tmpList = targetEmail.cc.ToList();
                tmpList.Add(contActParty);
                targetEmail.cc = tmpList.ToArray();
            }
crmService.Update(targetEmail);

您只需开发该功能即可获得联系人,用户或帐户参考。