Hi, I’m trying to override a method in a graph extension, then override it again in a second extension. I’ve simplified the code to provide an example.
public class SOShipmentEntryWrite : PXGraphExtension<PX.Objects.SO.SOShipmentEntry>
{
[PXOverride]
public void ConfirmShipment(SOOrderEntry docgraph, SOShipment shipment)
{
Base.ConfirmShipment(docgraph, shipment);
//Write some info
}
}
public class SOShipmentEntryRead : PXGraphExtension<PX.Objects.SO.SOShipmentEntryWrite, PX.Objects.SO.SOShipmentEntry>
{
[PXOverride]
public void ConfirmShipment(SOOrderEntry docgraph, SOShipment shipment)
{
Base1.ConfirmShipment(docgraph, shipment);
//Read the info
}
}
There are 2 classes SOShipmentEntryWrite and SOShipmentEntryRead. SOShipmentEntryRead is an extension of SOShipmentEntryWrite.
My hope was that ConfirmShipment in SOShipmentEntryRead would override ConfirmShipment in SOShipmentEntryWrite.
Then I could use Base1.ConfirmShipment in SOShipmentEntryRead to call ConfirmShipment in SOShipmentEntryWrite.
What actually happens is that ConfirmShipment in SOShipmentEntryWrite runs first and then ConfirmShipment in SOShipmentEntryRead runs second. Both classes have overridden the base method in SOShipmentEntry and are running there version of ConfirmShipment.
Is there a way for a child extension to override an overridden method?
Best answer by NicholasBova52
View original