A Feature asked for ages; never delivered by Epicor yet it seems like a simple one… In a Dashboard allow Passing in Parameters to the BAQ Before Execution so we can stop running wide-open BAQs which hammer the server because Post-Filtering is not the answer.
Example: Click on Parent Grid and have the Child Re-Run BAQ with specific Params. So if you are doing lets say CTEs Recursive or Sub-Queries and SUM() and MAX() you will get “accurate” number with little effort because each time the BAQ will re-run with “params” and viola.
For More Reading:
Has anyone ever figured out how to call a BAQ from a Dashboard with BAQ Parameters (keep reading).
Now you can specify BAQ Params and once the user hits “Refresh” they will be prompted. But if you have Parameters and Dashboard filters, everytime they change a filter and hit refresh they will be re-prompted.
In addition it looks, ugly.
Instead of running a wide-open BAQ that runs for 3 minutes, is there a way to send the BAQ Parameters from the Filters instead (Avoiding the popup).
Further more I would love to see once the user clicks on a Head row, execute a child BAQ with params from the head-row… Let’s say the Details are PartTran records. Its crazy that we grab 1 million PartTran records and the user only wants to analyze 5 of them but by navigating and re-running BAQ Queries upon each click it would make things faster.
Basically:
Click on Head Row → Run Details BAQ with Head Row Parameters. (Repeat as the user iterates through rows) [ON-Demand Data] so we can stop running BAQs wide-open or with a -2 years limit.
I have seen this question asked numerous times, and here I am asking it again. Likewise with BAQ Reports, it seems that the BAQ Report runs this wide-open long Query and then applies the FIlter instead of passing the filters as Parameters.
YES!!! This is something we’ve been fighting with for ages. Parameters should be able to be mapped to dashboard tracker so you can pass those in without the extrapoup and pain as well as the publish subscribe functionality
I don’t recall but I don’t believe as of at least 10.1.500 maybe even earlier, that a BAQ actually will post filter from a dashboard. I’m pretty sure @josecgomez and/or I ran sql traces on dashboard BAQs and found that the filters that are passed into the dashboard (not baq params) are used in the direct SQL query. Not the whole query coming back then filtered.
Yeah, that good for performance, however, certain things don’t work with that type of filtering. For example, an anchor on a CTE query, or aggregate functions in lower levels on the query. That’s the problems we are having.
Yep this is one for me. This is currently not on the list for 400 and I will need to review level of effort as 400 is already past full and we would need to re-prioritize if this is more than a few hours of work.
I will be asking the BAQ team to see how much work it would be to allow the use of BAQData field values in Constraints / Filters. That would require a little code work from you but you should be able to reduce / remove the necessity to have the parameter prompting and that work would provide value into the Kinetic future…
Trying to figure out a way to overcome this “temporary” limitation, I have come to the below workaround that works for both Dashboards and BAQ Reports (in a short different way but the key concept is the same).
Add some UD Fields to UDCodes table. These will be used to hold the values that your BAQ will use instead of parameters. i.e.
Modify your BAQ so that instead of adding a Parameter as Criteria, Join the UDCodes table and add a relation to the field that will contain the value you would normaly use as Parameter. Also select at the Display Fields the CodeID from the UD Codes.
Now , what we need is to auto-create the UDCode record (before the BAQ is executed) that will store our “Parameter” values. Create a Dashboard Assembly menu item for the Dashboard and enter customization mode.
Add any Controls (not need to be bound somewhere) that will hold the “Parameter” values , in my case the InvoiceNum, you can hide the CodeID textbox and label.
Yeah, I did that in the past. It’s takes a whole resource (ud table) for little need…unless that UD table becomes a table of parameters from different sources and then requires a more code to maintain.
I really prefer External BAQs that I call with the DynamicQueryAdapter. It gives me more flexibility over the query.
UDcodes is different than a UDtable. UDcodes is one table used for all the codes and has a nice little user interface to maintain said codes already built in.
I agree, external BAQs that read Epicor tables, or even calling stored Procedures from an external BAQ is always a good alternative when you need for example performance but don’t care about security or other intermediate business logic.The above approach is a generic solution to imitate, with all its limitations, the missing criteria functionality in any BAQ Report , Dashboard etc and also be lined up with Epicor guidelines.