Make sure you have a variable that references your invisible tables, or else they won't work. This is straight out of the JSL documentation:
If you want to avoid a window appearing when you create a new data table, use the invisible keyword.
For example, to create an invisible table Abc with one column of ten rows,
dt = newTable("Abc", invisible, newColumn("X"),addRows(10));
Note: To prevent “lost” data tables created invisibly, you can create an invisible data table only if you assign
it a reference. If you do create an invisible data table without a reference, JMP immediately destroys it, so
any further uses of the table result in errors.
Tip: Once you are finished with an invisible data table, do not forget to close it. Otherwise, it remains in
memory until you quit JMP.
The other thing you can do is to turn a table invisible with the show window(0) command. In the following example the tabulation is invisible, but when I convert it to a table it is not, therefore I use the show window(0) command:
surv_tab = surv_dataset << Tabulate(
Show Control Panel( 0 ),
Add Table(
Column Table( Grouping Columns( :Time Period ) ),
Row Table( Grouping Columns( :SOC Name, :HLT Name, :PT Name ) )
), invisible
);
surv_pt_main = surv_tab << make into data table;
surv_tab << close window;
surv_pt_main << show window(0);