在确认装运时执行代码

Execute code on confirmation of shipment

我想根据“发货”屏幕 (SO302000) 上的 'Confirm Shipment' 操作执行一些代码(以更改发货日期)。

我在想这样做的方法:

public class SOShipmentEntryExt : PXGraphExtension<SOShipmentEntry>
{
    [PXOverride]
    public virtual void ConfirmShipment(SOOrderEntry docgraph, SOShipment shiporder)
    {
        Base.ConfirmShipment(docgraph, shiporder);
        //Add my code to do something here...
    }

}

当我尝试此操作时,我收到发货计数器错误。有更好的方法吗?

来自类似案例:

public class SOShipmentEntryExt : PXGraphExtension<SOShipmentEntry>
{

    public PXAction<SOShipment> action;
    [PXButton]
    [PXUIField(DisplayName = "Actions", MapEnableRights = PXCacheRights.Select)]
    protected IEnumerable Action(PXAdapter adapter
                                ,[PXIntList(new int[] { 1 }
                                ,new string[] { "Confirm Shipment" })
                                ,PXInt] int? actionID)
    {
        //actionID = 1 means the Confirm Shipment action was the one invoked
        if (actionID == 1)
        {

            Base.Document.Current.ShipDate = Base.Accessinfo.BusinessDate;
            Base.Document.Update(Base.Document.Current);
        }

        //calls the basic action that was invoked
        return Base.action.Press(adapter);
    }

}