我可以在CRM 2011中通过插件创建非活动记录吗?

时间:2013-07-18 11:46:08

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

有没有办法在Microsoft CRM 2011中通过插件创建非活动记录?我可以使用setStateRequest类和IOrganizationService.Execute方法来更改现有记录的状态/状态。由于此方法需要记录Id,因此不能在新记录中使用。

是否可以立即创建非活动记录,还是必须创建新的活动记录并在创建后将其停用?

直接设置状态/状态(即使是在新记录中)

EntityToSave["statecode"] = new OptionSetValue(state);
EntityToSave["statuscode"] = new OptionSetValue(status);

导致错误:

2 is not a valid status code for state code ProductState.Active on product

2 个答案:

答案 0 :(得分:7)

您需要先创建记录,然后使用SetStateRequest停用。

没有其他方法可以继续。

答案 1 :(得分:2)

我认为您应该能够注册在创建消息的后操作步骤期间运行的插件,该插件使用SetStateRequest将实体更新为非活动状态。只要它是第一个触发的插件,系统中的其他所有内容都会将其视为在非活动状态下创建。

这将导致任何SetStateDynamicEntity插件执行,但您也可以使用插件执行变量来处理它。

更新

自CRM 2015 U1以来,您不应该使用SetStateRequest。只需在Post Create中使用标准更新语句。