BAQ Parameters in Application Studio - Replace Slide-Out with on-page Search Filters

In Application Studio, how do you move a BAQ parameter from the slide-out panel to an on-page search filter?

The instructions below assume you are using the dashboard template that @mbayley and I presented at Insights 2025 (see Taming the Dashboard Dragons of Application Studio - Kinetic ERP - Epicor User Help Forum), but you can modify it to suit your situation. This solution is based on the solution provided here (Application Studio passing Parameters to BAQ - Kinetic ERP - Epicor User Help Forum) – thanks @hmwillett!

BAQ Parameters - Replace Slide-Out with on-page Search Filters

Prereqs:

  • Filters panel card with a search field for each BAQ parameter, and a Search button (as in the Innovative Automation Dashboard Template)
  • Search fields are bound to the SearchFilters data view, e.g. SearchFilters.FiscalYear
  • Results grid Where List: set BAQ columns to the entered filters, making them required, e.g. GLJrnDtl_FiscalYear = ‘?{SearchFilters.FiscalYear}’
    Note: a single ? ensures the BAQ will run only if the filter has been entered. With a double ? the BAQ could run before the parameters are set and you’ll get the dreaded slide-out panel!
  • Indicate to the user that the field is required (add *required to the Label Text)
  • Results grid has “Expand at Runtime” turned off (ensures the BAQ won’t execute before the parameters are set)
  • Data view to hold the results of the BAQ

1. Modify the Search button onClick event to get the BAQ results using the entered search field as the BAQ parameter

  • In the event, add a kinetic-baq widget to get the BAQ results. Place it before the property-set widget if it exists

  • On the Properties tab for the widget, BAQ Options, enter the BAQ id and View Name. Set Mode = get

  • Open the BAQ Parameters section. Your parameters should be listed already. Set each one’s value to {DataView.Column} (the epBinding for your search field).
    e.g. Field Name = FiscalYear; Field Value = {SearchFilters.FiscalYear}

2. Expand the grid to show the BAQ results

  • If you don’t have one already, add a property-set widget to the event, after the baq widget, to set the expanded property for the grid to true

3. Remove the Provider Model Baq ID for the Results grid (avoids having to click the search button twice)

4. Preview and test the application

5. (optional) Add a condition widget to the Search button onClick event to check for an empty search filter and display a msg
Condition to check for:
Date fields: “{SearchFilters.ToDate}” !== “undefined”
Text fields: “{SearchFilters.ProjectID}” !== “”

My Example:
Does anyone know how to get rid of that comma in the Fiscal Year integer field?

10 Likes

Have you tried changing the Mask property to >>>9?

Thank you for this write-up! I was looking for this about two weeks ago - now I’ll know going forward

1 Like

I just finished setting this up and it works beautifully!!

I even set up the condition to do a dialog letting them know the date is required.

It did get me for a second on the condition expression.

With the !== you have to set your dialog on the false branch of the condition.

Also, if you copy the expression from here and paste it into Epicor, the double quotes don’t work correctly.

I had to delete them and manually add the double quotes back in.

That took me a while, lol.

Thank you again Trudy! I really appreciate you taking the time to put this together.

1 Like

I tried both >>>9 and 9999 and neither worked, unfortunately.

1 Like

@tpogue

Hello Trudy,

I have come across an issue after doing this.

Hopefully you can shed some light on it.

The passing the date to the BAQ parameter works great.

The problem is I also have a text filter I use at the same time and it quit working.

Before, I could type in a part number and it would filter once I tabbed out.

Now it does nothing. Could it be related to taking out the BAQ ID from provider model?

Any help is appreciated.

I did a test and it seems that whether or not the Baq ID is entered in the Provider Model, the text search field is ignored. If you do include the Baq ID, then you have to click the Search button twice to get your results. When I have some time, I’ll do some testing and figure out how to include additional filters.

Hello,

Just following up to see if you had time to look at this?

No rush!

I just didn’t want to forget this.

I truly appreciate all the help you have been!

I hadn’t forgotten. Took a stab at it a while ago, got stuck, left it, and went back at it again today :blush:

You can add the text filter to the kinetic-baq get widget in the BAQ Execute Options in the Where field (e.g. Table_Column = ‘{SearchFilters.Text}’) but this will fail (no results) if you don’t enter anything in the text search field, making it required.

To get around that, you can insert a Condition widget at the start of the SearchButton_onClick event. If SearchFilters.Text is not empty (this expression worked for me: “{SearchFilters.Company}” !== “undefined”), execute the kinetic-baq with the Where clause set. If it is empty, execute the kinetic-baq without the Where clause. This works but it’s not scalable. If you have a lot of search filters, your condition checking could get messy.

Does anyone have a better solution?

1 Like

This is what I have come up with for a solution as well. But it does get messy quickly when you have multiple search fields.

I also would love to know if anyone has a better method!

Hello,

I use this but I connect it to the Control OnBlur for the field.

As long as you fill in both the ‘Where’, located in BAQ Execute Options and the ‘BAQ Parameters’, located at BAQ Parameters, it works like a charm!

Is that not what the question mark does like:

Table_Column = ‘?{SearchFilters.Text}’

I seem to recall trying that and it didn’t work. But it’s possible it does now??? I’d love it if somebody proved me wrong!

I belive it works on filter expressions. Haven’t tried on BAQ parameters.