Dynamics crm 2011 无法使用crm2011中的sdk更改联系人内的帐户引用
我无法通过使用crm 2011 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
实体联系人=新实体();
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,并执行了我使用的更新
服务更新(联系人);
代码不起作用的原因:
不是正确的帐户GuidNewClientBId
不是正确的联系人GuidworkItem.Id
- 函数
有错误SynchronousUtility.UpdateDynamicEntity
contact\u EntityName
,Custome\u EntityName
,customeridcolumnnaincontact
的值,ContactIdentityColumn
?刚刚用常量变量值更新了我的问题Guido PreiteThank Guido.Function SynchronousUtility.UpdatedDynamicEntity似乎适用于所有其他实体。这里还要指出的一点是,为了更新,SynchronousUtility.UpdateDynamicEntity方法中的代码调用OrganizationServiceProxy的execute方法,这可能是问题所在。我猜它应该调用update方法。事实上,代码没有问题。问题在于,如果更改客户机的调用不是从接口启动的,则同步插件会绕过调用插件已知:)(工作流)。我必须传递另一个属性来设置呼叫者来源信息(自定义信息)才能使此工作正常。感谢您的帮助。