CRM:无法更新联系人的OriginatingLeadId

时间:2017-01-19 10:18:13

标签: c# dynamics-crm-2011 dynamics-crm crm

我的CRM 2011 API的行为非常奇怪。当我尝试将originatingleadid联系人字段从一个值更新为另一个值时,没有任何事情发生。代码中没有任何错误,因此在执行代码时一切看起来都很完美。但价值并没有真正改变。

我写了一个简单的方法来测试它,并得到了相同的结果。 就是这样。

class Program
{
    private static IOrganizationService service;

    static void Main(string[] args)
    {
        var contactId = Guid.Parse("B5A832D6-93DD-E611-ABAC-005056810E95");
        var leadId = Guid.Parse("8306E695-94DD-E611-ABAC-005056810E95");
        getService("admin", "password", "domain");

        SetOriginatingLead(contactId, leadId);
    }

    private static void SetOriginatingLead(Guid contactId, Guid leadId)
    {
        var entity = service.Retrieve("contact", contactId, 
new ColumnSet("originatingleadid"));
        var targetlead = new EntityReference("lead", leadId);
        entity["originatingleadid"] = targetlead;
        service.Update(entity);
        return;
    }

    private static void getService(string login, string password, string domain)
    {
        if (service != null)
            return;

        var cred = new ClientCredentials();
        cred.Windows.ClientCredential = 
new NetworkCredential(login, password, domain);
        service = new OrganizationServiceProxy(new 
Uri(@"http://crm/organisation/XRMServices/2011/Organization.svc"), null, cred, null);
            return;
    }
}

请告诉我在哪里弄错了。

1 个答案:

答案 0 :(得分:3)

您无法更新OriginatingLeadId的值。这可以在SDK

的EntityMetadata.xlsx文件中看到

OriginatingLeadId IsValidForUpdate=False