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 }
/// <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)); }
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); } }