Acumatica:从另一个图表插入 POLine 的问题

Acumatica: Issue inserting POLine from another Graph

我有一个基于自定义 DAC 的自定义图表,在该图表的 fieldUpdated 事件中,我插入了一个 POLine。插入工作正常并且该行出现在 PO 上,但是 PO Header 行总计没有更新并且没有 PlanID 分配给 PO 行.当在 PO 订单输入屏幕上手动输入 PO 行时,PlanID 和 Header 行总计值为图表中的 assigned/updated。

我的(总结)代码如下:

public SelectFrom<POOrder>.View POView;
public SelectFrom<POLine>
      .Where<POLine.pONbr.IsEqual<
     POOrder.orderNbr.FromCurrent>>
     .View POLineView;

protected virtual void _(Events.FieldUpdated<PSCHOrder, PSCHOrder.pOOrderNbr> e)
        {

            if (e.NewValue != null && !string.IsNullOrEmpty((string)e.NewValue))
            {

                var sorder = PXSelect<POOrder, Where<POOrder.orderNbr, Equal<Required<POOrder.orderNbr>>>>.Select(this, e.NewValue);
                POView.Current = sorder;

                var line = new POLine();
                line.OrderNbr = e.NewValue;
                line.OrderQty = 1;
                line.TranDesc = "my desc";
                line.InventoryID = id; //code to lookup id not shown
                //Assign Some Custom Fields
                PXCache<POLine>.GetExtension<POLineExt>(line).UsrDoorCD = "xxx";
                PXCache<POLine>.GetExtension<POLineExt>(line).UsrDoorPoNbr = "yyy"
                PXCache<POLine>.GetExtension<POLineExt>(line).UsrJobName = "abc";
                //Insert Line
                savedLine = this.POLineView.Insert(line);

            }
}

这是设计不正确还是我遗漏了什么?

这些字段(lineTotal 或 PlanID)都不会自动计算。您将需要更新。否则,执行此操作的最佳方法是创建 POOrderEntry 的图形实例并通过该图形的视图插入线。然而,在事件处理程序中创建图形实例并不是好的做法。

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