【问题标题】:How do I prevent SOLineSplit and INItemPlan from deleting when Qty = 0?当 Qty = 0 时,如何防止 SOLineSplit 和 INItemPlan 被删除?
【发布时间】:2017-09-02 03:39:18
【问题描述】:

我注意到当 SOLine 的数量为零时,该行没有可用的 SOLineSplit 或 INItemPlan 记录。第二次数量大于0,系统做这些记录,如果数量设置回0,则删除记录。

当记录设置为 0 数量时,有没有办法防止 SOLineSplit 和 INItemPlan 对象被删除?

如果 SOLine 最初是使用 0 数量创建的,是否有办法让系统仍然创建 SOLineSplit 和 INItemPlan?

问题的原因是客户希望系统在某个点后锁定 SOLine,但也允许从另一个屏幕调整数量。由于这不会直接更改 SOLine 屏幕上的值,因此不会触发事件来创建拆分和计划。

我已尝试在自定义屏幕中创建 SOOrderEntry 的实例,如下所示:

SOOrderEntry graph = PXGraph.CreateInstance<SOOrderEntry>();

//Also tried graph.Transactions.Current = line, but did not work
graph.Transactions.Update(line);

graph.Actions.PressSave();

这样做会导致空对象引用错误:

错误:处理字段 OrderQty 期间发生错误:对象引用未设置为对象的实例..

System.NullReferenceException:对象引用未设置为对象的实例。 在 PX.Objects.SO.SOOrderEntry.SOLine_OrderQty_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e) ...

【问题讨论】:

  • Microsoft SQL 服务器?

标签: acumatica


【解决方案1】:

我认为您在使用SOOrderEntry 时的声明的问题是您并没有真正加载图表中的订单以正确更新它。在创建图形实例之后和事务更新之前,您应该像这样加载文档标题...

SOOrderEntry graph = PXGraph.CreateInstance<SOOrderEntry>();

graph.Document.Current = graph.Document.Search<SOOrder.orderNbr>(line.OrderNbr, line.OrderType); 

if(graph.Document.Current == null)
{
    return;
}

graph.Transactions.Update(line);

graph.Actions.PressSave();

至于控制如何从 SOOrderEntry 输入计划和拆分记录...条目是通过 PlanID 上的属性控制的。附加的缓存是在 SOOrderEntry 上添加的地方...

[PXMergeAttributes(Method = MergeMethod.Append)]
[SOLineSplitPlanID(typeof(SOOrder.noteID), typeof(SOOrder.hold), typeof(SOOrder.orderDate))]
protected virtual void SOLineSplit_PlanID_CacheAttached(PXCache sender)
{
}

您可以制作自己的销售订单图形扩展,并用您自己的 SOLineSplitPlanID 版本替换属性...这对您来说可能是一场战斗,因为我不确定为什么您希望计划记录在零数量时存在计划。

【讨论】:

  • 我将尝试您的第一个解决方案。我宁愿不要弄乱 Acumatica 从根本上如何以这种方式工作,因为我确信它是有目的的。如果我可以在用户将值从零调整为大于零的任何值时创建拆分和计划,那将是完美的。
  • 我认为问题是当用户从零更改值时会创建拆分/计划记录吗?如果您使用 SOOrderEntry 图表,就像我展示的那样,它应该为您解决这个问题?
  • 哇,这个我有点脸。在我开始检查你写的内容后,我意识到我没有设置标题记录。哎呀...再次感谢布伦丹!
  • 没问题。很高兴这对你有用。感谢您的确认。
猜你喜欢
  • 2019-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多