5

有没有办法通过 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
4

2 回答 2

8

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

没有其他方法可以继续。

于 2013-07-18T11:51:48.300 回答
2

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

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

更新

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

于 2013-07-18T13:33:31.380 回答