Hola, estoy creando un tablero de múltiples pestañas basado en el guión dado en la siguiente charla de descubrimiento: https://community.jmp.com/t5/Discovery-Summit-Americas-2021/One-Multi-tabbed-Filterable-Dashboard-2021-US-30MP-803/ta-p/398667
El script utilizado para combinar varios dashboards es el siguiente:
dashes = Find All(Reports);
tb = Expr(Tab Box());
For(i = 1, i<= N Items(dashes), i ++,
tabPage = Expr(Tab Page Box());
dfcb = Expr(Data Filter Context Box());
lub = Expr(Line Up Box(N Col(2)));
hlb = Expr(H List Box());
//Get Data table name to use with the data filter
wintitle = dashes[i] << Get Window Title;
wordone = Word(1, wintitle, "-");
wordtwo = Word(2, wintitle, "-");
dtname = Substr(wordone, 1, Length(wordone)-1 );
dt = Eval Expr(Data Table(Expr(dtName)));
//Get dashboard name
dashName = Substr(wordtwo, 2);
failed = 0;
j = 1;
//Loop through the tab page boxes in the dashboard, and extract the scripts
While(failed ==0,
Try(tpb = dashes[i] << Find(TabPageBox(j)),
failed = 1; Continue();
);
//Try to get the script from the display box if it exisits
Try(obj = tpb << Get Scriptable Object;
script = obj << Get Script,
j ++; Continue();
);
//If the script is for the local data filter add the script to the H List Box
If(Char(Head(Name Expr(script))) == "Data Filter",
FilterExprStr = char(NameExpr(dt)) || " << " || char(Name Expr(script));
FilterExpr = Parse(FilterExprStr);
Insert Into(hlb,NameExpr(FilterExpr));
,
//Else add it to the lineup box
If( Char(Name Expr(script)) != "Scriptable[]",
reportExprStr = char(NameExpr(dt)) || " << " || char(Name Expr(script));
reportExpr = Parse(reportExprStr);
scrollbox = Expr(Scroll Box());
Insert Into(scrollbox, Name Expr(reportExpr));
Insert Into(lub,Name Expr(scrollbox));
);
);
j ++;
);
//Build up the display boxes
Insert Into(hlb, Name Expr(lub));
Insert Into(dfcb, Name Expr(hlb));
Insert Into(tabPage, Eval Expr(Title(Expr(dashName))), 1);
Insert Into(tabPage, Name Expr(dfcb), 2);
Insert Into(tb, Name Expr(tabPage));
);
//Create combined dashboard window
New Window("Ac-225 trending tool, v0.1", tb);
//Close all the individual dash reports
For( w = 1, w <= N Items(dashes), w ++,
dashes[w] << Close Window;
);
Sin embargo, a diferencia de la charla de descubrimiento, mis tableros se basan en diferentes tablas de datos y no en una sola tabla de datos.
Tengo todas las tablas de datos y los tableros abiertos y ejecuto el script anterior para combinar todos los tableros en un tablero con múltiples pestañas. Esto da el siguiente mensaje de error:

Parece que no puede extraer los filtros de datos locales de mis paneles. ¿Alguna sugerencia sobre cómo puedo cambiar el script genérico para poder combinar todos los paneles abiertos?
¿O tal vez otras soluciones para combinar varios paneles abiertos en un panel con múltiples pestañas?
ACTUALIZAR:
El mensaje de error anterior no tiene nada que ver con que la fuente de datos sean varias tablas. Por otro lado, si el nombre de una de las tablas de datos contiene un guión (-), CombineDashboards.jsl no funcionará. Eliminar el guión del nombre resuelve el problema.