Ejemplo n.º 1
0
        protected override void Execute(CodeActivityContext executionContext)
        {
            #region "Load CRM Service from context"

            Common objCommon = new Common(executionContext);
            objCommon.tracingService.Trace("Load CRM Service from context --- OK");

            #endregion

            #region "Read Parameters"
            EntityReference opportunity = this.Opportunity.Get(executionContext);
            if (opportunity == null)
            {
                return;
            }

            objCommon.tracingService.Trace("OpportunityID=" + opportunity.Id);
            #endregion

            #region "Generate Sales Order From Opportunity Execution"
            var generateSalesOrderFromOpportunityRequest = new GenerateSalesOrderFromOpportunityRequest
            {
                OpportunityId = opportunity.Id
            };

            var generateSalesOrderFromOpportunityResponse =
                (GenerateSalesOrderFromOpportunityResponse)objCommon.service.Execute(generateSalesOrderFromOpportunityRequest);
            Console.WriteLine("  Executed OK.");
            #endregion
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Generate a <c>SalesOrder</c> from the specified <c>Opportunity</c>.
        /// <para>
        /// For more information look at https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.generatesalesorderfromopportunityrequest(v=crm.8).aspx
        /// </para>
        /// </summary>
        /// <param name="opportunityId"><c>Opportunity</c> Id</param>
        /// <param name="retrievedColumns">
        /// Default attributes are "salesorderid", "name", "ordernumber", "totalamount".
        /// If you need more or different attributes please set this parameter
        /// </param>
        /// <returns>
        /// Returns created <c>SalesOrder</c> in <see cref="GenerateSalesOrderFromOpportunityResponse.Entity"/> property with attributes that defined in <c>retrievedQuoteColums</c> parameter
        /// </returns>
        public GenerateSalesOrderFromOpportunityResponse CreateFromOpportunity(Guid opportunityId, params string[] retrievedColumns)
        {
            ExceptionThrow.IfGuidEmpty(opportunityId, "opportunityId");

            string[] columns = !retrievedColumns.IsNullOrEmpty() ? retrievedColumns : _salesorderColumns;

            GenerateSalesOrderFromOpportunityRequest request = new GenerateSalesOrderFromOpportunityRequest()
            {
                OpportunityId = opportunityId,
                ColumnSet     = new ColumnSet(columns)
            };

            return((GenerateSalesOrderFromOpportunityResponse)this.OrganizationService.Execute(request));
        }
Ejemplo n.º 3
0
        public static Guid ConvertOpportunityToSalesOrder(OrganizationServiceProxy service, Guid opportunityId)
        {
            try
            {
                var generateSalesOrderFromOpportunityRequest = new GenerateSalesOrderFromOpportunityRequest()
                {
                    ColumnSet     = new ColumnSet(true),
                    OpportunityId = opportunityId
                };

                var generateSalesOrderFromOpportunityResponse =
                    (GenerateSalesOrderFromOpportunityResponse)service
                    .Execute(generateSalesOrderFromOpportunityRequest);

                if (generateSalesOrderFromOpportunityResponse?.Entity == null ||
                    generateSalesOrderFromOpportunityResponse.Entity.Id == Guid.Empty)
                {
                    return(Guid.Empty);
                }

                var salesOrderId = generateSalesOrderFromOpportunityResponse.Entity.Id;

                return(salesOrderId);
            }
            catch (Exception ex)
            {
                LogService.LogMessage(service, new Log()
                {
                    Level        = (int)LogType.Error,
                    Name         = ex.Message,
                    FunctionName = ClassName + " | " + MethodBase.GetCurrentMethod().Name,
                    Message      = ex.InnerException != null ? ex.InnerException.Message : ex.Message
                });
                return(Guid.Empty);
            }
        }