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>();
我有一个基于自定义 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>();