PubSub Kinetic Dashboards

Trying to recreate pub/sub behavior on a kinetic dashboard.
I have the trackers working to fetch the original list in the first (Profit loss summary) grid, and then the four grids below it are hooked to their own BAQ’s, but in classic if I clicked a row, it would populate the grids below based on the published column.

I still have that functionality for the first row that appears after I apply the trackers, it populates all of the grids, but when I move down a row, or to any other row, the rest just stay empty.

Any ideas?

first row populating everything correctly:

Second row not populating anything:

If I swap back to the first row, it doesn’t refresh the grids either.

If you’re using Provider Model to populate the grid you don’t need to publish anymore. Here are my notes when I was learning Kinetic Dashboards:

Pub/Sub Grids

  • Create first (Pub) BAQView and PanelGrid as normal
  • Created second (Sub) BAQView and PanelGrid as normal then
  • On the sub-grid in Grid Model > Provider Model > BAQ Options > Where List, click the + to create a record
    • Column: Subscribe BAQ Field, ie: JobHead_PartNum
    • Condition: = (for example)
    • Value: Publish BAQ View & Field, ie: ‘?{baqvOpenOrders.OrderDtl_PartNum}’

Note: On the Value field one ? = Required and two means optional

1 Like

That seems to be what I have, I deployed the dashboard in kinetic so it automatically made those rules. For example The second grids where value is ‘??{TransView.DG_PL_Summary_Dtl_1_0_JobAsmbl_JobNum_Filter}’

(grabbing jobnum from my first grid)

It all seems to work for the first row after a refresh, it just doesn’t update after I swap rows for some reason.

Did you build the dashboard or have Epicor’s tool do it for you from a Classic dashboard?

I had epicor’s tool build it for me from a classic. Basically just went to dashboard on epicor, and when i clicked deploy, I generated the kinetic version from it, then went to application studio and opened it.

1 Like

The update tool is ok with very simple dashboards but struggles with pub/sub ones as you can see. I rebuilt 99% of our 130 dashboards by hand using this template: Taming the Dashboard Dragons of Application Studio

7 Likes

Got it,

So remaking it from scratch, I got the first BAQ Grid loading properly (loads all rows on launch but I believe thats an option somewhere I can set to tell it not to, so I can build the trackers.)

Then, made a second one in the same way, Linked it to the second BAQ, and view.

Then in provider model for the second one, I gave it
LaborDtl_JobNum = ‘?{Summary.JobHead_JobNum}’

It’s still just not doing anything. Am I missing something?

Created the two dataviews from the BAQ’s.
Views: Summary, and Operations.

Then in the grid model:


Summary has no where options as this one is the root. This one loads every job on launch of dashboard currently.

Then the second grid.


Views for reference:


Am i missing something obvious?

Second Randy here. The tool worked great for us for DBs that were just data, but for anything we had anything complex there were some funky things that happened. We ended up building most DBs in App Studio from scratch. Kinda sucked at the time, but we learned a ton.

1 Like

Alright so here’s what I did on one of our Shipping DBs and I recreated it in Pilot by doing the following:

Use App Studio Wizard to create app tied to OG BAQ

Go in and drop a second Panel Card Grid in below the first

Go to Grid Model > Provider Model of the new panel card grid and populate the secondary BAQ ID:

Go back to Grid Model > Columns and add the columns you want in the secondary panel card grid:

Go to Grid Model > Provider Model > BAQ Options > Where List and populate, similar to what you had prior:

Preview loads all records in the bottom grid for a split second, then narrows down to the top record and changes when selecting other records up top:

1 Like

I never put anything in EpiBinding on my grids. Here is the sub grid:




BAQ Options - Where List:

2 Likes

In my dashboards I’m binding the data view to the Provider Model, not to the Panel Grid or Grid Model.

My views:

My “root” grid:

And the “child” grid:

Binding the data view to the Provider Model allows you to see the contents of the data view in the developer console (F12, then Ctrl+Alt+8 and then Ctrl+Alt+V while focused on the Application):

2 Likes

I got it figured out, It was a stupid mistake. Seems the EPIBinding didn’t matter. But after I created the “subscriber” grid. I didn’t run the setup again to link it to the dataview. I assumed putting the dataview inside of the grid model settings was enough.

3 Likes

Thank you all very much!

A simpler way is to set up your dataviews with a Parent/Child Relationship. Then it’s all automatic. In the example below, the ProjectPhaseDates dataview is set up as a child of the AllProjects dataview, with parent/child columns set to ProjectID. In the dashboard, when a project is selected in the top grid, the Project Phases grid populates with data for that project.

5 Likes

With this just be careful. If the grid is set up with server paging (default) then this could cause you to miss records.

As the data view parent child works client side after the baq has run. Therefore if the baq hasn’t returned all the data you could be missing records.

5 Likes

Good to know, thanks. Server Paging is off by default in my experience and we turn it on only when expecting more than 5,000 rows. But I will definitely keep this in mind.