0
私はAcumaticaバージョン5.00.2749で作業しています。Acumatica、エラー#115無効なオブジェクトには値が必要です
私はPXDBQuantity
またはPXDBDecimal
として定義されたフィールドの新しいレコードを挿入できないAcumatica DACを持っています。挿入されるレコードがDACからコメントアウトされている必要があります。
これはSQL CREATE TABLE
ステートメントからのものです。
[Qty] [float] NULL
ただし、次のいずれかの方法でデフォルト値が提供されているかどうかにかかわらず、同じエラーが生成されます。
[Qty] [float] NULL DEFAULT 0.0
又は
ALTER TABLE dbo.ImportTranDetail
ADD CONSTRAINT [DF_ImportTranDetail_Qty] DEFAULT ((0.0))
FOR [Qty]
以下断片は、DACからのものです。
#region Qty
public abstract class qty : PX.Data.IBqlField
{
}
protected Decimal? _Qty;
[PXDBQuantity()]
[PXDefault(TypeCode.Decimal, "0.0")]
[PXUIField(DisplayName = "Quantity", Visibility = PXUIVisibility.Visible)]
public virtual Decimal? Qty
{
get
{
return this._Qty;
}
set
{
this._Qty = value;
}
}
#endregion
ここに、レコードを挿入するコードフラグメントがあります。コードを実行するときにHasValue
が常にtrue
に等しく、例外がスローされないことに注意してください。
ImportTranDetail lookupTranDetail = new ImportTranDetail();
...
lookupTranDetail.Qty = 1; // also tried Convert.ToDecimal(1)
if (lookupTranDetail.Qty.HasValue == false)
{
// this is never executed
throw new PXException("Oops, Qty doesn't have a value again!");
}
// Consistently getting this error when trying to insert a new record
// Error #115: An error occurred while processing the field Qty : Nullable object must have a value
try
{
Details.Cache.Insert(lookupTranDetail);
}
catch (Exception ex)
{
throw new PXException(ex.Message);
}