我正在创建新的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);
答案 0 :(得分:3)
看起来CRM会忽略lastusedincampaign
属性,就像在创建操作期间执行其他一些操作一样。如果您不想同时执行创建/更新操作,为什么不创建一个异步运行并更新字段值的临时工作流?这样,异步服务器可以承担大部分负载,并且记录创建速度更快。
旁注4k记录不是同时执行创建/更新的大量记录,我已经处理了成千上万的记录,CRM从不瓶颈。
答案 1 :(得分:2)
您所描述的行为是预期的。如果您检查属性lastusedincampaign
的元数据,则会发现该字段的IsValidForCreate
设置为false
,IsValidForUpdate
设置为true
。
如果要填写该字段,则必须在创建后更新记录。