CRM 4.0 - есть ли способ узнать, ответил ли контакт из определенного маркетингового списка на кампанию? - PullRequest
0 голосов
/ 03 марта 2011

Мне интересно, как я могу сделать следующее о MS CRM 4.0: Я хочу знать для кампании, если контакт из определенного маркетингового списка еще не ответил.

Пользовательское поле в форме ответа кампании - это поле участника. CRM не позволяет запрашивать поле PartyList с помощью выражения QueryExpression

Есть идеи?

Спасибо
Катя

1 Ответ

2 голосов
/ 04 марта 2011

Вы не можете напрямую получать записи об участниках деятельности, но вы можете использовать их в LinkEntities:

private bool contactHasResponded(Guid idCampaign, Guid idContact)
{
    QueryExpression qryCampaignResponses = new QueryExpression("campaignresponse");
    qryCampaignResponses.ColumnSet = new AllColumns();

    qryCampaignResponses.Criteria = new FilterExpression();
    qryCampaignResponses.Criteria.AddCondition("regardingobjectid", ConditionOperator.Equal, idCampaign);

    LinkEntity leContact = new LinkEntity("campaignresponse", "activityparty", "activityid", "activityid", JoinOperator.Inner);
    leContact.LinkCriteria = new FilterExpression();
    leContact.LinkCriteria.AddCondition("partyid", ConditionOperator.Equal, idContact);

    qryCampaignResponses.LinkEntities.Add(leContact);

    List<gcCampaignresponse> lstCampaignResponses = gcCampaignresponse.RetrieveMultiple(m_svcCrm, qryCampaignResponses);

    return (lstCampaignResponses.Count > 0);
}

Это скажет вам, есть ли ответ кампании для данной кампании и контакта. (Я использую классы сущностей, сгенерированные Stunnware Tools, поэтому вызов RetrieveMultiple выглядит немного иначе, но я думаю, вы поняли мою точку зрения).

Если вы перевернете эту конструкцию QueryExpression / LinkEntity вверх ногами, вы также можете получить все контакты, которые откликнулись на данную кампанию (вы также можете ограничить это контактами в определенном маркетинговом списке с помощью второго LinkEntity).

Единственное, что невозможно сделать напрямую с одним запросом, - это «отрицательный» чек, который вы ищете, поэтому вам придется взять этот результат и выполнить «внешнее объединение» со своим маркетинговым списком, чтобы получить контакты, которые не ответил.

...