【问题标题】:CRM : Can not set lastusedincampaign field while creating entityCRM:创建实体时无法设置 lastusedincampaign 字段
【发布时间】:2016-10-28 19:01:07
【问题描述】:

我正在创建一个新的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);

【问题讨论】:

  • 您是否使用插件来设置值?你目前在做什么来设置lastusedincampaign
  • 不,不是插件。我编写了一个自定义 .net 应用程序,我在其中获得 crm 服务,然后使用它。

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


【解决方案1】:

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

旁注 4k 记录不是同时执行创建/更新的大量记录,我已经处理了数以万计的记录,CRM 从来没有对我造成瓶颈。

【讨论】:

  • 不幸的是,这似乎是真的。我创建了一个简单的代码(更新 1)来准确测试这个属性,结果,lastusedincampaign 字段没有被填充。工作流程等对我不利,因为在创建所有联系人后,我的应用程序开始收集统计信息。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多