2016-07-21 18 views
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); 
    } 

答えて

0

SQLでは、列はDACに対して適切に定義されていませんでした。

数量がFLOATし、AMTがFLOATたとDECIMAL(19,4)

に変更 DECIMAL(25,6) に変更
関連する問題