2016年6月13日 星期一

CRM2011 Opportunity Alert Message on Close Won(Plugin)

CRM2011 Opportunity Alert Message on Close Won(Plugin)

PreWinOpportunity.cs

if (context.InputParameters.Contains("OpportunityClose") && context.InputParameters["OpportunityClose"] is Entity)

            {

                #region Throw Exception For Test

                //throw new InvalidPluginExecutionException("PreWinOpportunity - OpportunityCloseWon");

                #endregion



                var entity = (Entity)context.InputParameters["OpportunityClose"];



                if (entity.Attributes.Contains("opportunityid"))

                {

                    var opportunityId = ((EntityReference)entity.Attributes["opportunityid"]).Id;



                    var serviceFactory =

                     (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));



                    // Getting the service from the Organisation Service.

                    IOrganizationService crmService = serviceFactory.CreateOrganizationService(context.UserId);



                    Entity opportunity = crmService.Retrieve("opportunity", opportunityId, new ColumnSet(new string[] { "description" }));

                    if (!opportunity.Contains("description"))

                    {

                        throw new InvalidPluginExecutionException("You must provide a value for description.");

                    }

                    else

                    {

                        //throw new InvalidPluginExecutionException("none");

                    }

                }

                else

                {

                    throw new InvalidPluginExecutionException("none:opportunityid");

                }

            }

            else

            {

                throw new InvalidPluginExecutionException("none:PreWinOpportunity - OpportunityCloseWon");

            }

        }


PluginRegistration.exe



沒有留言:

張貼留言