Skip to main content
Solved

Mass Action button gives IDacDescriptorProvider error

  • February 17, 2025
  • 2 replies
  • 27 views

I’m trying to add a button to the Sales Orders list - S301000PL. I’ve defined the action in a Graph Extension and see it available as a ‘Graph Action’ on the Customization Project screen (SCREENS → SO301000 > Actions). The action is available on the drop-down panel on SO3010PL alongside the standard options.

Clicking the action gives the error “At least one record hasn’t been processed”

Trace gives:

Autofac.Core.Registration.ComponentNotRegisteredException
The requested service 'PX.Data.DacDescriptorGeneration.IDacDescriptorProvider' has not been registered. To avoid this exception, either register a component to provide the service, check for service registration using IsRegistered(), or use the ResolveOptional() method to resolve an optional dependency

I have set a breakpoint within the action handler, but it doesn’t get hit.

The action is defined by this code:

 

    public class SOOrderEntry_Extension : PXGraphExtension<PX.Objects.SO.SOOrderEntry>
    {
        public override void Initialize()
        {
            HaveCalledCustomer.IsMass = true;
        }

        public PXAction<SOOrder> HaveCalledCustomer;
        [PXProcessButton(DisplayOnMainToolbar = true, CommitChanges = true)]
        [PXUIField(DisplayName = Messages.Called, MapEnableRights = PXCacheRights.Update, MapViewRights = PXCacheRights.Select, Visible = true, Enabled = true, IsDirty = true)]
        public virtual IEnumerable haveCalledCustomer(PXAdapter adapter)
        {
            bool isMassProcess = adapter.MassProcess;

            List<SOOrder> orderList = new List<SOOrder>();
//omitted for brevity

            return orderList;
        }
 

What might I have missed? How can I fix this?

Build 24.203.0023

 

Best answer by allisterchambers48

I found a workaround to resolve this without too much code. I was able to remove that Mass Action implementation and instead:

  • Define a Business Event (linked to SO3010PL) as ‘Trigger by Action’
  • With ‘Action Execution’ subscriber linked to SO301000 such that the Keys come from SOOrder on the inquiry screen (not “From Schema”). This subscriber identifies the (synchronous) action on my SOOrderEntryExt graph extension.
View original
Did this topic help you find an answer to your question?

2 replies

I found a workaround to resolve this without too much code. I was able to remove that Mass Action implementation and instead:

  • Define a Business Event (linked to SO3010PL) as ‘Trigger by Action’
  • With ‘Action Execution’ subscriber linked to SO301000 such that the Keys come from SOOrder on the inquiry screen (not “From Schema”). This subscriber identifies the (synchronous) action on my SOOrderEntryExt graph extension.

Chris Hackett
Community Manager
Forum|alt.badge.img
  • Acumatica Community Manager
  • 2749 replies
  • February 21, 2025

Thank you for sharing your solution with the community ​@allisterchambers48!


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings