Skip to main content
Question

Global Search Issue

  • August 5, 2025
  • 11 replies
  • 132 views

Forum|alt.badge.img+1

Hi all,

I'm trying to enable global search for a custom DAC (MyCustomDAC) using [PXSearchable] and [PXNote] via DAC extension.

The DAC appears in Rebuild Full-Text Entity Index, and entries are created in SMSearchIndex. But when I search by OrderNbr (e.g. CH-10000045), no results appear under Transactions or Profiles.

 

What I’ve Done

1. Added [PXSearchable] and [PXNote] via DAC Extension:

#region NoteID

[PXMergeAttributes(Method = MergeMethod.Replace)]
[PXSearchable(
    NVSearchCategory.ChangeOrder, // Custom category (32768)
    "Change Orders {0}: {1} - {2}",
    new Type[] {
        typeof(MyCustomDAC.orderType),
        typeof(MyCustomDAC.orderNbr),
        typeof(MyCustomDAC.description)
    },
    new Type[] {
        typeof(Customer.acctName),
        typeof(MyCustomDAC.description)
    },
    NumberFields = new Type[] {
        typeof(MyCustomDAC.orderNbr)
    },
    Line1Format = "{0} - {1}",
    Line1Fields = new Type[] {
        typeof(MyCustomDAC.status),
        typeof(MyCustomDAC.orderNbr)
    },
    Line2Format = "{0} - {1}",
    Line2Fields = new Type[] {
        typeof(BAccount.acctName),
        typeof(MyCustomDAC.orderNbr)
    },
    MatchWithJoin = typeof(InnerJoin<BAccount, On<BAccount.bAccountID, Equal<MyCustomDAC.customerID>>>),
    SelectForFastIndexing = typeof(
        Select2<MyCustomDAC,
        InnerJoin<BAccount, On<BAccount.bAccountID, Equal<MyCustomDAC.customerID>>>>)
)]
[PXNote(PopupTextEnabled = true, ShowInReferenceSelector = true)]
public Guid? NoteID { get; set; }

 

#endregion

11 replies

darylbowman
Captain II
Forum|alt.badge.img+15

Not having done this before, I’m guessing, but you don’t have a ‘Selector’ defined in the [PXNote] like some OOB fields do. Maybe try that?

