Skip to content

Dashboard parameters and filters

Kinetic

Classic dashboards had tracker views: type a value, click refresh, and the grid filters. Kinetic has no tracker view, so you build the equivalent from fields, data views and where clauses. This page covers three levels: filtering with where clauses, BAQs with real parameters, and inputs that take several values.

The simplest filter is an input field plus a grid where clause that reads it.

  1. Add a panel card for the filters, and inside it a text box, combo box or date picker per filter.

  2. Bind each input to a data view column that holds filter values, for example TransView.XX_CustID. KeyFields works too and is the usual choice when the value identifies “the current record”.

  3. On the grid, set Grid Model > Provider Model > Baq Options > Where to use them:

    Customer_CustID = '??{TransView.XX_CustID}'
  4. Save and preview. Enter a value and reload the grid.

Where-clause syntax, AND/OR combinations and the ??{} / ?{} question are covered in BAQ data views.

To reload as soon as a filter changes, add an event with trigger DataTable > Column Changed on the filter column that refreshes the grid.

If the BAQ itself has parameters, the out-of-the-box behavior is a BAQ Parameters slide-out that appears when the grid’s card expands. Users fill it in and click OK. If that’s all you need, tick Expand at Runtime on the grid so the prompt appears as soon as the dashboard opens.

The default BAQ Parameters slide-out, with two date parameters, opened by expanding the dashboard grid card

When you want your own parameter inputs on the page (a drop-down, defaults, re-running on change), bypass the prompt and run the BAQ yourself through Ice.BO.DynamicQuerySvc.

1. A placeholder view and a grid bound to it

Section titled “1. A placeholder view and a grid bound to it”
  1. Create a data view, e.g. XX_Results, without a BAQ server schema. If it’s a BAQ view, the framework shows the parameter slide-out again.

    Data View designer for a placeholder view with Server Schema ERP and no BAQ Id, and no columns defined

  2. On the grid, remove the existing provider settings and set Grid Model > Provider Model > Ep Binding to XX_Results. Define the grid’s columns as usual.

    Dashboard page with a Parameters card holding a Part Type combo box above the results grid, whose Provider Model Ep Binding points at the placeholder view

  3. Create a second view for the inputs, e.g. XX_Params, and add a combo box or text box bound to XX_Params.PartType.

Create an event with no trigger (it appears under User Defined Actions), named e.g. XX_RunQuery, containing one rest-erp widget:

  • Service Name Ice.BO.DynamicQuerySvc, Service Operation ExecuteByID
  • Method Parameters:
    • queryID (string): your BAQ ID, e.g. XX_PartsByType
    • executionParams (dataset): the parameter values and execution settings, entered in the dataset editor:
{
"ExecutionSetting": [
{ "Name": "PageSize", "Value": 500 },
{ "Name": "PageNum", "Value": 1 }
],
"ExecutionParameter": [
{
"ParameterID": "PartType",
"ParameterValue": "{XX_Params.PartType}",
"ValueType": "nvarchar",
"IsEmpty": false
}
]
}
  • ERP Rest Arguments > Response Parameters: Parameter Name Results, View Name XX_Results, Parse from Response Path returnObj

Add one ExecutionParameter entry per BAQ parameter. ParameterID must match the parameter name in the BAQ.

A user-defined event with No Trigger and one rest-erp widget calling Ice.BO.DynamicQuerySvc ExecuteByID

The executionParams method parameter (type dataset) with its dataset editor open, showing ExecutionSetting entries and an ExecutionParameter whose value comes from a data view column

ERP Rest Arguments > Response Parameters with Parameter Name Results, the placeholder view as View Name and Parse from Response Path returnObj

3. Run it on load and when the parameter changes

Section titled “3. Run it on load and when the parameter changes”
  1. On load: an event hooked After the form’s load event, with a row-update that sets a default in XX_Params.PartType, then event-next → XX_RunQuery.

    On-load event: a Form_OnLoad after trigger followed by a row-update that sets the parameter column

  2. On change: an event with Type DataTable, Hook Column Changed, Target XX_Params, Columns PartType, containing just event-next → XX_RunQuery.

    On-change event with trigger Type DataTable, Hook Column Changed, the parameter view as Target and the parameter column in Columns, followed by event-next

Some filters take a list, such as several job numbers or part numbers. On report forms, list-type filters accept a tilde-separated list (JOB-000123~JOB-000124). Two ways to collect one:

The chip selector (ep-search-chip-selection) shows each chosen value as a chip, with a search button to add more. It’s what Epicor uses on Job Traveler.

  1. Add the component and set EpBinding, e.g. TransView.XX_Jobs. Under Advanced, optionally set Plural Label Text, Singular Label Text and Empty Label Text (for example “Jobs selected”, “Job selected”, “No job selected”).

    ep-search-chip-selection properties with EpBinding TransView.Jobs and the Plural, Singular and Empty Label Text set under Advanced

  2. Create an event: Type EpBinding, Hook On Search, Target TransView.XX_Jobs.

  3. Add search-show with Like JobHead.JobNum, Select Mode MultiSelect, Search Form default, Sort By Column JobNum, and a Validation so typed values are checked:

    { "validateFilter": "JobNum = '%value%'", "errorMessage": "That job number doesn't exist" }

    search-show Search Options with Select Mode MultiSelect, Like JobHead.JobNum, Search Form default, a Validation value and Sort By Column JobNum

  4. Add search-value-set with Ep Binding TransView.XX_Jobs and Value actionResult.JobNum.

    search-value-set with Ep Binding TransView.Jobs and Value actionResult.JobNum

Users who copy a column out of Excel want to paste it. Add a multi-line text box for pasting and turn its contents into a tilde list:

  1. Add a text box bound to TransView.XX_PasteBox.

    A Filter card with a text box labelled “Paste (Ctrl+V) Here” above a search chip selector

  2. Create an event: Type DataTable, Hook Column Changed, Target TransView, Columns XX_PasteBox.

  3. Add a row-update that writes the cleaned list into the filter, e.g. Ep Binding ReportParam.Filter1 with Expression:

    "{TransView.XX_PasteBox}".split("\\n").map(v => v.trim()).filter(v => v !== "").join("~")

    This splits on line breaks, trims stray carriage returns and spaces, drops blank lines and joins the rest with ~. Note the doubled backslash (see Expressions).

Pasting with Ctrl+V works. The right-click “paste insert” from Classic isn’t available.

Sources

This page is written in our own words. It was informed by: