Skip to main content
Solved

2025 R2 overloading confirmshipment action

  • March 23, 2026
  • 3 replies
  • 84 views

Forum|alt.badge.img+1

Hi,

I need to overload confirmshipment action in acumatica 2025 R2. In 2024 version I used such code

public class SOShipmentEntry_Extension : PXGraphExtension<PX.Objects.SO.SOShipmentEntry>
{

public delegate IEnumerable ConfirmShipmentActionDelegate(PXAdapter adapter);

[PXOverride]
public virtual IEnumerable ConfirmShipmentAction(PXAdapter adapter, ConfirmShipmentActionDelegate handler) {
}

}

but in 2025 R2 acumatica I got this error.

The System.Collections.IEnumerable ConfirmShipment(PX.Data.PXAdapter, ConfirmShipmentActionDelegate) method in the ClaLimitInvTiger25.ClaConfirmShipmentExtension graph extension is marked as [PXOverride], but no original method with this name has been found in PXGraph.

 

I looked over the code and found they moved to cofirm shipment action into ConfirmShipmentExtension.cs file. I also tried to overload it like

public class ClaConfirmShipmentExtension : PX.Objects.SO.GraphExtensions.SOShipmentEntryExt.ConfirmShipmentExtension
{

public delegate IEnumerable ConfirmShipmentActionDelegate(PXAdapter adapter);

[PXOverride]
public virtual IEnumerable ConfirmShipmentAction(PXAdapter adapter, ConfirmShipmentActionDelegate handler)
{

}

but still got same error that definition of cofirmshipment can’t be overloaded as not found in parent class.

Best answer by arpine08

Hi ​@hotdok,

Please use this approach for overriding the ConfirmShipment action:

 public class SOShipmentEntryExt : PXGraphExtension<ConfirmShipmentExtension, SOShipmentEntry>
{
#region ConfirmShipmentAction
public delegate IEnumerable ConfirmShipmentActionDelegate(PXAdapter adapter);
[PXOverride]
public IEnumerable ConfirmShipmentAction(PXAdapter adapter, ConfirmShipmentActionDelegate baseMethod)
{
// Custom Logic before

var result = baseMethod(adapter);

// Custom Logic after

return result;
}
#endregion
}

 

3 replies

Forum|alt.badge.img+2
  • Pro III
  • March 23, 2026

@hotdok Try with below syntax code for CreateShipment

public class SOShipmentEntryExtension 
: PXGraphExtension<CreateShipmentExtension, SOShipmentEntry>
{
public delegate void ConfirmShipmentDelegate(ConfirmShipmentArgs args);

[PXOverride]
public void ConfirmShipment(ConfirmShipmentArgs args, ConfirmShipmentDelegate baseMethod)
{
// Custom logic BEFORE base method

baseMethod?.Invoke(args);

// Custom logic AFTER base method
}
}

 


arpine08
Jr Varsity I
Forum|alt.badge.img+1
  • Jr Varsity I
  • Answer
  • March 23, 2026

Hi ​@hotdok,

Please use this approach for overriding the ConfirmShipment action:

 public class SOShipmentEntryExt : PXGraphExtension<ConfirmShipmentExtension, SOShipmentEntry>
{
#region ConfirmShipmentAction
public delegate IEnumerable ConfirmShipmentActionDelegate(PXAdapter adapter);
[PXOverride]
public IEnumerable ConfirmShipmentAction(PXAdapter adapter, ConfirmShipmentActionDelegate baseMethod)
{
// Custom Logic before

var result = baseMethod(adapter);

// Custom Logic after

return result;
}
#endregion
}

 


Forum|alt.badge.img+1
  • Author
  • Varsity I
  • March 24, 2026

 Thanks everyone for reply. I used both suggestions and also made updates and finally build such a code

 

public class SOShipmentEntry_Extension : PXGraphExtension<ConfirmShipmentExtension, SOShipmentEntry>
{

public delegate IEnumerable ConfirmShipmentDelegate(PXAdapter args);

[PXOverride]
public virtual IEnumerable ConfirmShipmentAction(PXAdapter adapter, ConfirmShipmentDelegate handler)
{

}

}