Acumatica 创建直运采购订单时更新订单中的用户定义字段

Acumatica 创建直运采购订单时更新订单中的用户定义字段,acumatica,Acumatica,我必须重写函数来创建直运PO,并根据销售价格保证金低于一定百分比的情况更新PO表中的自定义字段。我已经浏览了POCreate的源代码。 采购订单是通过静态功能创建的 public static PXRedirectRequiredException CreatePOOrders(List<POFixedDemand> list, DateTime? PurchDate, bool extSort) 公共静态PXRedirectRequiredException CreatePOOr

我必须重写函数来创建直运PO,并根据销售价格保证金低于一定百分比的情况更新PO表中的自定义字段。我已经浏览了POCreate的源代码。 采购订单是通过静态功能创建的

public static PXRedirectRequiredException CreatePOOrders(List<POFixedDemand> list, DateTime? PurchDate, bool extSort)
公共静态PXRedirectRequiredException CreatePOOrders(列表、日期时间?PurcDate、bool extSort)

如何覆盖并添加我的逻辑来创建直运PO?

最好的方法是根据需要附加事件处理程序。这不是一个简单的案例,但这里有一个我几个月前写的例子。此代码正在将POLine描述更改为在末尾添加“Test”。您也可以使用它来填充自定义字段

public class POCreateExt : PXGraphExtension<POCreate>
{
    public override void Initialize()
    {
        PXGraph.InstanceCreated.AddHandler<POOrderEntry>((graph) =>
        {
            graph.RowUpdating.AddHandler<POLine>((sender, e) =>
            {
                POLine line = e.NewRow as POLine;
                POOrderEntry.SOLineSplit3 soLine = PXResult<POOrderEntry.SOLineSplit3>.Current;
                line.TranDesc = soLine.TranDesc + " TEST ";
            });
        });
    }
}
公共类pocreatext:PXGraphExtension
{
公共覆盖无效初始化()
{
PXGraph.InstanceCreated.AddHandler((图形)=>
{
graph.RowUpdating.AddHandler((发送方,e)=>
{
POLine线=e.NewRow为POLine;
POOrderEntry.SOLineSplit3 soLine=PXResult.Current;
line.TranDesc=soLine.TranDesc+“测试”;
});
});
}
}