Microsoft CRM, как мне получить всех членов списка с помощью CrmService? - PullRequest
2 голосов
/ 06 декабря 2009

Я занимаюсь разработкой инструмента, который должен считывать данные из Microsoft CRM с помощью API веб-сервиса.

Мне нужно собрать всех участников маркетингового списка. Я могу получить все списки в системе, используя веб-сервис, но не могу получить членов списка. Это мой запрос, который я могу выполнить, но он не возвращает никаких членов:

QueryExpression qe = new QueryExpression();
qe.EntityName = "contact";
qe.ColumnSet = new AllColumns();

var linkContact = new LinkEntity { 
    LinkFromEntityName = "contact", 
    LinkFromAttributeName = "contactid", 
    LinkToEntityName = "listmember",
    LinkToAttributeName = "entityid"
};  

var linkList = new LinkEntity {
    LinkFromEntityName = "listmember",
    LinkFromAttributeName = "entityid",
    LinkToEntityName = "list",
    LinkToAttributeName = "listid" };

var ce = new ConditionExpression
             {
                 AttributeName = "listid",
                 Operator = ConditionOperator.Equal,
                 Values = new object[] {list.listid.Value}
             };

linkList.LinkCriteria = new FilterExpression {Conditions = new[] {ce}};
linkContact.LinkEntities = new[] {linkList};
qe.LinkEntities = new [] {linkContact};
var members = service.RetrieveMultiple(qe);
Console.WriteLine("Members of {0}:", list.listname);
Assert.IsTrue(members.BusinessEntities.Any());

foreach(contact lead in members.BusinessEntities)
    Console.WriteLine(lead.fullname);

Как я могу получить членов списка, используя API веб-сервиса?

1 Ответ

3 голосов
/ 10 декабря 2009

Полагаю, вы, наверное, уже поняли это, но в любом случае ...

var linkList = new LinkEntity {
            LinkFromEntityName = "listmember",
            LinkFromAttributeName = "listid",
            LinkToEntityName = "list",
            LinkToAttributeName = "listid" };

Соответствующая строка:
LinkFromAttributeName = "listid", против "entityid"

...