You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在创建采购订单流程中把Production Nbr.值填充至用户字段?

实现从「创建采购订单」流程的“Production Nbr.”字段填充采购订单自定义字段

重写CreatePOOrders方法并注入字段赋值逻辑

你可以通过重写目标方法,在采购订单创建前添加POOrder的RowInserting事件处理器,从POFixedDemand列表(即创建PO的需求源)中获取“Production Nbr.”值,填充到自定义字段中。以下是具体实现代码:

public class POOrderEntry_Extension : PXGraphExtension<POOrderEntry>
{
    // 定义原方法的委托
    public delegate PXRedirectRequiredException CreatePOOrdersDelegate(List<POFixedDemand> list, DateTime? PurchDate, bool extSort, int? branchID = null);

    // 重写CreatePOOrders方法
    [PXOverride]
    public virtual PXRedirectRequiredException CreatePOOrders(List<POFixedDemand> list, DateTime? PurchDate, bool extSort, int? branchID = null, CreatePOOrdersDelegate baseMethod)
    {
        // 创建POOrder图实例,用于注入事件
        POOrderEntry poGraph = PXGraph.CreateInstance<POOrderEntry>();

        // 添加POOrder行插入前的事件处理
        poGraph.RowInserting.AddHandler<POOrder>((sender, e) =>
        {
            POOrder newPO = e.Row as POOrder;
            if (newPO == null || list?.Count == 0) return;

            // 从需求列表中获取Production Nbr.(示例取第一个需求行的值,可根据业务调整)
            POFixedDemand firstDemand = list.FirstOrDefault();
            if (firstDemand != null && !string.IsNullOrEmpty(firstDemand.ProductionNbr))
            {
                // 替换为你的采购订单自定义字段名,比如UsrProductionNbr
                newPO.UsrProductionNbr = firstDemand.ProductionNbr;
                // 显式标记字段修改,确保值被保存
                poGraph.Caches[typeof(POOrder)].SetValueExt<POOrder.usrProductionNbr>(newPO, firstDemand.ProductionNbr);
            }
        });

        // 调用原方法完成PO创建流程
        return baseMethod(list, PurchDate, extSort, branchID);
    }
}

关键注意事项

  • 字段替换:将代码中的UsrProductionNbr替换为你实际在采购订单上创建的自定义用户字段名,同时确保POFixedDemand中的生产订单号字段是ProductionNbr(如果不是,替换为系统实际对应的字段名,比如PlanOrdNbr)。
  • 多需求行处理:示例中取了需求列表的第一个值,如果你的业务场景是一个PO对应多个生产订单需求,需要调整逻辑确定最终要填充的Production Nbr.(比如取所有值拼接、或按特定规则选取)。
  • 空值校验:代码中加入了空值判断,避免因需求列表为空或字段无值导致的异常。

内容的提问来源于stack exchange,提问作者pmfith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:05:00