В нашей компании у нас есть приложение, которое использует веб-службы CRM. Поскольку мы обновили с CRM 4.0 до CRM 2011, я пытаюсь перенести наш код на новый CRM 2011. Также мне нужно предотвратить использование сильных типов. Поэтому я использую для всех сущностей Entity-Class, которые предоставляются веб-службой CRM 2011.CRM 2011 связывает лидерство с ответом кампании
Наше приложение делает следующее:
- Создает свинец из HTML формы
- Создает ответ кампании и связывает его с ведущей
- Ссылки ответа кампании с конкретной кампанией
Это код CRM 4.0:
Dim lookup As New Lookup()
lookup.Value = New Guid(linkCampaignGuid)
lookup.type = "campaign"
Dim activity As New activityparty()
activity.partyid = New Lookup()
activity.partyid.type = "lead"
' the CreateLead method creates a lead and returns its guid
' linkCustomer is the object wich is filled by the HTML form
activity.partyid.Value = New Guid(CreateLead(linkCustomer))
Dim cr As New campaignresponse()
cr.regardingobjectid = lookup
cr.customer = New activityparty() {activity}
' my CrmService object
_service.Create(cr)
CRM 2011 код до сих пор:
Dim lookup As New EntityReference()
lookup.LogicalName = "campaign"
lookup.Id = New Guid(linkCampaignGuid)
Dim lead As New EntityReference()
lead.LogicalName = "lead"
lead.Id = New Guid(CreateLead(linkCustomer))
Dim activity As New Entity
activity.LogicalName = "activityparty"
activity.Id = lead.Id
activity.Attributes = New AttributeCollection
activity.Attributes.Add(New KeyValuePair(Of String, Object)("partyid", lead))
Dim campaignResponse As New Entity
campaignResponse.LogicalName = "campaignresponse"
campaignResponse.Attributes = New AttributeCollection
campaignResponse.Attributes.Add(New KeyValuePair(Of String, Object)("regardingobjectid", lookup))
campaignResponse.Attributes.Add(New KeyValuePair(Of String, Object)("customer", activity))
_service.Create(campaignResponse)
Создание ответа кампании, связать его с кампанией и создание свинца работает. Моя проблема заключается в том, что связь между ответом кампании и руководством не работает.
Я ценю любую помощь!
UPDATE:
Наконец после попытки почти все, я нашел способ, чтобы получить его работу:
Dim campaignId As Guid = New Guid(linkCampaignGuid)
Dim leadId As Guid = New Guid(CreateLead(linkCustomer))
Dim campaignReference As New EntityReference("campaign", campaignId)
Dim leadReference As New EntityReference("lead", leadId)
Dim activityParty As New Entity("activityparty")
activityParty.AddAttribute("partyid", leadReference)
Dim entityCollection As New EntityCollection()
entityCollection.EntityName = "activityparty"
entityCollection.Entities.Add(activityParty)
Dim campaignResponse = New Entity("campaignresponse")
campaignResponse.Attributes.Add("regardingobjectid", campaignReference)
campaignResponse.Attributes.Add("customer", entityCollection)
_service.Create(campaignResponse)
Спасибо за ответ, но это не сработало. Я также попытался использовать вместо массива класс EntityCollection, но он тоже не работал. –
@langer_muc Я отредактировал свой ответ, повторите попытку и обратно с результатами –
, это тоже не сработало. Но я должен сказать вам, что у меня нет конструктора для класса EntityReference с двумя параметрами. У меня только стандартный(). –