【发布时间】: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);在分配分支字段之后和分配期间之前?