首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从市场营销列表中批量删除成员?

如何从市场营销列表中批量删除成员?
EN

Stack Overflow用户
提问于 2015-11-13 15:34:00
回答 1查看 1.4K关注 0票数 1

我在CRM Dynamics 2013中有一个场景,我需要删除数以千计的记录,基本上我有联系人,帐户,销售线索,我需要基本上从联系人中删除所有的营销列表,这样这些联系人就不会收到列表,我想知道哪种方法会是最好的,我想也许如果我创建了一个使用RemoveMemberListRequest的程序,一切都很好,但我如何指定一个查询,基本上说,删除列表中的成员从列表上的联系人有一个所有者设置为“挂起删除”。

我看到这种方法有点令人担忧,因为我计划使用RemoveMemberListRequest,它寻找的guid的EntityId(联系人)和ListID(营销列表)的guid,问题是,有许多列表和许多联系人落在这个criteria.The的重要标准是重点与所有者正在等待删除的联系人,这意味着我没有一个具体的方法来查询那些特定的营销列表中添加了联系人,有等待删除作为所有者字段。我希望这是有意义的,任何帮助都将不胜感激。

请看看我到目前为止都有些什么

代码语言:javascript
复制
public static Entity GetConatctWithPendingDeletion(IOrganizationService service)
    {
        QueryExpression qe = new QueryExpression();
        qe.EntityName = "contact";
        qe.ColumnSet = new ColumnSet("fullname", "ownerid", "parentcustomerid", "new_title");
        qe.Criteria.AddCondition("ownerid", ConditionOperator.Equal, "0F040671-1E83-E111-83B9-D067E5EBE694");// tbhis represents the optionset 'Pending Deletion'

        EntityCollection response = service.RetrieveMultiple(qe);

        return response.Entities[0];

        Console.WriteLine(response.Entities.Count());
        Console.ReadLine();

        RemoveMemberListRequest req = new RemoveMemberListRequest();
        req.EntityId = new Guid("xxxxxxx-xxx-xxx-xxx-xxxxxxx");//how do I specifty a list of Contact guids based on above code
        req.ListId = new Guid("xxxxxxx-xxxx-xxxx-xxxxx");// Also here , how do I specify the lists I want,

        RemoveMemberListResponse resp = (RemoveMemberListResponse)service.Execute(req);


    }
EN

回答 1

Stack Overflow用户

发布于 2015-11-13 16:19:22

您应该能够通过将市场营销列表成员关系实体JOIN到您的帐户/联系人/销售线索查询并迭代结果记录来解决此问题:

代码语言:javascript
复制
QueryExpression qe = new QueryExpression();
qe.EntityName = "contact";
qe.ColumnSet = new ColumnSet("fullname", "ownerid", "parentcustomerid", "new_title");
qe.Criteria.AddCondition("ownerid", ConditionOperator.Equal, "0F040671-1E83-E111-83B9-D067E5EBE694");

LinkEntity le = new LinkEntity();
le.EntityAlias = "lm";  // note the alias, you need it when accessing fields of the linked entity
le.Columns = new ColumnSet("listid");
le.JoinOperator = JoinOperator.Inner;
le.LinkFromEntityName = "contact";
le.LinkFromAttributeName = "contactid";
le.LinkToEntityName = "listmember";
le.LinkToAttributeName = "entityid";

eq.LinkEntities.Add(le);

EntityCollection response = service.RetrieveMultiple(qe);

// iterate over list members
foreach (var listmember in response.Entities)
{
    RemoveMemberListRequest req = new RemoveMemberListRequest();
    req.EntityId = listmember.Id;

    // the linked (relationship) entity fields are of type AliasedValue
    AliasedValue av = listmember.GetAttributeValue<AliasedValue>("lm.listid");
    EntityReference lm = (EntityReference)av.Value;
    req.ListId = lm.Id;

    RemoveMemberListResponse resp = (RemoveMemberListResponse)service.Execute(req);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33687754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档