Dynamics crm 2011 无法使用crm2011中的sdk更改联系人内的帐户引用

Dynamics crm 2011 无法使用crm2011中的sdk更改联系人内的帐户引用,dynamics-crm-2011,dynamics-crm,Dynamics Crm 2011,Dynamics Crm,我无法通过使用crm 2011 sdk更新联系人来更改客户端。以下是我正在使用的代码: 实体联系人=新实体(); contact.LogicalName=“contact”; Attributes=newattributeCollection(); EntityReference clientLookup=新的EntityReference(); clientLookup.Id=NewClientBId; clientLookup.LogicalName=“帐户”; contact.Attrib

我无法通过使用crm 2011 sdk更新联系人来更改客户端。以下是我正在使用的代码:

实体联系人=新实体();
contact.LogicalName=“contact”;
Attributes=newattributeCollection();
EntityReference clientLookup=新的EntityReference();
clientLookup.Id=NewClientBId;
clientLookup.LogicalName=“帐户”;
contact.Attributes.Add(“parentcustomerid”,clientLookup);
contact.Attributes.Add(“contactid”,workItem.Id);
SynchronousUtility.UpdateDynamicEntity(CrmConnector.Service,contact);
代码运行正常,没有任何错误,但当我转到web portal并检查记录时,它仍然指向旧帐户,尽管更新了modofication时间戳。我还检查了sql profiler查询,如下所示:

exec sp_executesql N'update[ContactBase]集合 [ModifiedOn]=@ModifiedOn0[ModifiedBy]=@ModifiedBy0, [ModifiedOnBehalfBy]=空,其中([ContactId]= @ContactId0'),N'@ModifiedOn0 datetime,@ModifiedBy0 唯一标识符@ContactId0 唯一标识符',@ModifiedOn0='2013-07-04 09:21:02',@ModifiedBy0='2F8D969F-34AB-E111-9598-005056947387',@ContactId0='D80ACC4E-A185-E211-AB64-0023240068'


如上所示,我更新的列甚至不在更新查询的set子句中。有人能帮我吗?

我测试了您的代码,它可以工作:

实体联系人=新实体();
contact.LogicalName=“contact”;
Attributes=newattributeCollection();
EntityReference clientLookup=新的EntityReference();
clientLookup.Id=新Guid(“3522bae7-5ae5-e211-9d27-b4b52f566dbc”);
clientLookup.LogicalName=“帐户”;
contact.Attributes.Add(“parentcustomerid”,clientLookup);
contact.Attributes.Add(“contactid”,新Guid(“16dc4143-5ae5-e211-9d27-b4b52f566dbc”);
如您所见,我在我的环境中使用了现有Id,并执行了我使用的更新

服务更新(联系人);
代码不起作用的原因:

  • NewClientBId
    不是正确的帐户Guid
  • workItem.Id
    不是正确的联系人Guid
  • 函数
    SynchronousUtility.UpdateDynamicEntity
    有错误

只想补充一点,这不仅仅是帐户的问题。我无法更改联系人的任何其他信息。
contact\u EntityName
Custome\u EntityName
customeridcolumnnaincontact
的值,
ContactIdentityColumn
?刚刚用常量变量值更新了我的问题Guido PreiteThank Guido.Function SynchronousUtility.UpdatedDynamicEntity似乎适用于所有其他实体。这里还要指出的一点是,为了更新,SynchronousUtility.UpdateDynamicEntity方法中的代码调用OrganizationServiceProxy的execute方法,这可能是问题所在。我猜它应该调用update方法。事实上,代码没有问题。问题在于,如果更改客户机的调用不是从接口启动的,则同步插件会绕过调用插件已知:)(工作流)。我必须传递另一个属性来设置呼叫者来源信息(自定义信息)才能使此工作正常。感谢您的帮助。