在 Acumatica 系统中自定义发布 AP 文档

Customize Release AP Document in Acumatica System

我对 Acumatica 中的 BLC 有疑问。 正如我们所知,屏幕发票和备忘录 (AR301000) 中的发布过程使用调用 ARDocumentRelease 静态方法 ReleaseDoc 的 ARInvoiceEntry BLC。 ReleaseDoc 调用虚拟 ReleaseDocProc 方法,创建 GLTran 记录。

我的问题:这种情况是否也在调用 APDocumentRelease 静态方法 ReleaseDoc 的 APInvoiceEntry BLC 中实现。 ReleaseDoc 也调用虚拟 ReleaseDocProc 方法 ?

因为我在屏幕发票和备忘录中有一个附加字段,并且希望在单击按钮释放时将此附加字段中的值发送到日记账交易。尽管从屏幕发票和备忘录以及从 AR 发布过程屏幕发布。我已经完成了这个定制。

现在我需要对屏幕 AP Release Process 屏幕做同样的事情。

有什么建议如何提供吗?

尝试这样的事情(我从问题 复制粘贴代码并修改它):

using System;
using System.Collections.Generic;
using PX.Data;
using PX.Objects.AP;
using PX.Objects.GL;
using PX.Objects.CM;
using PX.Objects.CS;
using PX.Objects.IN;

namespace SGLCustomizeProject
{

    public class ARRelaseProcessExtension : PXGraphExtension<APReleaseProcess>
    {
        public delegate List<APRegister> ReleaseDocProcDel(JournalEntry je, ref APRegister doc, PXResult<APInvoice, CurrencyInfo, Terms, Vendor> res, bool isPrebooking, out List<INRegister> inDocs);
        [PXOverride]
        public virtual List<APRegister> ReleaseDocProc(JournalEntry je, ref APRegister doc, PXResult<APInvoice, CurrencyInfo, Terms, Vendor> res, bool isPrebooking, out List<INRegister> inDocs, ReleaseDocProcDel del)
        {
            je.RowInserting.AddHandler<GLTran>((sender, e) =>
            {
                GLTran glTran = e.Row as GLTran;

                APInvoice api = PXSelect<APInvoice, Where<APInvoice.refNbr, Equal<Required<GLTran.refNbr>>, And<APInvoice.docType, Equal<Required<GLTran.tranType>>>>>.Select(sender.Graph, glTran.RefNbr, glTran.TranType);
                if (api != null && api.InvoiceNbr != null)
                {
                    GLTranExtension glTex = PXCache<GLTran>.GetExtension<GLTranExtension>(glTran);
                    glTex.UsrInvoiceNbr = api.InvoiceNbr;
                }
            });
            return del(je, ref doc, res, isPrebooking, out inDocs);
        }
    }
}