Dashboard Builder Application QuestionHoping someone can shed some light on my question? I'd like to place two maps side by side using the 2x1 Dashboard Builder template. Each map comes from it's own distinct JMP data table. Everything seems to work well until I run the dashboard from the hot spot. Then I get one blank template square, and the other filled in with the desired map. Both maps populate just fine in Preview mode. Only when I run the dasboard do I get this anomolie. Any thoughts?
Re: Dashboard Builder Application QuestionGood news then. From my seat as an SE, dashboard builder is one of our 'killer' apps in version 13. Pretty much every time I show it, people get excited. Especially the people that used Application Builder to slay the same data visualization sharing dragon...far more efficient construction of simple dashboards without lots of bells and whistles that retain alot of the core data/visualization interactivity that is JMP's hallmark.
Re: Dashboard Builder Application QuestionThanks folks, good discussion here. We opened up a defect to make this more straightforward in JMP 14: http://sww.sas.com/cgi-bin/quick_browse?defectid=S1321708
Re: Dashboard Builder Application QuestionI do get the dialog. The strange thing is that the second table path is recognized, but not the first. Does this mean that for a two table dashboard, the user will have to reestablish the connection to the data table each time it is run? I wouldn't think this is desireable behavior, since the path to the first table is correct.
Re: Dashboard Builder Application QuestionAh -- you will have to open and associate the data table with dashboard script when you run it. For example. I've create this on my Mac partition, saved out the appsource and then run it on my windows version of JMP. When I double click the dashboard appsource, I'll get the following screen (I assume you are seeing this):

