I am currently developing a custom layer on the Purchase Suggestions menu in Kinetic. The requirement is to display the Cost Center associated with the Requisition line, in order to make validation and analysis easier for the users.
What is already working
A new column was created in the suggestions grid (for example, CostCenter_c, or a similar name).
The Cost Center value is correctly populated by iterating through the grid (or datasource) and setting the value in the new column of the view.
Visually, the user can now see the Cost Center for each suggestion.
I would like users to be able to filter the suggestions by this new column (Cost Center), so they can quickly identify purchase suggestions associated with a specific Cost Center.
Issue
When I attempt to apply a filter on the new column (for example, “CostCenter = XXXXXX”), the screen crashes and throws an error related to the GetRowsPlant method.
Steps to reproduce
Open the PO Suggestions screen.
Verify that the new Cost Center column appears with values.
In the grid, attempt to filter by a specific value in that column (e.g., “contains” or “equals”).
Can you describe the method used to add the CostCenter column to the grid? Also show the entire where clause in the failed request. These may help determine your issue.
The CostCenter column is added at the UI customization level, not as part of the dataset original.
The value is populated after the grid loads, by iterating through the rows:
I take the current suggestion row,extract the Requisition number/line,execute a BAQ to retrieve the Cost Center,and then set that value into the new column in the view.
Visually this works fine.
The issue occurs when filtering. When a user applies a filter on the CostCenter column, Epicor attempts to push that condition into the server-side WHERE clause for GetRowsPlant.
So the WHERE clause itself looks valid, but it doesn’t get result and the method fails and throws the exception.
Yeah so filter isn’t going to work with this method. The refresh builds a filter string using your added column name but that column doesn’t exist in the method being called so you get an error. You could try adding the column using the BPM method like so: PO Suggestions: Adding fields into landing page
but i believe the same problem remains. AFAIK, there’s no solution to this problem or if I’ve seen one on here I forget. So IIRC, there’s no good way to add columns to existing landingpage grids and keep the grid functional.
It’d be nice if it fell back to client-side filtering in this case. YOu might be able to strip that column from the filter on a pre-process bpm, but that’s not my strong suit(?)