Skip to main content
Solved

How to Override Quick Process action in the Sales Orders screen

  • October 16, 2026
  • 3 replies
  • 29 views
  • Translate All

Forum|alt.badge.img

Hi Everyone,

Can you please help me with the sample code to override the Quick Process Action in the Sales Orders screen?

Best answer by Naveen Boga

​@John Masi74 Here is the sample code for your reference. 

 

using System.Collections;
using PX.Data;
using PX.Objects.SO;
using static PX.Objects.SO.SOOrderEntry;

namespace CreateBuild
{
public class SOOrderEntry_Extension : PXGraphExtension<SOQuickProcess, SOOrderEntry>
{
public static bool IsActive() => true;

public delegate IEnumerable QuickProcessOkDelegate(PXAdapter adapter);

[PXOverride]
public IEnumerable QuickProcessOk(PXAdapter adapter, QuickProcessOkDelegate baseMethod)
{
SOQuickProcessParameters parameters = Base1.QuickProcessParameters.Current;
SOOrder order = Base.Document.Current;

if (order != null &&
parameters?.GetExtension<SOQuickProcessParametersExt>()?.MyField == true)
{
Base.Document.Cache.SetValueExt<SOOrder.orderDesc>(order, "TEST QUICK PROCESS");
Base.Document.Update(order);
Base.Save.Press();
}


return baseMethod(adapter);
}
}
}

Hope this helps!!

View original

3 replies

Naveen Boga
Captain II
Forum|alt.badge.img+20
  • Captain II
  • Answer
  • October 16, 2026

​@John Masi74 Here is the sample code for your reference. 

 

using System.Collections;
using PX.Data;
using PX.Objects.SO;
using static PX.Objects.SO.SOOrderEntry;

namespace CreateBuild
{
public class SOOrderEntry_Extension : PXGraphExtension<SOQuickProcess, SOOrderEntry>
{
public static bool IsActive() => true;

public delegate IEnumerable QuickProcessOkDelegate(PXAdapter adapter);

[PXOverride]
public IEnumerable QuickProcessOk(PXAdapter adapter, QuickProcessOkDelegate baseMethod)
{
SOQuickProcessParameters parameters = Base1.QuickProcessParameters.Current;
SOOrder order = Base.Document.Current;

if (order != null &&
parameters?.GetExtension<SOQuickProcessParametersExt>()?.MyField == true)
{
Base.Document.Cache.SetValueExt<SOOrder.orderDesc>(order, "TEST QUICK PROCESS");
Base.Document.Update(order);
Base.Save.Press();
}


return baseMethod(adapter);
}
}
}

Hope this helps!!

Translate

Forum|alt.badge.img
  • Author
  • Jr Varsity III
  • October 16, 2026

​@Naveen Boga  Thanks a lot for sharing the solution here and it worked great!!

Translate

Naveen Boga
Captain II
Forum|alt.badge.img+20

​@John Masi74  Awesome!! Thanks for sharing the update.

Translate