I am trying to customize the Item Class selector in the Appointment screen (FS300200) → Details tab → Add Items popup. My requirement is to filter the list of Item Classes based on custom business logic.

Initially, I tried to achieve this using a CacheAttached event by creating an extension for AppointmentEntry and modifying the FSSiteStatusFilter.ItemClass selector attribute. However, my customization is not taking effect.
While debugging, I noticed that the FSSiteStatusFilter cache is available under the AppointmentEntry graph instance. However, when I open the AppointmentEntry graph code in Visual Studio, I cannot find the related view or filter implementation there.
Based on this, I assume that this functionality is coming from a separate AppointmentEntry graph extension.
I started investigating the implementation:
-
The Add Items button triggers the
showItemcallback command. -
I found this command in the Field Service library under:
AddItemLookupBaseExt<TGraph, TDocument, TItemInfo, TItemFilter>
However, this is an abstract graph extension, and I cannot find the concrete implementation that is used by AppointmentEntry.
I would appreciate guidance on how to identify the exact graph extension responsible for this popup and the recommended way to customize the selector.
I have already tried:
-
dnSpy/decompilation of
PX.Objects.FS.dll -
Visual Studio debugging and call stack inspection
-
Acumatica inspection tools
-
Inspecting graph views and caches at runtime
Question:
What are the recommended techniques to trace a popup implementation like this and find the actual graph extension/view owner in Acumatica?
Any suggestions or debugging approaches would be greatly appreciated.
