Friday, 27 June 2014

Plugin pre-stages - some subtleties

The CRM SDK describes the main differences in plug stages here. However, there are some additional differences between the pre-validation and pre-operation stages that are not documented.

Compound Operations
The CRM SDK includes some compound operations that affect more than one entity. One example is the QualifyLead message, which can update (or create) the lead, contact, account and opportunity entities. With compound operations, the pre-validation event fires only once, on the original message (QualifyLead in this case) whereas the pre-operation event fires for each operation.
You do not get the pre-validation event for the individual operations. A key consequence of this is that if, for example, you register a plugin on pre-validation of Create for the account entity, it will not fire if an account is created via QualifyLead. However, a plugin on the pre-operation of Create for the account entity will fire if an account is created via QualifyLead.

Activities and Activity Parties
I've posted about this before, however it's worth including it in this context. When you create an activity, there will be an operation for the main activity entity, and separate operations to create activityparty records for any attribute of type partylist (e.g. the sender or recipient). The data for the activityparty appears to be evaluated within the overall validation - i.e. before the pre-operation stage. The key consequence is that any changes made to the Target InputParameter that would affect an activityparty will only be picked up if made in the pre-validation stage for the activity entity.

8 comments:

Evincible Solutions said...

This article was very helpful in answering alot of questions about Microsoft Dynamics CRM. I will be looking forward to such companies like Evincible Solutions. Thanks for posting.

Skill Quotient said...


That's awesum ! really liked your blog.
Microsoft Dynamics AX Training | Microsoft Dynamics CRM Online Training

kbs training institute said...

great information this really useful article for microsoft dynamics learners really interesting keep it well going
Microsoft Dynamics CRM Training

Leslie Lim said...

I'm impressed. You're truly well informed and very intelligent. You wrote something that people could understand and made the subject intriguing for everyone. I'm saving this for future use.


Rica
www.imarksweb.org

Raju Kumar said...


Excellent site you’ve got here.. It’s difficult to find excellent writing like yours nowadays. I honestly appreciate people like you! Take care!!
SAP APO Online Training

sarah lee said...

I really enjoyed reading your article. I found this as an informative and interesting post, so i think it is very useful and knowledgeable. I would like to thank you for the effort you have made in writing this article.


edupdf.org

Herry jonson said...

We are expert and professional in ms crm series. Here are option for the all these articles Microsoft Dynamics CRM blog : Ms crm 2011 , 2013 and 2015 step by step tutorial of ms crm error in mscrm plugin workflow ms crm javascript Code .

Lilly Miller said...

Hello! Thank you so much, it's very important to know some additional differences between the pre-validation and pre-operation stages. I think it will be extremely useful for me, because I've used only dynamics ax and now I'm learning other business systems.