Skip to main content
Question

2026 R1 upgrade from 2024 R1: CCProcessingCenterMaint base compilation errors

  • May 1, 2026
  • 5 replies
  • 82 views

Forum|alt.badge.img+2

I’m getting a build error in the UpdateExpirationDate() function:

    public class KBCCProcessingCenterMaintExt : PXGraphExtension<CCProcessingCenterMaint>
    {
        [PXOverride]
        public PXAction<CCProcessingCenter> updateExpirationDate;

        public static bool IsActive() => PXAccess.FeatureInstalled<PX.Objects.CS.FeaturesSet.integratedCardProcessing>();

        [PXUIField(DisplayName = "Update Expiration Dates", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
        [PXButton]
        public virtual IEnumerable UpdateExpirationDate(PXAdapter adapter)
        {
            if (Base.ProcessingCenter.Current != null && Base.ProcessingCenter.Current.ProcessingTypeName == typeof(KBTokenizedProcessing).FullName)
            {
                throw new PXException(KBMessages.FeatNotSupported);
            }

            return Base.UpdateExpirationDate(adapter);
        }

The error is: 'CCProcessingCenterMaint' does not contain a definition for 'UpdateExpirationDate' and no accessible extension method 'UpdateExpirationDate' accepting a first argument of type 'CCProcessingCenterMaint' could be found (are you missing a using directive or an assembly reference?)

I looked in release notes here but I couldn’t find anything regarding this change to PX.Objects:

AcumaticaERP_2026R1_ReleaseNotes_for_Developers.pdf

Has anyone come across this issue or can someone point me in the right direction

5 replies

Naveen Boga
Captain II
Forum|alt.badge.img+20
  • Captain II
  • May 2, 2026

@bpgraves  I have not checked this, but can you please try this and verify.

[PXOverride]
public virtual IEnumerable UpdateExpirationDate(
PXAdapter adapter,
Func<PXAdapter, IEnumerable> baseMethod)
{
if (Base.ProcessingCenter.Current != null &&
Base.ProcessingCenter.Current.ProcessingTypeName ==
typeof(KBTokenizedProcessing).FullName)
{
throw new PXException(KBMessages.FeatNotSupported);
}
return baseMethod(adapter);
}

 


Forum|alt.badge.img+2
  • Author
  • Semi-Pro III
  • May 4, 2026

@bpgraves  I have not checked this, but can you please try this and verify.

[PXOverride]
public virtual IEnumerable UpdateExpirationDate(
PXAdapter adapter,
Func<PXAdapter, IEnumerable> baseMethod)
{
if (Base.ProcessingCenter.Current != null &&
Base.ProcessingCenter.Current.ProcessingTypeName ==
typeof(KBTokenizedProcessing).FullName)
{
throw new PXException(KBMessages.FeatNotSupported);
}
return baseMethod(adapter);
}

 

It builds but I don’t understand why the [PXOverride] is necessary since it doesn’t override anything.  It’s a function triggered by a button (see above).


Forum|alt.badge.img+9
  • Captain II
  • May 6, 2026

@bpgraves 

 

This could be because you were overriding the PXAction rather than the method itself.

You should always give the method the PXOverride attribute.


Forum|alt.badge.img+2
  • Author
  • Semi-Pro III
  • May 6, 2026

If the UpdateExpirationDate method was removed in 26R1, then how can the user update the expiration date now?


Forum|alt.badge.img+2
  • Author
  • Semi-Pro III
  • May 8, 2026

@bpgraves  I have not checked this, but can you please try this and verify.

[PXOverride]
public virtual IEnumerable UpdateExpirationDate(
PXAdapter adapter,
Func<PXAdapter, IEnumerable> baseMethod)
{
if (Base.ProcessingCenter.Current != null &&
Base.ProcessingCenter.Current.ProcessingTypeName ==
typeof(KBTokenizedProcessing).FullName)
{
throw new PXException(KBMessages.FeatNotSupported);
}
return baseMethod(adapter);
}

 

It builds but I don’t understand why the [PXOverride] is necessary since it doesn’t override anything.  It’s a function triggered by a button (see above).

This override method requires a basemethod as a new parameter.  Since the Base method for this function no longer exists in 26R1 (or 25R1), it is not clear what needs to be passed as the 3rd parameter.