Have you ever had an Opportunity that you were unable to update due to errors when trying to save the record in Infor CRM v8.3.06?
First, let me state that this has been fixed in later versions of Infor CRM, but below I will outline one probable cause.
Opportunities often have fields that link other Accounts to the Opportunity. One example is the Reseller Field. This field connects an AccountID to the Opportunity as the Reseller for that specific Opportunity. Customers many times have other fields with similar functionality connecting an Account to an Opportunity.
If you delete an Account that may be associated with any Opportunities, that orphans that specific Accountid on some Opportunities.
This will manifest itself when you try to update an Opportunity and you are unable to Save without error. You will get a general error on the screen. You will also be able to log into the server and in the Event Logs, you will see another error that looks similar to this:
This is just a portion of the error you might see. (You’ll find the full error message at the end of this article.) I have highlighted the AccountID that this error is looking for. It states that there is no row with the given Identifier. This is signaling you that the Accountid is missing from that Opportunity.
If you log into your Sql Enterprise Manager, you can write a script to look at the Opportunity in question.
Using a statement like this, you are able to view the problematic Opportunity.
Select * from Opportunity where Opportunity.opportunityid = ’07HSYA000A08′ (You can retrieve this ID from the Url, when you have the Opportunity open in the Web Client.)
You can then review that Opportunity and look for the Accountid that is a problem. (A6UH8A000AYX)
You will probably find that in the Resellerid field or another custom field.
Once you find that, it needs to be removed because that Account no longer exists.
You can update that field using a sql script like this.
Update sysdba.Opportunity set Resellerid = null where the OpportunityID = ’07HSYA000A08′
Once you have cleared that field, you will be able to update the Opportunity and save the record.
**Moral of the story is that you should always make sure that Accounts are not associated with any other entities prior to deleting.**
The description for Event ID 5033 from source Saleslogix Web Client cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.
If the event originated on another computer, the display information had to be saved with the event.
The following information was included with the event:
2020-08-17 16:05:03,776  ERROR SlxClient.OpportunityPage – Saleslogix Web Client unhandled exception during async postback [Saleslogix Error Id=SLX307152204CD1FB48]
“mitigation”: “AjaxErrorResponse (576)”,
“message”: “No row with the given identifier exists[Sage.SalesLogix.Entities.Account#A6UH8A000AYX].”,
“source”: “System.ComponentModel.ReflectPropertyDescriptor, System, Version=220.127.116.11, Culture=neutral, PublicKeyToken=b77a5c561934e089”,
“stackTrace”: ” at System.ComponentModel.ReflectPropertyDescriptor.SetValue(Object component, Object value)\r\n at Sage.Platform.EntityBinding.SecuredPropertyDescriptor.SetValue(Object component, Object value)\r\n at Sage.Platform.ComponentModel.ComponentViewPropertyDescriptor.SetValue(Object component, Object value, Boolean supressChangeNotification)\r\n at Sage.Platform.ComponentModel.ComponentViewPropertyDescriptor.SetValue(Object component, Object value)\r\n at Sage.Platform.EntityBinding.PropertyBinding.HydrateEntity()\r\n at Sage.Platform.EntityBinding.PropertyBinding.ChangedHandler(Object sender, EventArgs e)\r\n at System.Web.UI.WebControls.TextBox.OnTextChanged(EventArgs e)\r\n at System.Web.UI.WebControls.TextBox.RaisePostDataChangedEvent()\r\n at System.Web.UI.WebControls.TextBox.System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent()\r\n at System.Web.UI.Page.RaiseChangedEvents()\r\n at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)”,
“targetSite”: “Void SetValue(System.Object, System.Object)”,