Acumatica 我可以自定义现金销售中的释放操作吗?

Acumatica 我可以自定义现金销售中的释放操作吗?,acumatica,Acumatica,我需要改变发布程序的工作方式。具体来说,我需要更改Cash Sales站点上的Release按钮,以使用自定义字段填充Cash Account和Subaccount字段。我发现release按钮将进程转发到ARDocumentRelease.ReleaseDoc(),它位于PX.Objects.AR中。这让我相信我需要自定义“PX.Objects.AR”中存在的函数,但我不确定这是否可行 是否可以自定义PX.Objects DLL中存在的函数?如果没有,我是否可以强制DLL中的函数接收现金帐户和

我需要改变发布程序的工作方式。具体来说,我需要更改Cash Sales站点上的Release按钮,以使用自定义字段填充Cash Account和Subaccount字段。我发现release按钮将进程转发到
ARDocumentRelease.ReleaseDoc()
,它位于
PX.Objects.AR
中。这让我相信我需要自定义“PX.Objects.AR”中存在的函数,但我不确定这是否可行


是否可以自定义PX.Objects DLL中存在的函数?如果没有,我是否可以强制DLL中的函数接收现金帐户和子帐户值的自定义字段,而不是基本字段?

ArdDocumentRelease
是进程列表页,它为每个文档版本调用
ARReleaseProcess
,并且是一个图形。您可以创建一个图形扩展来覆盖它所做的调用,这是一个对ReleaseDocProc的虚拟调用,意味着您可以在图形扩展中使用
PXOverride
来覆盖调用。如果没有测试,它可能看起来像这样

public class ARReleaseProcessExtension : PXGraphExtension<PX.Objects.AR.ARReleaseProcess>
{
    [PXOverride]
    public virtual List<PX.Objects.AR.ARRegister> ReleaseDocProc(PX.Objects.GL.JournalEntry je, PX.Objects.AR.ARRegister ardoc, List<PX.Objects.GL.Batch> pmBatchList,
        PX.Objects.AR.ARDocumentRelease.ARMassProcessReleaseTransactionScopeDelegate onreleasecomplete, 
        Func<PX.Objects.GL.JournalEntry, PX.Objects.AR.ARRegister, List<PX.Objects.GL.Batch>, PX.Objects.AR.ARDocumentRelease.ARMassProcessReleaseTransactionScopeDelegate, List<PX.Objects.AR.ARRegister>> del)
    {
        //Code before...

        //The base call...
        var ret = del?.Invoke(je, ardoc, pmBatchList, onreleasecomplete);

        //Code after...

        return ret;
    }
}
公共类欠费处理扩展:pxGrapherExtension
{
[PXOverride]
公共虚拟列表ReleaseDocProc(PX.Objects.GL.JournalEntry je,PX.Objects.AR.ARRegister ardoc,List pmBatchList,
PX.Objects.AR.ARDocumentRelease.ARMassProcessReleaseTransactionScopeDelegate onrelease完成,
Func del)
{
//之前的代码。。。
//基本呼叫。。。
var ret=del?.Invoke(je、ardoc、pmBatchList、onreleasecomplete);
//后面的代码。。。
返回ret;
}
}

ARDocumentRelease
是流程列表页面,它为每个文档发布调用
延迟流程
,并且是一个图形。您可以创建一个图形扩展来覆盖它所做的调用,这是一个对ReleaseDocProc的虚拟调用,意味着您可以在图形扩展中使用
PXOverride
来覆盖调用。如果没有测试,它可能看起来像这样

public class ARReleaseProcessExtension : PXGraphExtension<PX.Objects.AR.ARReleaseProcess>
{
    [PXOverride]
    public virtual List<PX.Objects.AR.ARRegister> ReleaseDocProc(PX.Objects.GL.JournalEntry je, PX.Objects.AR.ARRegister ardoc, List<PX.Objects.GL.Batch> pmBatchList,
        PX.Objects.AR.ARDocumentRelease.ARMassProcessReleaseTransactionScopeDelegate onreleasecomplete, 
        Func<PX.Objects.GL.JournalEntry, PX.Objects.AR.ARRegister, List<PX.Objects.GL.Batch>, PX.Objects.AR.ARDocumentRelease.ARMassProcessReleaseTransactionScopeDelegate, List<PX.Objects.AR.ARRegister>> del)
    {
        //Code before...

        //The base call...
        var ret = del?.Invoke(je, ardoc, pmBatchList, onreleasecomplete);

        //Code after...

        return ret;
    }
}
公共类欠费处理扩展:pxGrapherExtension
{
[PXOverride]
公共虚拟列表ReleaseDocProc(PX.Objects.GL.JournalEntry je,PX.Objects.AR.ARRegister ardoc,List pmBatchList,
PX.Objects.AR.ARDocumentRelease.ARMassProcessReleaseTransactionScopeDelegate onrelease完成,
Func del)
{
//之前的代码。。。
//基本呼叫。。。
var ret=del?.Invoke(je、ardoc、pmBatchList、onreleasecomplete);
//后面的代码。。。
返回ret;
}
}

Ahhh-ha,我试试看。是否每个图都有一个发布过程图?大多数主要模块,如AR、AP、IN等,都有一个文档发布过程。发布过程很可能会处理所有类型的文档,所以请确保您使用的是您需要的文档类型(我没有使用AR和AP文档来了解不同的文档,只是假设存在差异和不同的文档类型)啊哈,我会尝试一下。是否每个图都有一个发布过程图?大多数主要模块,如AR、AP、IN等,都有一个文档发布过程。发布流程很可能会处理所有类型的文档,因此只需确保您使用的是所需的文档类型(我没有使用应收账款和应付账款文档来了解不同类型的文档,只是假设存在差异和不同的文档类型)