Acumatica2021R2 CreateSalesOrder 操作未在 OpportunityMaint 中定义

Acumatica2021R2 CreateSalesOrder action is not defined in OpportunityMaint

在新版本Acumatica 2021R2中,OpportunityMaint图中没有定义函数CreateSalesOrders,我需要将Products中的默认值添加到旧版本中的Solines中工作,但现在我收到错误消息,该函数在图中不存在,我看到该函数存在于 PX.Objects.CR.Extensions.CRCreateSalesOrder 中,但它是一个抽象的 class 并且我找不到实现或者它在元数据中

旧代码

public delegate IEnumerable createSalesOrder(PXAdapter adapter);

[PXOverride]
public virtual IEnumerable CreateSalesOrder(PXAdapter adapter, createSalesOrder baseMethod)
{
    PXTrace.WriteInformation("try ");

    PXGraph.InstanceCreated.AddHandler<SOOrderEntry>((graph) =>
    {
        graph.RowInserted.AddHandler<SOOrder>((sender, e) =>
        {
            SOOrder order = (SOOrder)e.Row;
            SOOrderExt orderExt = PXCache<SOOrder>.GetExtension<SOOrderExt>(order);

            orderExt.UsrCustomOne = "Howdy";  //assign anything you want here*/
        });
    });

    return baseMethod(adapter);
 }

但这会引发错误

The actions is not defined in the Graph OpportunityMaint

现在活动在 abstract class CRCreateSalesOrder

这是一个通用图表, 在 OpportunityMaint 中,您会看到类似

的行
public class CRCreateSalesOrderExt : CRCreateSalesOrder<OpportunityMaint.Discount, OpportunityMaint, CROpportunity>

这扩展了抽象通用图并将其逻辑(包括 createSalesOrder 操作)应用于 OpportunityMaint 图。

你应该可以用类似的东西覆盖它:

    public class CRCreateSalesOrderExt_Ext: PXGraphExtension<CRCreateSalesOrderExt, OpportunityMaint>
    {
        public static bool IsActive() => true;

        public delegate IEnumerable createSalesOrderDelegate(PXAdapter adapter);

        [PXOverride]
        public IEnumerable createSalesOrder(PXAdapter adapter, createSalesOrderDelegate baseMethod)
        {
            //Add your handler here

            return baseMethod(adapter);
        }
    }

CRCreateSalesOrderExt 来自 PX.Objects.CR.OpportunityMaint(在图上定义),是从通用图 CRCreateSalesOrder 继承的图扩展,OpportunityMaint 是基础图。