繁体   English   中英

CRM 2011将销售线索与活动响应链接在一起

[英]CRM 2011 linking a lead with a campaign response

在我们公司中,我们有一个使用CRM Web服务的应用程序。 由于我们从CRM 4.0升级到CRM 2011,因此我试图将代码迁移到新的CRM2011。此外,我还必须防止使用强类型。 因此,我为所有实体使用由CRM 2011 Web服务提供的Entity-Class。

我们的应用程序执行以下操作:

  1. 从HTML表单创建销售线索
  2. 创建广告系列回复并将其与潜在客户链接
  3. 将广告系列回复与特定广告系列相关联

这是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)

创建活动响应,将其与活动链接并创建潜在客户。 我的问题是,活动响应和潜在客户之间的联系不起作用。

我感谢任何帮助!

更新:

最后,在尝试了几乎所有内容之后,我找到了一种使其工作的方法:

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)

我认为错误在这一行:

campaignResponse.Attributes.Add(New KeyValuePair(Of String, Object)("customer", activity))

CRM 2011的customer字段是一个简单的查询,因此请尝试直接设置潜在客户参考:

campaignResponse.Attributes.Add(New KeyValuePair(Of String, Object)("customer", lead))

另外,我建议以这种方式重写代码(更具可读性)

Dim campaignId As Guid
campaignId = New Guid(linkCampaignGuid)

Dim leadId As Guid
leadId = New Guid(CreateLead(linkCustomer))

Dim campaignReference = New EntityReference("campaign", campaignId)
Dim leadReference = New EntityReference("lead", leadId)

Dim campaignResponse = New Entity("campaignresponse")
campaignResponse.Attributes.Add("regardingobjectid", campaignReference)
campaignResponse.Attributes.Add("customer", leadReference)

_service.Create(campaignResponse);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM