由于自定义(在 Acumatia ERP 系统中),在付款和应用程序 (AR302000) 屏幕中添加新的详细信息行时出错

Error when add new detail row in Payments and Applications (AR302000) screen because of customization (in Acumatia ERP System)

我已经在 Acumatica ERP 的屏幕支付和应用程序中创建了一些自定义。我创建了 ARPaymentEntryExtension.cs

的新扩展

以下为源码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using PX.Data;
using PX.Objects.AR;
using PX.Objects.GL;

namespace SGLCustomizeProject
{
     public class ARPaymentEntryExtension: PXGraphExtension<ARPaymentEntry>
     {
         #region Override Button Menu
         public override void Initialize()
         {
            Base.report.AddMenuAction(ReceiptVoucher);
         }
         #endregion

         #region Button Receipt Vocher 
         public PXAction<ARPayment> ReceiptVoucher;
         [PXButton]
         [PXUIField(DisplayName = "Receipt Voucher")]
         public IEnumerable receiptVoucher(PXAdapter adapter)
         {
             var result = adapter.Get<ARPayment>();
             foreach (ARPayment doc in result)
             {
                 object FinPeriodID;
                 if (Base.Caches[typeof(ARPayment)].GetStatus(doc) == PXEntryStatus.Notchanged)
                 {
                     Base.Caches[typeof(ARPayment)].SetStatus(doc, PXEntryStatus.Updated);
                 }
                 Base.Save.Press();

                 var docPeriod = (FinPeriodID = Base.Caches[typeof(ARPayment)].GetValueExt<ARRegister.finPeriodID>(doc)) is PXFieldState ? (string)((PXFieldState)FinPeriodID).Value : (string)FinPeriodID;
                 Dictionary<string, string> parameters = new Dictionary<string, string>();
                 parameters["ReferenceNbr"] = doc.RefNbr;
                 throw new PXReportRequiredException(parameters, "AR909095", "Report");
            }
            return result;
        }
        #endregion
    }
 }

我使用上面的 extensoin 从当前屏幕预览报告并且它有效。 当用户需要创建新文档然后添加一些详细文档然后单击保存按钮时,它将起作用。

但是,当用户需要添加另一个明细文件然后点击保存按钮时,系统会显示错误信息。

请参考以下截图

实际上,错误消息是在 Acumatica 升级到版本 2017 R2 - Build 17.207.0029 后出现的。 在以前的版本(版本 5.3 - Build 5.30.4209)中它工作正常。

有谁知道如何解决这个问题?

我已经通过删除代码的以下 If 条件解决了这个问题:

if (Base.Caches[typeof(ARPayment)].GetStatus(doc) == PXEntryStatus.Notchanged)
             {
                 Base.Caches[typeof(ARPayment)].SetStatus(doc, PXEntryStatus.Updated);
             }

删除上面的代码后,定制工作正常,没有错误。