Hello,
I have developed a plugin for CRM 2011 (using the CRM Developer Toolkit for Visual Studio 2012) that executes when an opportunity is closed as "Won." The plugin itself is very simple, I retrieve the OpportunityClose object from the InputParameters, and then pull the opportunityid attribute from that entity and pass it off to a web service. For Dynamics CRM 2011, this works fine- for Dynamics CRM 2013, the Id property on the OpportunityClose entity is an empty GUID.
Sample code:
protected void ExecutePostOpportunityWin(LocalPluginContext localContext) { if (localContext == null) { throw new ArgumentNullException("localContext"); } var oc = (Entity)localContext.PluginExecutionContext.InputParameters["OpportunityClose"]; var opportunityId = ((EntityReference)oc.Attributes["opportunityid"]).Id; var additionalProperties = new Dictionary<string, object>() { { "OpportunityCloseId", oc.Id } }; // (snip) code to pass values to web service }
Following the above code, as I step through in a debugger... when integrating with Dynamics CRM 2013, oc.Id is an empty GUID. In Dynamics CRM 2011, it is the correct value. I've done a number of searches and read a lot of documentation, but nothing I've found indicates that this is either a bug or an intentional change.
Thanks in advance,
Steve