CRM:创建实体时无法设置lastusedincampaign字段

时间:2016-10-28 19:01:08

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

我正在创建新的contact记录,我需要在创建时设置lastusedincampaign字段。但我的实体是用空lastusedincampaign字段创建的。 我只能在Update之后使用Create方法以编程方式设置它。

问题出在哪里?

P.S。:创建然后更新我的实体记录不是一个好主意,因为我有大约4k实体记录一次创建。

更新1(测试代码):

Entity contact = new Entity("contact");
contact["fullname"] = "New contact";
contact["lastusedincampaign"] = DateTime.UtcNow;
CrmHelper.InitializeCrmService().Create(contact);

2 个答案:

答案 0 :(得分:3)

看起来CRM会忽略lastusedincampaign属性,就像在创建操作期间执行其他一些操作一样。如果您不想同时执行创建/更新操作,为什么不创建一个异步运行并更新字段值的临时工作流?这样,异步服务器可以承担大部分负载,并且记录创建速度更快。

旁注4k记录不是同时执行创建/更新的大量记录,我已经处理了成千上万的记录,CRM从不瓶颈。

答案 1 :(得分:2)

您所描述的行为是预期的。如果您检查属性lastusedincampaign的元数据,则会发现该字段的IsValidForCreate设置为falseIsValidForUpdate设置为true

如果要填写该字段,则必须在创建后更新记录。