有没有办法在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
答案 0 :(得分:7)
您需要先创建记录,然后使用SetStateRequest
停用。
没有其他方法可以继续。
答案 1 :(得分:2)
我认为您应该能够注册在创建消息的后操作步骤期间运行的插件,该插件使用SetStateRequest将实体更新为非活动状态。只要它是第一个触发的插件,系统中的其他所有内容都会将其视为在非活动状态下创建。
这将导致任何SetStateDynamicEntity插件执行,但您也可以使用插件执行变量来处理它。
自CRM 2015 U1以来,您不应该使用SetStateRequest。只需在Post Create中使用标准更新语句。