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

Acumatica 2020R2供应商发票集成后审批工作流激活咨询

Acumatica 2020R2 AP发票集成阶段临时停用审批方案

该需求完全可以实现,核心思路是通过自定义字段标记集成状态,结合审批流触发条件调整、Persist逻辑扩展完成控制,具体实现步骤如下:

1. 新增集成状态标识字段

打开定制项目,给APInvoice DAC新增布尔类型自定义字段,命名为UsrIsIntegrationCompleted,默认值设为false,用于区分发票是否完成第三方系统集成。

2. 调整审批流触发规则

  • 进入定制模块的工作流配置界面,找到*供应商发票(屏幕ID AP301000)*对应的审批工作流
  • 修改审批启动条件,新增规则:仅当UsrIsIntegrationCompleted = true 与原有审批触发条件同时满足时,才启动审批流程,未完成集成的发票不会进入审批队列。

3. 扩展Persist方法适配集成场景

如果需要在Persist阶段临时跳过审批校验,可扩展APInvoiceEntry图的Persist方法,示例代码如下:

public class APInvoiceEntryExt : PXGraphExtension<APInvoiceEntry>
{
    public delegate void PersistDelegate();
    [PXOverride]
    public void Persist(PersistDelegate baseMethod)
    {
        APInvoice currentInvoice = Base.Document.Current;
        if (currentInvoice != null)
        {
            // 自定义判断逻辑:当前是否为集成接口调用场景
            bool isIntegrationCall = /* 你的集成场景判断逻辑,例如接口标识、调用来源标记等 */;
            if (isIntegrationCall)
            {
                // 临时停用当前单据的审批校验
                Base.approval.Disable();
            }
        }
        // 执行原生Persist逻辑
        baseMethod();
        // 集成操作完成后更新状态,触发审批流
        if (/* 集成逻辑执行完毕的判断条件 */)
        {
            var invoiceExt = currentInvoice.GetExtension<APInvoiceExt>();
            invoiceExt.UsrIsIntegrationCompleted = true;
            Base.Document.Update(currentInvoice);
            Base.Persist();
            // 手动刷新审批状态,触发审批流初始化
            Base.approval.UpdateApproval(currentInvoice);
        }
    }
}

注意事项

  • 若使用Acumatica自带的审批分配功能而非自定义工作流,可直接在审批分配规则中添加UsrIsIntegrationCompleted = true的过滤条件,效果一致。
  • 集成完成后调用UpdateApproval方法即可自动触发审批流程,无需手动修改单据状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:39:04