我刚刚发现这个伟大的网站,并希望提前感谢所有人的帮助。
我正在开发一个插件,可以更新联系人的电子邮件地址,联系人的电子邮件地址与阵列中的某个电子邮件相匹配。我们使用第三方营销工具发送大量电子邮件广告系列。我们希望获取所有软缓存电子邮件并更新CRM并清除系统中的错误电子邮件。我有一个想法是创建一个插件,我声明一个字符串数组,其中包含所有退回的电子邮件地址。然后运行联系人查询,其中电子邮件地址与数组中的任何一个值匹配。如果匹配,我会简单更新电子邮件地址字段。这样的事情可能吗?
我知道如何设置数组和查询记录,但我似乎无法找到一个示例,即查询查找联系人电子邮件地址以匹配数组中的任何一个值。我只找到了从数组中查找特定值的示例,例如'contact.emailaddress =“name@email.com”'。
再次感谢您的帮助。
答案 0 :(得分:0)
可能是的,但您必须逐步完成整个阵列。
所以第一部分:我假设您知道如何在插件中识别该数组。
第二部分:您已经知道如何向Contact实体查询特定的电子邮件地址
第3部分:重复您找到的示例,找到您所拥有的电子邮件地址数组中每个项目的contact.emailaddress =“name@email.com”。
foreach (string email in emailAddressArrayFrom3rdPartyTool)
{
//Query for the contacts that match that e-mail address here
//Update Contacts so that the e-mail address is removed.
}
您还可以定义一个列表,并使用要更新它的联系人填充它。然后,您可以在追踪所有记录时调用更新。
更新:你也可以去获取XML路线:(更多信息:http://msdn.microsoft.com/en-us/library/gg328117.aspx)
string fetch = @"
<fetch mapping='logical'>
<entity name='contact'>
<attribute name='contactId'/>
<filter>
<condition attribute='emailaddress' operator='in'>
<value>List of Array emails here</value>
<value>List of Array emails here</value>
<value>List of Array emails here</value>
</condition>
</filter>
</entity>
</fetch> ";
EntityCollection result = _serviceProxy.RetrieveMultiple(new FetchExpression(fetch));
foreach (var c in result.Entities)
{
System.Console.WriteLine(c.Attributes["name"]);
}