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

CRM : Can not set lastusedincampaign field while creating entity

我正在创建一个新的 contact 记录,我需要在创建时设置 lastusedincampaign 字段。但是我的实体是用空 lastusedincampaign 字段创建的。 我只能在 Create.

之后使用 Update 方法以编程方式设置它

问题出在哪里?

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

更新 1(测试代码):

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

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

旁注 4k 条记录并不能同时执行 create/update 记录,我处理过数以万计的记录,而 CRM 从未对我造成瓶颈。

您描述的行为是正常的。如果您检查属性 lastusedincampaign 的元数据,您会发现该字段的 IsValidForCreate 设置为 false 并且 IsValidForUpdate 设置为 true.

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