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

如何在Acumatica中重写Prepare Payment[AP503000]的Create Payment方法

解决方案:在Acumatica 2022 R1中设置ExtRefNbr

1. 重写Prepare Payment(AP503000)的Process方法后设置ExtRefNbr

AP503000对应的Graph是APPaymentEntry,其中的Process方法虽为普通业务方法,但可通过创建GraphExtension结合PXOverride特性重写,在原方法执行完成后添加自定义逻辑设置ExtRefNbr。

示例代码:

public class APPaymentEntryExt : PXGraphExtension<APPaymentEntry>
{
    public delegate void ProcessDelegate(List<APPayment> list);

    [PXOverride]
    public void Process(List<APPayment> list, ProcessDelegate baseMethod)
    {
        // 先执行原Process方法
        baseMethod(list);

        // Process完成后批量设置ExtRefNbr
        foreach (APPayment payment in list)
        {
            APPayment updatedPayment = Base.Payments.SelectSingle(payment.BAccountID, payment.RefNbr);
            if (updatedPayment != null)
            {
                updatedPayment.ExtRefNbr = "自定义外部参考号"; // 替换为实际业务逻辑
                Base.Payments.Update(updatedPayment);
            }
        }
        Base.Actions.PressSave();
    }
}

2. 在Release Payments(AP505200)的Process方法前设置ExtRefNbr

AP505200对应的Graph是APPaymentRelease,同样可通过GraphExtension重写Process方法,在原方法执行前插入ExtRefNbr的设置逻辑。

示例代码:

public class APPaymentReleaseExt : PXGraphExtension<APPaymentRelease>
{
    public delegate void ProcessDelegate(List<APPayment> list);

    [PXOverride]
    public void Process(List<APPayment> list, ProcessDelegate baseMethod)
    {
        // Process执行前批量设置ExtRefNbr
        foreach (APPayment payment in list)
        {
            APPayment updatedPayment = Base.Payments.SelectSingle(payment.BAccountID, payment.RefNbr);
            if (updatedPayment != null)
            {
                updatedPayment.ExtRefNbr = "自定义外部参考号"; // 替换为实际业务逻辑
                Base.Payments.Update(updatedPayment);
            }
        }
        Base.Actions.PressSave();

        // 执行原Process方法
        baseMethod(list);
    }
}

关键说明

  • PXOverride是Acumatica扩展普通业务方法的标准方式,无需修改系统原生代码,完全兼容版本升级。
  • 更新ExtRefNbr后必须调用Base.Actions.PressSave(),确保修改持久化,避免后续流程无法读取到更新后的值。
  • 可根据业务需求替换示例中的固定值,比如关联单据字段、生成自动流水号等动态逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:02:42