Comment réutiliser/déplacer les éléments visuels de Graph Builder d'une table à une autre (après mise à jour via JSL) ?Salut tout le monde,
Je travaille en JSL et j'ai créé plusieurs visualisations Graph Builder sur la Table A.
Plus tard dans le script, je mets à jour ou je joins la Table A à la Table B (en utilisant le temps comme clé et l'ID comme filtre) — cela crée une nouvelle table (appelons- la Table fusionnée ).
Le problème est le suivant :
-
Les éléments visuels et les configurations de Graph Builder que j'ai créés sur le tableau A n'apparaissent pas automatiquement dans le tableau fusionné .
-
Je souhaite copier ou réappliquer ces mêmes visualisations à la nouvelle table résultant de la jointure/mise à jour.
Réflexion -
-
Existe-t-il une méthode basée sur JSL pour transférer ou relier des scripts Graph Builder d'une table à une autre ?
-
Quel est le flux de travail le plus fiable dans ce cas, si certains indicateurs clés de performance (KPI) ne sont calculés que sur des lignes filtrées en fonction de fenêtres temporelles ?
J'ai également essayé le code ci-dessous, mais je ne vois pas mt calcTable afficher cela dans le panneau supérieur gauche de la fenêtre d'interface graphique.
scriptNames = dt_merged << Get Table Script Names;
Show(scriptNames);
// Loop through and copy each script to calcTable
For(i = 1, i <= N Items(scriptNames), i++,
scriptName = scriptNames[i];
scriptCode = dt_merged << Get Table Script(scriptName);
// Add the same script to calcTable
calcTable << Set Table Script(scriptName, scriptCode);
Show("Copied script:", scriptName);
);
Automatisation et scriptageOrganisation du contenuFusion et nettoyage des donnéesRe: Comment réutiliser/déplacer les éléments visuels de Graph Builder d'une table à une autre (après mise à jour via JSL) ?En général, la procédure pour copier les scripts de table ressemble à ceci, mais des modifications peuvent être nécessaires en fonction de la structure de ces scripts.
Names Default To Here(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = Open("$SAMPLE_DATA/Big Class Families.jmp");
dt2 << Delete Scripts(dt2 << Get Table Script Names); // demo purposes
For Each({scriptname}, dt1 << Get Table Script Names,
s = dt1 << Get Script(scriptname);
Eval(EvalExpr(
dt2 << New Script(scriptname, Expr(NameExpr(s)))
));
);
Vous pouvez aussi utiliser Concatenate car cela déplacera les scripts (et les variables), mais cela pourrait potentiellement perturber d'autres éléments ; je recommanderais donc d'utiliser la boucle.
Names Default To Here(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = Open("$SAMPLE_DATA/Big Class Families.jmp");
dt2 << Delete Scripts(dt2 << Get Table Script Names); // demo purposes
dt_temp = dt1 << Subset(Rows(1), private);
dt_temp << Delete Rows(1);
dt2 << Concatenate(
dt_temp,
"Append to first table"
);
Close(dt_temp, no save);