2017-12-29 24 views
0

Wir haben eine zusätzliche Tabelle in Acumatica hinzugefügt. Eines der Felder verursacht einen Fehler. Wir haben Änderungen in SQL Server vorgenommen und den Code aktualisiert. Das Feld mit dem Fehler im Code definiert:Zusätzliche Felder zu benutzerdefinierten Tabelle in Acumatica hinzugefügt hat Fehler verursacht. Wie löst man?

#region LastRevisionInventoryID 
[PXDBInt]  
[PXUIField(DisplayName = "Last Revision Inventory ID")] 

public int LastRevisionInventoryID { get; set; } 

public class lastRevisionInventoryID : IBqlField{} 

#endregion 

Der Code überprüft und veröffentlicht, aber wir erhalten die folgende Fehlermeldung, wenn wir versuchen, den Bildschirm zu öffnen, nachdem die Felder auf den Bildschirm hinzufügen.

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an 
object.] 
_SetValueByOrdinal(ItemBaseDocument , Int32 , Object , 
PXCacheExtension[]) +1012 
PX.Data.PXCache`1.SetValueByOrdinal(TNode data, Int32 ordinal, Object 
value, PXCacheExtension[] extensions) +84 
PX.Data.PXCache`1.a(TNode A_0, TNode A_1, IDictionary A_2, 
PXCacheOperation A_3, Boolean A_4) +1273 

[PXException: Error: An error occurred during processing of the field 
LastRevisionInventoryID : Object reference not set to an instance of an 
object..] 
PX.Data.PXCache`1.a(TNode A_0, TNode A_1, IDictionary A_2, 
PXCacheOperation A_3, Boolean A_4) +2908 
PX.Data.PXCache`1.a(TNode A_0, TNode A_1, IDictionary A_2, 
PXCacheOperation A_3) +87 
PX.Data.PXCache`1.Insert(IDictionary values) +237 
PX.Data.PXGraph.ExecuteInsert(String viewName, IDictionary values, 
Object[] parameters) +187 
PX.Web.UI.PXBaseDataSource.a(Object[] A_0, Object[] A_1, String[] A_2, 
Boolean[] A_3, PXFilterRow[] A_4, DataSourceSelectArguments A_5) +1783 
PX.Web.UI.PXBaseDataSource.ExecuteSelect(String viewName, 
DataSourceSelectArguments arguments, PXDSSelectArguments pxarguments) 
+13769 
PX.Web.UI.PXDataSource.ExecuteSelect(String viewName, 
DataSourceSelectArguments arguments, PXDSSelectArguments pxarguments) 
+211 
PX.Web.UI.PXDataSourceView.Select(DataSourceSelectArguments arguments, 
PXDSSelectArguments swarguments, DataSourceViewSelectCallback callback) 
+65 
PX.Web.UI.PXFormDataProvider.DataBind() +381 
PX.Web.UI.PXBoundPanel.PerformSelect() +134 
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +138 
PX.Web.UI.PXDataViewBar.OnPreRender(EventArgs e) +33 
System.Web.UI.Control.PreRenderRecursiveInternal() +162 
System.Web.UI.Control.PreRenderRecursiveInternal() +256 
System.Web.UI.Control.PreRenderRecursiveInternal() +256 
System.Web.UI.Control.PreRenderRecursiveInternal() +256 
System.Web.UI.Control.PreRenderRecursiveInternal() +256 
System.Web.UI.Control.PreRenderRecursiveInternal() +256 
System.Web.UI.Control.PreRenderRecursiveInternal() +256 
System.Web.UI.Control.PreRenderRecursiveInternal() +256 
System.Web.UI.Control.PreRenderRecursiveInternal() +256 
System.Web.UI.Page.ProcessRequestMain(Boolean 
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
+6925 

Kann jemand helfen?

+0

ich den Verweis auf die neuen Felder entfernt, die int-Datentyp hatte und jetzt funktioniert es ohne Problem . Warum würde der folgende Code einen Fehler verursachen: –

+0

#region LastRevisionInventoryID [PXDBInt] [PXUIField (DisplayName = "Letzte Revision Inventory ID"]] public int LastRevisionInventoryID {get; einstellen; } Öffentliche Klasse lastRevisionInventoryID: IBqlField {} #endregion –

+0

Siehe Antwort unten. Derselbe Fehler wird erneut generiert, bis Sie alle benutzerdefinierten Feldtypen in NULL-Typen geändert haben. – RuslanDev

Antwort

0

In Acumatica alle DAC Felder müssen von einem Nullable-Typ sein, Nullable<int> oder int? in Ihrem Fall:

#region LastRevisionInventoryID 
public abstract class lastRevisionInventoryID : IBqlField { } 

[PXDBInt]  
[PXUIField(DisplayName = "Last Revision Inventory ID")] 
public int? LastRevisionInventoryID { get; set; } 
#endregion 
+0

Das hat funktioniert. Vielen Dank! –

+0

Bitte akzeptieren Sie die Antwort, indem Sie auf das Häkchen daneben klicken (https://stackoverflow.com/help/someone-answers) – RuslanDev

Verwandte Themen