Browse and open the two files and then associate them the proper data tables in the dashboard script. Then click run.
From peter's script above, you may need to remove the >> Run.
Re: Dashboard Builder Application QuestionI'm not running it from the UI, I'm getting this behavior when I'm running it from the script. I don't even get to the UI. I get a dialog box asking me to select the first table.
Re: Dashboard Builder Application QuestionDon -- can you try changing the current data table in the UI (as shown in my screenshot). That should work for you as well (I'd hope!)
Re: Dashboard Builder Application QuestionWhen I try to run the Dashboard from the script I get similar results to Peter. For some reason, JMP doesn't recognize the first table, even though the path is correct.
Re: Dashboard Builder Application QuestionDan: Worked like a charm. And placing all columns into one data table worked as well. Once again proving there's almost always more than one way to accomplish a task within JMP...but the data table switcher type idea you suggest is a nice tip/trick for this sort of thing.
Re: Dashboard Builder Application QuestionTo all following this thread...I placed ALL the columns into one JMP data table via Tables -> Join by Row Number. Drew the maps via the embedded scripts from each original data table which tagged along, and everything works like a charm. Thanks to all for your comments and digging into this.
Re: Dashboard Builder Application QuestionI suspect this will get it for you. Go into the data table view and change the current data table.

I think this is the same type of thing you are trying to do, changing the current data table works for me. Make sure the current data table is that of the leftmost graph (SF Crime in my case, not 311 blocked driveways).

Re: Dashboard Builder Application QuestionDon: I didn't try running from the script just yet...only the hot spot.
Re: Dashboard Builder Application QuestionRe: Dashboard Builder Application QuestionRe: Dashboard Builder Application QuestionCan you share the tables, too? Do you get the same results if you run it from the script or just the hotspot?
Re: Dashboard Builder Application QuestionThanks Dan...I'm also going to put all the columns needed for both maps into one JMP data table and see if that resolves the issue. There's no reason I can't do this out of one data table for this particular project I'm working on...I just arbitrarily chose two distinct data tables.
JMP App(
Set Name( "Dashboard" ),
Set Description( "Two reports arranged horizontally" ),
Auto Launch( 1 ),
Snap To Grid( 1 ),
Show Grid( 1 ),
Show Properties( 0 ),
Show Sources( 1 ),
Group By Category( 0 ),
Dashboard Mode( 1 ),
Parameters,
Tables(
DataTable1 = GuiTable(
Set Path(
"/C:/Users/pebart/Documents/Data/Work Videos & Articles/MidAtlanticCurrentMap.jmp"
),
Set Label( "MidAtlanticCurrentMap" ),
Set Location( "Current Data Table" ),
Set Invisible( 0 )
),
DataTable2 = GuiTable(
Set Path(
"/C:/Users/pebart/Documents/Data/Work Videos & Articles/MidAtlanticOpportunityMap.jmp"
),
Set Label( "MidAtlanticOpportunityMap" ),
Set Location( "Name" ),
Set Invisible( 0 )
)
),
Thumbnail(
New Image(
Char To Blob(
"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",
"base64compressed"
),
"png"
)
),
Script(JSL Quote(// This script is executed when the application is run.
// Named objects have been created for the application modules
// (for example, "Module1") and the pre-defined object
// "thisApplication" refers to the application object itself.
// Variables and functions declared here are scoped to the
// Application namespace.
) ),
Allocate(
Module1 = Plan(
PreAllocate,
Script(JSL Quote( thisModuleInstance << Create Objects; MainTabPage << Set Scriptable Object(thisApplication);
) ),
Allocate(
MainTabPage = Tab Page Box();
Splitter1 = H Splitter Box();
TabPage1 = Tab Page Box();
Report1 = Platform(
DataTable1,
Graph Builder(
Size( 457, 457 ),
Variables,
Elements( Points( Legend( 1 ) ) )
)
);
TabPage2 = Tab Page Box();
Report2 = Platform(
DataTable2,
Graph Builder(
Size( 427, 457 ),
Variables(
Color( :Name( "Opportunity Value ($)" ) ),
Shape( :County )
),
Elements(
Map Shapes( Legend( 7 ), Summary Statistic( "Sum" ) )
),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Background Map(
Images( "Street Map Service" ),
Boundaries( "US Counties" )
), Grid Line Order( 3 ), Reference Line Order( 4 )}
)
)
)
);
),
Organize(
Reparent( TabPage2( Report2 ) );
Reparent( Splitter1( TabPage2 ) );
Reparent( TabPage1( Report1 ) );
Reparent( Splitter1( TabPage1 ) );
Reparent( MainTabPage( Splitter1 ) );
Relocate( MainTabPage( 0, 0 ) );
),
Initialize(
MainTabPage << Background Color( 2147483647 );
MainTabPage << Border(
{Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}
);
MainTabPage << Enabled( 1 );
MainTabPage << Horizontal Alignment( "Default" );
MainTabPage << Margin(
{Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}
);
MainTabPage << Padding(
{Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}
);
MainTabPage << Text Color( 2147483647 );
MainTabPage << Vertical Alignment( "Default" );
MainTabPage << Visibility( "Visible" );
MainTabPage << Title( "Dashboard" );
MainTabPage << Tip( "" );
MainTabPage << Icon( "" );
MainTabPage << Closeable( 0 );
MainTabPage << Moveable( 0 );
Splitter1 << Background Color( 2147483647 );
Splitter1 << Border(
{Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}
);
Splitter1 << Enabled( 1 );
Splitter1 << Horizontal Alignment( "Default" );
Splitter1 << Margin(
{Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}
);
Splitter1 << Padding(
{Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}
);
Splitter1 << Text Color( 2147483647 );
Splitter1 << Vertical Alignment( "Default" );
Splitter1 << Visibility( "Visible" );
Splitter1 << Dockable( 1 );
Splitter1 << Set Width( 1924 );
Splitter1 << Set Height( 554 );
Splitter1 << Set Sizes( {0.489328474752733, 0.510671525247267} );
Splitter1 << set horizontal( 1 );
Splitter1 << Set Min Size( 1634, 441 );
Splitter1 << Set Max Size( 60003, 30000 );
Splitter1 << Set Auto Stretching( 1, 1 );
TabPage1 << Background Color( 2147483647 );
TabPage1 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} );
TabPage1 << Enabled( 1 );
TabPage1 << Horizontal Alignment( "Default" );
TabPage1 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} );
TabPage1 << Padding(
{Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}
);
TabPage1 << Text Color( 2147483647 );
TabPage1 << Vertical Alignment( "Default" );
TabPage1 << Visibility( "Visible" );
TabPage1 << Title( "Graph Builder" );
TabPage1 << Tip( "" );
TabPage1 << Icon( "Trellis" );
TabPage1 << Closeable( 1 );
TabPage1 << Moveable( 1 );
TabPage2 << Background Color( 2147483647 );
TabPage2 << Border( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} );
TabPage2 << Enabled( 1 );
TabPage2 << Horizontal Alignment( "Default" );
TabPage2 << Margin( {Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )} );
TabPage2 << Padding(
{Left( 0 ), Top( 0 ), Right( 0 ), Bottom( 0 )}
);
TabPage2 << Text Color( 2147483647 );
TabPage2 << Vertical Alignment( "Default" );
TabPage2 << Visibility( "Visible" );
TabPage2 << Title( "Graph Builder" );
TabPage2 << Tip( "" );
TabPage2 << Icon( "Trellis" );
TabPage2 << Closeable( 1 );
TabPage2 << Moveable( 1 );
)
)
),
Initialize(
Module1 << Auto Launch( 1 );
Module1 << Set Module Type( "Report" );
Module1 << Set Window Title( "^TABLENAME - ^APPNAME" );
Module1 << Set Min Size( 0, 0 );
Module1 << Set Max Size( 30000, 30000 );
Module1 << Set Auto Stretching( ., . );
)
) << Run
Re: Dashboard Builder Application QuestionDon: Both data tables are saved to disk at time of starting the workflow.
Re: Dashboard Builder Application QuestionCan you post the script? I'd like to investigate what's going on.
Re: Dashboard Builder Application QuestionAre both the tables saved to disk? I suspect that the one not showing is in memory only. Created at runtime, maybe?
Don
Re: Dashboard Builder Application QuestionDo your data tables include source scripts? When they do, a dialog box pops up asking if you want to run it from the source script or reference a table. When you reference a table or the datasets don't have source scripts, I see the same issue you are facing. When you have it run the data tables from the source script each time, both appear in the final dashboard. You could create a source script on your data tables ad hoc by using the JMP Query Builder.
Re: Dashboard Builder Application QuestionThanks Mike...it just seemed odd that the preview mode works fine...but Run Mode...not so. If I try to rebuild the missing map within the dashboard, it only calls the forward most JMP data table, which is the map populated to the other panel. I suspect you are right. I wonder if some sort of virtual join pathway could work? Just still seems odd to work in preview, but not in run, mode, which is why I thought I might be missing something obvious.
Re: Dashboard Builder Application QuestionOne of the scripters might need to chime in, but I’m betting that you need to have some kind of a hard reference to the second data table…
Best,
M
Re: Dashboard Builder Application QuestionYup...both tables open.
Re: Dashboard Builder Application QuestionAre both the tables open when you run it from the hotspot?