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

Acumatica 2021R2下OpportunityMaint无CreateSalesOrder动作问题咨询

适配Acumatica 2021R2商机转销售订单自定义逻辑方案

问题原因

Acumatica 2021R2对商机模块的通用逻辑做了抽象重构,原来OpportunityMaint图中定义的CreateSalesOrder方法被迁移到了抽象扩展类PX.Objects.CR.Extensions.CRCreateSalesOrder中,OpportunityMaint对应的具体业务实现由该抽象类的派生扩展完成,因此直接在OpportunityMaint的图扩展中重写该方法会提示不存在。

解决方案

你需要针对CRCreateSalesOrder针对OpportunityMaint的具体实现扩展做重写,示例代码如下:

// 扩展类需要继承自 PXGraphExtension<目标扩展类, 主图类型>
public class CRCreateSalesOrderExt : PXGraphExtension<CRCreateSalesOrder<OpportunityMaint, CROpportunity, CRCreateSalesOrderFilter>, OpportunityMaint>
{
    public delegate IEnumerable createSalesOrderDelegate(PXAdapter adapter);

    [PXOverride]
    public virtual IEnumerable CreateSalesOrder(PXAdapter adapter, createSalesOrderDelegate baseMethod)
    {
        PXTrace.WriteInformation("商机转销售订单自定义逻辑触发");

        PXGraph.InstanceCreated.AddHandler<SOOrderEntry>((graph) =>
        {
            // 自定义SOOrder头字段赋值逻辑
            graph.RowInserted.AddHandler<SOOrder>((sender, e) =>
            {
                SOOrder order = (SOOrder)e.Row;
                SOOrderExt orderExt = PXCache<SOOrder>.GetExtension<SOOrderExt>(order);
                orderExt.UsrCustomOne = "Howdy"; 
            });

            // 新增SOLine行默认值填充逻辑(适配你需要的商机Products字段同步需求)
            graph.RowInserted.AddHandler<SOLine>((sender, e) =>
            {
                SOLine line = (SOLine)e.Row;
                // 此处可从Base.CurrentCROpportunity获取当前商机关联的Products数据,赋值给SOLine对应字段即可
                // SOLineExt lineExt = PXCache<SOLine>.GetExtension<SOLineExt>(line);
                // lineExt.UsrCustomField = 对应商机产品值;
            });
        });

        return baseMethod(adapter);
    }
}

注意事项

  • 扩展类的泛型顺序不能错,第一个泛型参数是要扩展的CRCreateSalesOrder实例,第二个是主图OpportunityMaint类型
  • 可通过Base直接访问当前OpportunityMaint图的上下文数据,通过Base1访问CRCreateSalesOrder扩展的内置属性和方法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:24:03