Hi team,
I'm currently experiencing an issue when I try and use QuoteCloseRequest in my code:
public void CloseQuotes(string opportunityGuid) { var dataVerseConnection = new ServiceClient(_connectionString); if (!dataVerseConnection.IsReady) { throw new Exception("Authentication Failed!"); } var columns = new ColumnSet(new string[] { "quoteid" }); var entityCollection = DynamicsConnection.GetEntityCollection(dataVerseConnection, "quote", "opportunityid", opportunityGuid, columns); var quoteList = new List(); foreach (var attr in entityCollection.Entities.ToArray()) { var quoteId = attr.Attributes["quoteid"].ToString(); quoteList.Add(new Quote().Get(quoteId)); } foreach (var quote in quoteList) { /* StateCode 0 - Draft 1 - Active 2 - Won 3 - Closed StatusCode 1 - In Progress (Draft) 2 - In Progress (Active) 4 - Won 5 - Lost 7 - Revised */ if (quote.stateCodeName == "Active") { Console.WriteLine($"Closing Active Quote: {quote.name}"); // close quote quote.stateCode = 3; quote.stateCodeName = "Closed"; quote.statusCode = 7; quote.statusCodeName = "Revised"; var req = new CloseQuoteRequest(); var quoteClose = new Entity("quoteclose"); quoteClose.Attributes.Add("quoteid", new EntityReference("quote", new Guid(quote.guid))); req.QuoteClose = quoteClose; req.RequestName = "CloseQuote"; var o = new OptionSetValue(); o.Value = -1; req.Status = o; dataVerseConnection.Execute(req); } else if (quote.stateCodeName == "Draft") { Console.WriteLine($"Deleting Draft Quote: {quote.name}"); new Quote().Delete(quote); } } }
This is the error received when I run this code:
System.Private.CoreLib: Exception while executing function: OpportunityCloseQuotes. Microsoft.PowerPlatform.Dataverse.Client: Failed to connect to Dataverse. System.Private.CoreLib: One or more errors occurred. (Exception - Fault While initializing client - RefreshInstanceDetails). Microsoft.PowerPlatform.Dataverse.Client: Exception - Fault While initializing client - RefreshInstanceDetails. Microsoft.PowerPlatform.Dataverse.Client: Exception - Failed to lookup current organization data. Microsoft.PowerPlatform.Dataverse.Client: [A]Microsoft.Crm.Sdk.Messages.RetrieveCurrentOrganizationResponse cannot be cast to [B]Microsoft.Crm.Sdk.Messages.RetrieveCurrentOrganizationResponse. Type A originates from 'Microsoft.Crm.Sdk.Proxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location '*\DynamicsFunctions\bin\Release\netcoreapp3.1\bin\Microsoft.Crm.Sdk.Proxy.dll'. Type B originates from 'Microsoft.Cds.Sdk.Proxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' in the context 'Default' at location '*\DynamicsFunctions\bin\Release\netcoreapp3.1\bin\Microsoft.Cds.Sdk.Proxy.dll'.
When I comment out the CloseQuoteRequest instantiation, the code runs fine.
What is happening, and what changes can I make to make this code run?