How To: Kinetic BAQ Grid Pub-Sub

Hey folks!
Your friendly, neighborhood Kineticist here with another episode of “How To Kinetic”!
Today, we’re going to talk about how to publish and subscribe two grids of data in Kinetic!
I’ll be using two BAQs, but the principles should remain the same for subscribing to a native grid.
Let’s get started!

  1. Create a new DataView for your primary BAQ grid.

  1. Grab a ‘Panel Card Grid’ from the Toolbox and slap it on your design surface.
  2. Click the grid, then go to Properties > Grid Model and fill out the ‘Ep Binding’ with the ID of the data grid you just created.

image

  1. a) If you want to customize what columns are shown, do so now in the Grid Model > Columns section. Small note about columns from BAQ grids.

  2. Go to Properties > Grid Model > Provider Model and enter your BAQ ID in the ‘Baq ID’ property.

  1. Go to Properties > Grid Model > Provider Model > Baq Options. This is where you can fill out a where clause to filter your results. I have set mine to filter my results based on the Quote Number of the loaded form. If you have multiple filters, you can use the ‘Where List’ section instead.

image

  1. Place a new ‘Panel Card Grid’ on your design surface for BAQ #2.
  2. Go to Properties > Grid Model > Provider Model and enter the ID of your second BAQ in the ‘Baq ID’ property. (You can also take the time to edit the columns in Properties > Grid Model > Columns at this point).

  1. Go to Properties > Grid Model > Provider Model > BAQ Options to fill out the where clause. I used a Where List for this example, so you may see how it’s configured.

image

Column: This is the column from BAQ2 you wish to filter on. Make sure you use the full column name from the BAQ (IE, OrderHed_OrderNum).
Condition: Condition to filter by. I set mine to equals or ‘=’.
Value: This is going to be the value from BAQ1 in the format of ‘??{DataView.FieldName}’. Recall that I named my DataView “RelatedOrders”. The two ‘??’ means we can pass a null value back.

That’s it! Save and Preview your layer and you should see your grids working!

10 Likes

And I am bookmarking a search for #experts-corner @hmwillett

https://www.epiusers.help/search?expanded=true&q=%23experts-corner%20%40willetta

Awesome work, Aaron. Thank you.

2 Likes

I was attempting to replicate this in the issue material entry app but I was not able to filter on the KeyField. (JobNum) I can give the where clause a direct value and it will filter the dataview accordingly but when I try to use the above syntax to filter on the KeyField it just returns all rows from my baq. Any idea what I may be missing here?

Can you post some screen shots of your properties?

Here’s the BAQ Options, any other properties screen shots that would help?

Grid Model: (The rest of the fields are empty or unchecked)

Provider Model: (The rest of the fields are empty or unchecked)

ETK_MassIssue is the BAQ and bdvMassIssue is the dataview

That all looks correct. Can you confirm you have the binding on the panel card here?


Here’s my setup for the same screen:

image

I created a new layer from base to follow along with your changes and it still doesn’t want to filter. Could it be a version issue with Kinetic? I’m currently on 2021.1.11

That’s entirely possible. I’m running 2021.2.3 atm. I don’t recall the version I created this tutorial on, unfortunately.

After doing some browser debugging I found this:
image

It would seem that the whereclause doesn’t allow the ‘-’ (hyphen) character that is prevalent in our job numbers. I verified that this was the case by selecting some jobs without the hyphens and they filtered correctly. Not sure if this is intended or how to get around it since it seems to be on the KeyField entry.

2 Likes

Nice find! I verified this on my system as well.

You should report that as a bug.

1 Like

I opened a case for it.

1 Like

You just need to add Single Quotes, then it works fine.

image

4 Likes

@hmwillett
Epicor version 2022.2.10

  1. I have added a Panel Card
  2. I have navigated to Data > Grid Model > Provider Model
  3. Entered Baq ID
  4. Navigated to Baq options
  5. Entered Where

The BAQ DataView returns results correctly?

To simply display BAQ results in a Kinetic screen can you simply follow the steps above or should you add the BAQ as a DataView first?