Skip to main content
Solved

Event Handler Basics - Naming Convention Questions

  • July 23, 2026
  • 1 reply
  • 33 views

Hi all,

I'd like to clarify some fundamentals about how event handlers work in Acumatica, specifically around naming conventions and method discovery. I have a few basic questions:

1. How exactly does Acumatica's framework discover and invoke event handlers under the hood? Is it purely reflection-based at graph initialization, looking for specific naming/signature patterns, or is there more to it?

2. Is naming a method in the classic convention (e.g., CustSalesPeople_RowInserting) sufficient on its own for Acumatica to recognize and call it? 

3. Would an arbitrary/non-standard name like _RowInserted (as opposed to the generic handler's required bare underscore _) be recognized as a valid event handler by the framework? My understanding is no - it would compile fine as a regular method but never actually be invoked, since it doesn't match either the classic DAC_EventType pattern or the generic _ pattern. Can someone confirm this is correct?

I'm trying to nail down the exact rules here since this seems to be a common source of confusion (silent failures where a handler is misnamed/mistyped and never fires, but there's no compile error to catch it).

Appreciate any clarification or pointers to official documentation that spells this out.

Thanks!

Best answer by SaiKrishnaV

@andresetiawan 

The classic event syntax (CustSalesPeople_RowInserting) is name-based, so if the method name or signature is incorrect, it will still compile as a normal C# method but Acumatica won't invoke it at runtime. There is no compile-time validation.

In contrast, the Generic event syntax (protected void _(Events.RowInserting<CustSalesPeople> e)) is strongly typed. If you use an invalid event type, incorrect generic parameter, or wrong signature, you'll typically get a compile-time error, making it easier to catch mistakes early.

That's one of the advantages of the generic event syntax, it provides better type safety and reduces the chance of silent failures caused by misnamed handlers.

1 reply

Forum|alt.badge.img+3
  • Pro III
  • Answer
  • July 23, 2026

@andresetiawan 

The classic event syntax (CustSalesPeople_RowInserting) is name-based, so if the method name or signature is incorrect, it will still compile as a normal C# method but Acumatica won't invoke it at runtime. There is no compile-time validation.

In contrast, the Generic event syntax (protected void _(Events.RowInserting<CustSalesPeople> e)) is strongly typed. If you use an invalid event type, incorrect generic parameter, or wrong signature, you'll typically get a compile-time error, making it easier to catch mistakes early.

That's one of the advantages of the generic event syntax, it provides better type safety and reduces the chance of silent failures caused by misnamed handlers.