我何时会在预验证阶段注册crm 2011在线插件?

kee*_*erz 4 crm dynamics-crm dynamics-crm-2011 dynamics-crm-online

我知道注册用于预验证的插件在数据库事务之外执行,但我不确定我是否可以想到这种情况比预操作更可取.有人能举例说明预验证注册可能有用吗?

glo*_*rob 14

我们在'PreValidation'事件中注册了一些插件,尽管这是在本地,而不是在线.

我自己并没有写这些特定的插件,但我可以描述一个并给出使用'PreValidation'而不是'PreOperation'的理由.

实体:账户

事件:删除

逻辑:插件运行预验证.检查没有联系人引用任何帐户的地址.如果找到任何,请停止执行.如果没有,请删除帐户.

例如

账户'Stackoverflow'的地址是'Jeff Attwood's House'和联系'glosrob'.'glosrob'通过定制引用'Jeff Attwood's House'.如果用户选择删除"StackOverflow",我们应该检测到'glosrob'正在引用一个地址并阻止删除.

这背后的原因是开发人员发现在PreOperation阶段,删除的某些方面已经发生,即级联删除.插件的逻辑要求我们检查所有联系人 - 通过在PreOperation注册,帐户下的联系人已被删除,使检查过时.

在我们之前的场景中,当用户选择删除"StackOverflow"帐户时,联系人'glosrob'将在插件运行之前被删除.因此,当插件之后运行时,它将允许删除.

与CRM中的大多数事情一样,这一切都归结为需求和解决方案,但我认为这可以让您了解为什么/何时可以使用PreValidation阶段.我们还有一些其他类似的推理在"删除"事件上运行.

  • 啊,这是我的解释,我想.基本上,在预验证阶段,一切都没有发生.在预操作阶段,已发生级联删除但它们发生在事务内部,这意味着它们可以回滚.如果您原谅图表的粗糙(lol),我试图解释我的意思http://i.imgur.com/sz84B.png (9认同)