(this is NoteID from APInvoice:

[PXSearchable(SM.SearchCategory.AP, Messages.SearchableTitleDocument, new Type[] { typeof(APInvoice.docType), typeof(APInvoice.refNbr), typeof(APInvoice.vendorID), typeof(Vendor.acctName) },
new Type[] { typeof(APInvoice.invoiceNbr), typeof(APInvoice.docDesc)},
NumberFields = new Type[] { typeof(APInvoice.refNbr) },
Line1Format = "{0:d}{1}{2}", Line1Fields = new Type[] { typeof(APInvoice.docDate), typeof(APInvoice.status), typeof(APInvoice.invoiceNbr) },
Line2Format = "{0}", Line2Fields = new Type[] { typeof(APInvoice.docDesc) },
MatchWithJoin = typeof(InnerJoin<Vendor, On<Vendor.bAccountID, Equal<APInvoice.vendorID>>>),
SelectForFastIndexing = typeof(Select2<APInvoice, InnerJoin<Vendor, On<APInvoice.vendorID, Equal<Vendor.bAccountID>>>>)
)]
[PXNote(ShowInReferenceSelector = true, Selector = typeof(
Search2<
APInvoice.refNbr,
InnerJoinSingleTable<APRegister, On<APInvoice.docType, Equal<APRegister.docType>,
And<APInvoice.refNbr, Equal<APRegister.refNbr>>>,
InnerJoinSingleTable<Vendor, On<APRegister.vendorID, Equal<Vendor.bAccountID>>>>,
Where2<
Where<APRegister.origModule, NotEqual<BatchModule.moduleTX>,
Or<APRegister.released, Equal<True>>>,
And<Match<Vendor, Current<AccessInfo.userName>>>>,
OrderBy<Desc<APRegister.refNbr>>>))]
public override Guid? NoteID

 


Forum|alt.badge.img+1
  • Author
  • Jr Varsity II
  • August 5, 2025

HI ​@darylbowman ,

I used PXNote attribute as below

    [PXNote(
               DescriptionField = typeof(NAWNVRTChangeOrderUSSExt.orderNbr),
                 Selector = typeof(NAWNVRTChangeOrderUSSExt.orderNbr)
              )]

still its not working


Forum|alt.badge.img+7
  • Captain II
  • August 7, 2025

I did a trace when I ran a global search (for Finished Good) and this was the query that was run:

exec sp_executesql N'SELECT TOP (100) [SearchIndex].[NoteID], [SearchIndex].[IndexID], [SearchIndex].[EntityType]
FROM [SearchIndex] [SearchIndex]
WHERE ( [SearchIndex].[CompanyID] = 6) AND ( [SearchIndex].[Content] LIKE @P0)
ORDER BY [SearchIndex].[NoteID] OPTION(OPTIMIZE FOR UNKNOWN)',N'@P0 nvarchar(14)',@P0=N'%Finished Good%'

If you change the CompanyID to match yours, and replace the search criteria to what you’re trying to search for, do you get any results?


Forum|alt.badge.img+1
  • Author
  • Jr Varsity II
  • August 7, 2025

@Django  

yes I got the result 
 

 


Forum|alt.badge.img+7
  • Captain II
  • August 7, 2025

Can you run a SQL Trace to see if when you enter the search criteria at the top of the Acumatica screen, that ACM is querying the database?


Forum|alt.badge.img+1
  • Author
  • Jr Varsity II
  • August 7, 2025

Hi ​@Django 

Got below sql Trace from request profiler

DECLARE @P0 AS UNIQUEIDENTIFIER = '4c42a0d6-aef6-ef11-8426-0affcd2e0027';

SELECT TOP (1) [MyCustomDac].[BranchID],
[MyCustomDac].[OrderType],
[MyCustomDac].[OrderNbr],
[MyCustomDac].[OrderDate],
[MyCustomDac].[CustomerID],
[MyCustomDac].[CustomerLocationID],
[MyCustomDac].[CuryID],
[MyCustomDac].[CuryInfoID],
[MyCustomDac].[Behavior],
[MyCustomDac].[Status],
[MyCustomDac].[Hold],
[MyCustomDac].[Approved],
[MyCustomDac].[Completed],
[MyCustomDac].[Released],
[MyCustomDac].[QuoteToInvoice],
[MyCustomDac].[AddOnType1],
[MyCustomDac].[AddOnType2],
[MyCustomDac].[AddOnType3],
[MyCustomDac].[AddOnType4],
[MyCustomDac].[AddOnType5],
[MyCustomDac].[CuryDiscTot],
[MyCustomDac].[DiscTot],
[MyCustomDac].[CuryGroupDiscTotal],
[MyCustomDac].[GroupDiscTotal],
[MyCustomDac].[CuryDocumentDiscTotal],
[MyCustomDac].[DocumentDiscTotal],
[MyCustomDac].[CuryDiscBal],
[MyCustomDac].[DiscBal],
[MyCustomDac].[CuryDiscountedPrice],
[MyCustomDac].[DiscountedPrice],
[MyCustomDac].[CuryOrigDiscAmt],
[MyCustomDac].[OrigDiscAmt],
[MyCustomDac].[CuryDiscTaken],
[MyCustomDac].[DiscTaken],
[MyCustomDac].[CuryMiscTot],
[MyCustomDac].[MiscTot],
[MyCustomDac].[CuryDetailExtPriceTotal],
[MyCustomDac].[DetailExtPriceTotal],
[MyCustomDac].[CuryLineTotal],
[MyCustomDac].[LineTotal],
[MyCustomDac].[CuryTaxTotal],
[MyCustomDac].[TaxTotal],
[MyCustomDac].[CuryOrderTotal],
[MyCustomDac].[OrderTotal],
[MyCustomDac].[OverrideTaxZone],
[MyCustomDac].[TaxZoneID],
[MyCustomDac].[TaxCalcMode],
[MyCustomDac].[TermsID],
[MyCustomDac].[Description],
[MyCustomDac].[DfltSiteID],
[MyCustomDac].[DeliverTo],
[MyCustomDac].[JobSiteNbr],
[MyCustomDac].[DfltProjectID],
[MyCustomDac].[WorkgroupID],
[MyCustomDac].[OwnerID],
[MyCustomDac].[ContactID],
[MyCustomDac].[BillAddressID],
[MyCustomDac].[ShipAddressID],
[MyCustomDac].[BillContactID],
[MyCustomDac].[ShipContactID],
[MyCustomDac].[ShipVia],
[MyCustomDac].[SOOrderType],
[MyCustomDac].[SOOrderNbr],
[MyCustomDac].[ScheduleStartDate],
[MyCustomDac].[ScheduleEndDate],
[MyCustomDac].[CustomerRefNbr],
[MyCustomDac].[RentalOrderType],
[MyCustomDac].[CycleNbr],
[MyCustomDac].[CycleType],
[MyCustomDac].[ContractStartDate],
[MyCustomDac].[ContractEndDate],
[MyCustomDac].[TaxRegistrationID],
[MyCustomDac].[ExternalTaxExemptionNumber],
[MyCustomDac].[AvalaraCustomerUsageType],
[MyCustomDac].[IsTaxValid],
[MyCustomDac].[LastLineNbr],
[MyCustomDac].[GotReadyForArchiveAt],
[MyCustomDac].[NoteID],
NULL,
NULL,
NULL,
[MyCustomDac].[CreatedByID],
[MyCustomDac].[CreatedByScreenID],
[MyCustomDac].[CreatedDateTime],
[MyCustomDac].[LastModifiedByID],
[MyCustomDac].[LastModifiedByScreenID],
[MyCustomDac].[LastModifiedDateTime],
[MyCustomDac].[Tstamp],
[MyCustomDac].[UsrNAWContractPeriod],
[MyCustomDac].[DatabaseRecordStatus]
FROM [MyCustomDac] AS [MyCustomDac]
WHERE ([MyCustomDac].[CompanyID] = 2)
AND ([MyCustomDac].[DatabaseRecordStatus] = 0)
AND ([MyCustomDac].[BranchID] IS NULL
OR ([MyCustomDac].[BranchID] IN (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102)))
AND ([MyCustomDac].[NoteID] = @P0
AND 1 = 1)
ORDER BY [MyCustomDac].[OrderType], [MyCustomDac].[OrderNbr]
OPTION (OPTIMIZE FOR UNKNOWN);


/* E366FD8B */TOP (1) [MyCustomDac].[BranchID], [MyCustomDac].[OrderType], [MyCustomDac].[OrderNbr], [MyCustomDac].[OrderDate], [MyCustomDac].[CustomerID], [MyCustomDac].[CustomerLocationID], [MyCustomDac].[CuryID], [MyCustomDac].[CuryInfoID], [MyCustomDac].[Behavior], [MyCustomDac].[Status], [MyCustomDac].[Hold], [MyCustomDac].[Approved], [MyCustomDac].[Completed], [MyCustomDac].[Released], [MyCustomDac].[QuoteToInvoice], [MyCustomDac].[AddOnType1], [MyCustomDac].[AddOnType2], [MyCustomDac].[AddOnType3], [MyCustomDac].[AddOnType4], [MyCustomDac].[AddOnType5], [MyCustomDac].[CuryDiscTot], [MyCustomDac].[DiscTot], [MyCustomDac].[CuryGroupDiscTotal], [MyCustomDac].[GroupDiscTotal], [MyCustomDac].[CuryDocumentDiscTotal], [MyCustomDac].[DocumentDiscTotal], [MyCustomDac].[CuryDiscBal], [MyCustomDac].[DiscBal], [MyCustomDac].[CuryDiscountedPrice], [MyCustomDac].[DiscountedPrice], [MyCustomDac].[CuryOrigDiscAmt], [MyCustomDac].[OrigDiscAmt], [MyCustomDac].[CuryDiscTaken], [MyCustomDac].[DiscTaken], [MyCustomDac].[CuryMiscTot], [MyCustomDac].[MiscTot], [MyCustomDac].[CuryDetailExtPriceTotal], [MyCustomDac].[DetailExtPriceTotal], [MyCustomDac].[CuryLineTotal], [MyCustomDac].[LineTotal], [MyCustomDac].[CuryTaxTotal], [MyCustomDac].[TaxTotal], [MyCustomDac].[CuryOrderTotal], [MyCustomDac].[OrderTotal], [MyCustomDac].[OverrideTaxZone], [MyCustomDac].[TaxZoneID], [MyCustomDac].[TaxCalcMode], [MyCustomDac].[TermsID], [MyCustomDac].[Description], [MyCustomDac].[DfltSiteID], [MyCustomDac].[DeliverTo], [MyCustomDac].[JobSiteNbr], [MyCustomDac].[DfltProjectID], [MyCustomDac].[WorkgroupID], [MyCustomDac].[OwnerID], [MyCustomDac].[ContactID], [MyCustomDac].[BillAddressID], [MyCustomDac].[ShipAddressID], [MyCustomDac].[BillContactID], [MyCustomDac].[ShipContactID], [MyCustomDac].[ShipVia], [MyCustomDac].[SOOrderType], [MyCustomDac].[SOOrderNbr], [MyCustomDac].[ScheduleStartDate], [MyCustomDac].[ScheduleEndDate], [MyCustomDac].[CustomerRefNbr], [MyCustomDac].[RentalOrderType], [MyCustomDac].[CycleNbr], [MyCustomDac].[CycleType], [MyCustomDac].[ContractStartDate], [MyCustomDac].[ContractEndDate], [MyCustomDac].[TaxRegistrationID], [MyCustomDac].[ExternalTaxExemptionNumber], [MyCustomDac].[AvalaraCustomerUsageType], [MyCustomDac].[IsTaxValid], [MyCustomDac].[LastLineNbr], [MyCustomDac].[GotReadyForArchiveAt], [MyCustomDac].[NoteID], NULL, NULL, NULL, [MyCustomDac].[CreatedByID], [MyCustomDac].[CreatedByScreenID], [MyCustomDac].[CreatedDateTime], [MyCustomDac].[LastModifiedByID], [MyCustomDac].[LastModifiedByScreenID], [MyCustomDac].[LastModifiedDateTime], [MyCustomDac].[Tstamp], [MyCustomDac].[UsrNAWContractPeriod], [MyCustomDac].[DatabaseRecordStatus]
FROM [MyCustomDac] [MyCustomDac]
WHERE ( [MyCustomDac].[CompanyID] = 2) AND ( [MyCustomDac].[DatabaseRecordStatus] = 0) AND ( [MyCustomDac].[BranchID] IS NULL OR ( [MyCustomDac].[BranchID] IN ( 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102))) AND ( [MyCustomDac].[NoteID] = @P0 AND 1 = 1)
ORDER BY [MyCustomDac].[OrderType], [MyCustomDac].[OrderNbr] OPTION(OPTIMIZE FOR UNKNOWN)

/* Stack Trace:

at PX.Common.PXStackTrace.GetStackTrace(Int32 skipFrames, Boolean needFileInfo)
at PX.SM.PXPerformanceInfo.AddSqlSample(String cmdText, String parameterDeclaration, Boolean queryCache)
at PX.Data.PXSqlDatabaseProvider.ExecuteReaderInternal(IDbCommand command, CommandBehavior behavior)
at PX.Data.PXSelectResult.PXSelectResultEnumerator.System.Collections.IEnumerator.MoveNext()
at PX.Data.PXView.GetResult(Object[] parameters, PXFilterRow[] filters, Boolean reverseOrder, Int32 topCount, PXSearchColumn[] sorts, Boolean& overrideSort, Boolean& extFilter)
at PX.Data.PXView.Select(Object[] currents, Object[] parameters, Object[] searches, String[] sortcolumns, Boolean[] descendings, PXFilterRow[] filters, Int32& startRow, Int32 maximumRows, Int32& totalRows, String[] sortAsImplicitColumns)
at PX.Data.PXView.Select(Object[] currents, Object[] parameters, Object[] searches, String[] sortcolumns, Boolean[] descendings, PXFilterRow[] filters, Int32& startRow, Int32 maximumRows, Int32& totalRows)
at PX.Data.PXView.SelectSingle(Object[] parameters)
at PX.Data.Search.PXEntitySearch.SelectEntityRow(Guid noteID, SearchIndex searchIndex, Type& dac, Object& row, PXSearchableAttribute& attr)
at PX.Data.Search.PXEntitySearch.CreateSearchResult(CacheResult cacheRes, Int32 first, Int32 count, CancellationToken cancellationToken)
at PX.Web.UI.Frameset.Services.SearchServiceBase`3.Search(TSearch engine, String query, Int32 start, Int32 count, ISet`1& problems)
at PX.Web.UI.Frameset.Services.FullTextSearchServiceBase`3.Search(TSearch engine, String query, Int32 start, Int32 count, ISet`1& problems)
at PX.Web.UI.Frameset.Services.SearchServiceBase`3.PerformSearch(String query, Int32 start, Int32 count)
at PX.Web.UI.Frameset.WebApi.Controllers.SearchController.Search(SearchType searchType, String query, Nullable`1 start, Nullable`1 count)
at lambda_method(Closure , Object , Object[] )
at Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeActionMethodAsync>d__12.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync()
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeNextActionFilterAsync>d__10.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync()
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeNextActionFilterAsync>d__10.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync()
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeNextActionFilterAsync>d__10.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync()
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeInnerFilterAsync>d__13.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeNextExceptionFilterAsync>d__24.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextExceptionFilterAsync()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeNextResourceFilter>d__23.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeNextResourceFilter>d__23.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeFilterPipelineAsync>d__18.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeAsync>d__16.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync()
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>d__3.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Builder.StackOverflowGuardApplicationBuilderExtensions.<>c.<<UseAsyncStackOverflowGuard>b__0_0>d.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.AspNetCore.Builder.StackOverflowGuardApplicationBuilderExtensions.<>c.<UseAsyncStackOverflowGuard>b__0_0(HttpContext httpContext, Func`1 next)
at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.<Invoke>d__3.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.Invoke(HttpContext context)
at PX.AspNetCore.Owin.ApplicationBuilderExtensions.<>c.<<UseScreenIdFromRequest>b__2_0>d.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at PX.AspNetCore.Owin.ApplicationBuilderExtensions.<>c.<UseScreenIdFromRequest>b__2_0(HttpContext context, Func`1 next)
at PX.AspNetCore.Owin.ApplicationBuilderExtensions.<>c.<<UseRouteConstraintValidation>b__1_0>d.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at PX.AspNetCore.Owin.ApplicationBuilderExtensions.<>c.<UseRouteConstraintValidation>b__1_0(HttpContext context, Func`1 next)
at Microsoft.AspNetCore.Builder.ApplicationBuilderExtensions.<>c.<<UseSessionContextFactory>b__6_0>d.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.AspNetCore.Builder.ApplicationBuilderExtensions.<>c.<UseSessionContextFactory>b__6_0(ISessionContextFactory sessionContextFactory, HttpContext httpContext, Func`1 next)
at PX.Telemetry.TelemetryOwinRegistration.<PreRequestHandlerExecute>d__6.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at PX.Telemetry.TelemetryOwinRegistration.PreRequestHandlerExecute(HttpContext context, Func`1 next)
at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.<RunApp>d__7.MoveNext()
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.RunApp(Func`2 entryPoint, IDictionary`2 environment, TaskCompletionSource`1 tcs, StageAsyncResult result)
at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.BeginEvent(Object sender, EventArgs e, AsyncCallback cb, Object extradata)
*/

 


Forum|alt.badge.img+7
  • Captain II
  • August 7, 2025

You should run a SQL trace from SSMS. You want to see what his going through to the database. The trace, above, looks like it is from you loading up a record from your DAC. I don’t see any call to the SearchIndex table at all.

 


Forum|alt.badge.img+1
  • Author
  • Jr Varsity II
  • August 8, 2025

Hi ​@Django ,

please find sql trace , if i  execute same as sql query it shows result

 


Forum|alt.badge.img+7
  • Captain II
  • August 8, 2025

Is your MyCustomDAC a free standing DAC or is it connected to another table as a DAC Extension (like ARInvoice is to ARRegister). It looks like it is similar to SOOrder.

In your declaration of your NodeID field you have this line:

[PXMergeAttributes(Method = MergeMethod.Replace)]

But if this is your DAC, then you’re not creating an Extension of your own table, so I’d be tempted to comment that out.

You’ve also mentioned:

Customer.acctName

But the Customer DAC isn’t anywhere that I can see.

Have you worked through this article?
https://www.acumatica.com/blog/technical-tuesday-universal-search-in-acumatica/

 


Forum|alt.badge.img+1
  • Author
  • Jr Varsity II
  • August 8, 2025

Hi ​@Django ,

Yes, I did go through the article. The approach works if the base DAC already has the PXSearchable attribute defined.

In my case, I have a standalone base DAC MyCustomTable from other customization project dll which includes a NoteID field but does not have the PXSearchable attribute applied. Unfortunately, I do not have access to modify or edit the original MyCustomTable ,as it is from other DLL

To enable Universal Search, I created an extension MyCustomTableExtn and attempted to apply the PXSearchable attribute to the NoteID field from the extension. However, even with a simple form of PXSearchable, it's not working.


Chris Hackett
Community Manager
Forum|alt.badge.img
  • Acumatica Community Manager
  • September 25, 2025

Hi ​@Rakshanda were you able to find a solution? Thank you!