【问题标题】:Cannot create a kit via code after upgrade to Acumatica 2022R1 (22.106.0015) - financial period cannot be specified升级到 Acumatica 2022R1 (22.106.0015) 后无法通过代码创建套件 - 无法指定财务期
【发布时间】:2022-10-19 04:42:01
【问题描述】:

我们有一个自定义处理屏幕,用于创建升级到 2022R1 后停止工作的套件组件。

代码:(我添加了行以尝试设置交易日期和财务期间;日期已设置,但 FinPeriod 行无效)

protected virtual void GenerateKitAssembly(KitAssemblyEntry kitGraph, ProcessKitAssemblyItemInfoPX soline)
        {
            kitGraph.Clear();

            INKitRegister doc = PXCache<INKitRegister>.CreateCopy(kitGraph.Document.Insert(new INKitRegister()));
            doc.InventoryID = soline.InventoryID;
            doc.KitRevisionID = soline.KitRevisionID;
            doc.Qty = soline.AssemblyQty;
            doc.UOM = soline.UOM;
            doc.Hold = true;
            doc.Status = INDocStatus.Hold;
            doc.BranchID = soline.BranchID;
            doc.TranBranchID = soline.BranchID;
            doc.TranDate = DateTime.Now;
            doc.TranTranDate = DateTime.Now;
            doc.FinPeriodID = DateTime.Now.ToString("yyyyMM");
            doc.TranFinPeriodID = DateTime.Now.ToString("yyyyMM");
            doc.TranPeriodID = DateTime.Now.ToString("yyyyMM");
            doc.TranTranPeriodID = DateTime.Now.ToString("yyyyMM");
            doc.SiteID = soline.SiteID;

            doc.GetExtension<INKitRegisterExt>().UsrManualProcess = soline.RoboticsFulfill == null ? true : !soline.RoboticsFulfill;

            doc = kitGraph.Document.Update(doc);

错误:

 PX.Data.PXFieldValueProcessingException
   HResult=0x80131500
  Message=Error: An error occurred during processing of the field Post Period value 07-2022 GL Error: The financial period cannot be specified because the branch has not been specified in the Branch box.
  Source=PX.Data
  StackTrace:
   at PX.Data.PXCache`1.FillWithValues(TNode item, TNode copy, TNode newitem)
   at PX.Data.PXCache`1.Update(Object data, Boolean bypassinterceptor)
   at PX.Data.PXCache`1.Update(Object data, Boolean bypassinterceptor)
   at PX.Data.PXSelectBase`1.Update(Table item)
   at PX.CreateKitAssemblyFromSO.Ext.ProcessKitAssemblyItemsPX.GenerateKitAssembly(KitAssemblyEntry kitGraph, ProcessKitAssemblyItemInfoPX soline) in C:\Apps\Acumatica\AcumaticaUpgrade\App_Data\Projects\IntegraOptics\IntegraOptics\IN\ProcessKitAssemblyItemsPX.cs:line 143

  This exception was originally thrown at this call stack:
    [External Code]

Inner Exception 1:
PXSetPropertyException: GL Error: The financial period cannot be specified because the branch has not been specified in the Branch box.

我有一个字段更新处理程序,允许我检查工具包,我可以看到与 Fin Period 相关的字段都是空的,但是引发异常的代码被埋藏在 Acumatica 代码中。

有人可以帮助确定升级版本发生了什么变化以及我需要做些什么来解决这个问题?我已经确认登录的用户有一个默认的分支集,我可以看到在 GUI 中选择了公司分支。

【问题讨论】:

  • 系统中是否有多个公司/分支机构?分支机构是否有任何角色限制?看起来代码无法将 SO 行中的分支 ID 应用到 INKitRegister.BranchID 字段。
  • 如果你插入它是否有效doc = kitGraph.Document.Update(doc);在分配分支字段之后和分配期间之前?

标签: acumatica acumatica-kb


【解决方案1】:

看起来我们在 KitAssemblyEntry 扩展中有一个方法试图立即更新套件的一些信息并导致创建套件处理屏幕出错。需要重写该函数以稍微改变操作的顺序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 2023-02-01
    • 1970-01-01
    • 2016-06-24
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多