Reputation: 557
I have had this problem show up (I think) many times, in different ways. I discussed one of them here (Invalid Column Name) It always seems to be a customer that I am upgrading to a new version of Acumatica, and applying customizations.
I took a customer's existing data and, using ac.config, I upgrade them to 2021 R2:
Then I upgrade the customizations to use the new DLLs, and publish them on the customer's 2021 R2 system.
Next, I try to pull up Service Orders (Screen ID: FS3001PL) to test the customizations, but I get this Error:
"A field with the name sODetID cannot be found"
Looking through the source code to the customizations, that field isn't used specifically anywhere.
[EDIT in response to Patrick Chen's Answer] In the GI, the table for FSSODet was referenced. And that table has sODetID in it. But it is never used. So, I removed the tables from the GI and now I see this strange error:
Even though that table is never referenced in any of the GI's tabs.
So, I unpublish all of the customizations. The error persists.
Screenshot of error (error log from Acumatica at the end):
So, I switch to a different Tenant, that has the standard sales demo data (and no Customizations).
In this tenant, I can get into Service Orders just fine.
My VS 2020 debugger doesn't stop when this error gets hit, so I am not sure how to even go about debugging this.
Any ideas?
The stack trace (FWIW) is:
[PXException: Error: A field with the name sODetID cannot be found.]
PX.Data.Description.GI.PXDesignedQueryProvider.GetValue(PXQueryDescription descr, String value, IPXValue field, PXTable table, String alias, Boolean& useExt, Nullable`1& condition) +2949
PX.Data.Description.GI.PXDesignedQueryProvider.CollectRelations(PXQueryDescription descr) +1378
PX.Data.Description.GI.PXDesignedQueryProvider.FillDescription(PXQueryDescription descr) +166
PX.Data.Description.GI.PXQueryDescription.Create(IGenericQueryProvider prov) +73
PX.Data.PXGenericInqGrph.get_BaseQueryDescription() +39
PX.Data.PXGenericInqGrph.CollectDescriptionFields() +47
PX.Data.PXGenericInqGrph.PrepareCaches(GIDescription def, Dictionary`2 parameters) +310
PX.Data.PXGenericInqGrph.PrepareCaches(String id, String name, Dictionary`2 parameters, Boolean fetchSchema) +466
PX.Web.UI.PXGenericDataSource.InstantiateDataGraph(Type type) +785
PX.Web.UI.PXBaseDataSource.CreateDataGraphAsSingleton(Type type) +560
PX.Web.UI.PXBaseDataSource.CreateDataGraph(Type type) +175
PX.Web.UI.PXBaseDataSource.get_DataGraph() +412
PX.Web.UI.PXDataSource.HasDashboardsSupport() +16
PX.Common.Tools.With(TInput o, Func`2 evaluator) +75
PX.Web.UI.PXGrid.RenderToolsRow(Boolean top) +1910
PX.Web.UI.PXGrid.CreateChildControls(IEnumerable dataSource, Boolean dataBinding) +867
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +230
System.Web.UI.Control.EnsureChildControls() +130
System.Web.UI.WebControls.CompositeDataBoundControl.get_Controls() +24
PX.Web.UI.PXSmartPanel.CollectInnerControls(ControlCollection controls, Boolean load, Boolean collectUpdatable) +347
PX.Web.UI.PXSmartPanel.CollectInnerControls(Boolean load) +110
PX.Web.UI.PXSmartPanel.SetBindingState(Boolean load) +109
PX.Web.UI.PXSmartPanel.OnInit(EventArgs e) +99
System.Web.UI.Control.InitRecursive(Control namingContainer) +454
System.Web.UI.Control.InitRecursive(Control namingContainer) +219
System.Web.UI.Control.InitRecursive(Control namingContainer) +219
System.Web.UI.Control.InitRecursive(Control namingContainer) +219
System.Web.UI.Control.InitRecursive(Control namingContainer) +219
System.Web.UI.Control.InitRecursive(Control namingContainer) +219
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1719
Upvotes: 0
Views: 468
Reputation: 1056
Sounds like the GI you're trying to access has been altered to include this field by some customization. Unpublishing the customization doesn't remove all elements of a customization,see below, so you might try and edit the GI (FS3001PL) using SM208000
Upvotes: 0