Получить ID маркетингового списка по имени - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь получить идентификатор маркетингового списка, созданного в Microsoft Dynamics, на основе имени списка.Затем я буду использовать идентификатор, чтобы добавить контакты crm в список (это можно сделать с помощью идентификатора списка)

Я не могу найти в документации никаких инструкций, объясняющих, как это сделать.Я попробовал следующий код, но я получаю сообщение об ошибке, что ни один объект с таким именем не существует:

    var request = new RetrieveRequest();
    request.Target = new EntityReference("new list 1", listId);
    RetrieveResponse response = _organizationService.Execute(request) as RetrieveResponse;

В конечном итоге я пытаюсь дать администратору crm возможность идентифицировать маркетинговый список.что пользователь должен быть добавлен, когда они заполняют форму бюллетеня на нашем сайте.Я думаю, что будет слишком много просить их найти руководство по маркетинговому списку (мне потребовалось немного усилий, чтобы найти его самостоятельно)

Может кто-нибудь поделиться каким-либо кодом, чтобы получить идентификатор спискаиспользуя имя списка в качестве идентификатора или дайте мне знать, если возможно добавить контакт в список, используя имя списка вместо идентификатора?

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Следующий код получает все списки в Dynamics с name из "new list 1".Затем он сохраняет идентификатор первого списка, возвращенного, если найдено одно или несколько совпадений, или Guid.Empty, если совпадений не найдено.В вашем сценарии всегда должен быть один и только один матч.

var query = new QueryExpression
{
    EntityName = "list",
    ColumnSet = new ColumnSet(false)
};

query.Criteria.AddCondition("name", ConditionOperator.Equal, "new list 1";

var matchingLists = _organizationService.RetrieveMultiple(query);

var defaultListId = matchingLists?.Entities.FirstOrDefault()?.Id ?? Guid.Empty;
0 голосов
/ 22 мая 2018

К получение записи объекта с использованием RetrieveRequest, имя схемы этого объекта (таблица БД) должно передаваться как первый параметр, а первичный ключ (GUID) - как второй.Для маркетингового списка это list & listid.Вы должны также упомянуть ColumnSet.

request.Target = new EntityReference("list", listId);

Но для достижения того, что вы хотите, вы должны использовать querybyattribute или queryexpression, тогда RetrieveMultiple поможет вам получить Id из имени списка.

FilterExpression filter = new FilterExpression();
filter.FilterOperator = LogicalOperator.And;
filter.AddCondition(new ConditionExpression("name", ConditionOperator.Equal, "new list 1"));
QueryExpression query = new QueryExpression("list");
query.Criteria.AddFilter(filter);

var result = Context.SystemService.RetrieveMultiple(query);

После этого используйте AddListMembersListRequest или AddMemberListRequest , чтобы добавить членов в этот список.

// Add a list of contacts to the marketing list.
var addMemberListReq = new AddListMembersListRequest
{
    MemberIds = new[] { _contactIdList[0], _contactIdList[2] },
    ListId = listId
};

_serviceProxy.Execute(addMemberListReq);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...