Lorsque je crée le workflow, je peux utiliser tabulate pour créer un tableau récapitulatif et il est automatiquement nommé « Untitle 1 ». Par conséquent, lorsque j'exécute à nouveau le workflow, le tableau récapitulatif nouvellement créé est nommé « Untitle 2 » de sorte que le workflow ne peut pas trouver Untilte1 et je dois lui donner manuellement une référence et des erreurs se produisent souvent s'il y a beaucoup de nouvelles tables.
Existe-t-il un moyen de permettre à Workflow de reconnaître automatiquement la nouvelle table ? Ou pourrions-nous nommer directement la table dans Tabulate avant de la « transformer en table » avec « Sans titre » ?
Merci!
Vous pouvez décider du nom lorsque vous utilisez Tabulate, mais je pense que vous devez le faire en modifiant le JSL (ajouter Output Table("tablename") à << Make Into Data Table)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Car Poll.jmp");
obj = dt << Tabulate(
Add Table(
Column Table(Grouping Columns(:sex, :marital status)),
Row Table(Grouping Columns(:country, :size))
)
);
dt = obj << Make Into Data Table(Output Table("My Table"));Workflow Builder est excellent : l'utilisateur n'a pas besoin de connaître de script JSL.
... jusqu'à ce qu'il soit confronté au piège : les conflits de noms de table.
Dans 50 % des cas, il n'y a pas de table avec le nom correspondant - et JMP demandera.
Le problème commence S'IL existe une table avec un nom correspondant et que ce n'est pas le bon.
Le sujet est abordé dans la partie questions-réponses de cette conférence :
Workflow Builder ou les « premiers pas » vers le scripting
Il existe plusieurs « solutions de contournement » :
Le plus simple (#4b) - en suivant l'exemple de @jthi :
utilisez un peu de JSL et stockez les références de table sous le nom « dt ». Utilisez ensuite dt également dans toutes les autres étapes du workflow.
NB : la spécification de « Tableau de sortie » ne fonctionne que jusqu'à ce qu'il y ait une collision, puis « Sans titre » deviendra « Sans titre 2 ».
autres approches :
#1 utilisez l'icône de rembobinage

... pour fermer toutes les tables de données, la table nouvellement générée sera à nouveau « Sans titre ».
-> pas de solution robuste
L'approche échouera une fois qu'une table de données sans titre sera ouverte et que l'utilisateur tentera d'exécuter le workflow.
#2 : sauvegarder
après avoir créé le tableau de données, enregistrez-le sous un nom spécifique. Utilisez le tableau de données enregistré pour enregistrer les étapes supplémentaires.
Cool : avec Enregistrer, même s'il y a un conflit de nom de table, JMP n'ajoutera pas de « 2 ».
Il suffit d'utiliser à chaque fois le même fichier temporaire et de l'écraser.
Pas sympa - mais très efficace !!
@Zoe_Betteridge dans Utilisation de JMP Workflow Builder pour automatiser l'analyse
#3 : nouveau depuis JMP18 : utiliser la boucle for each
Il remplace tous les noms de table dans les étapes de workflow imbriquées par le nom de table de l'étape d'importation (fonctionne également pour N=1) :
https://community.jmp.com/t5/Benelux-JMP-Users-Group/Workflow-Builder-or-the-quot-baby-steps-quot-into-Scripting/mp/739486/highlight/true#M7
#4 : avec un peu de JSL : dans toutes les étapes du workflow, supprimez les références aux noms de table
// for workflow steps like
// Data Table("mytable") << command (...);
// just remove the data table and get:
command( ... )[malheureusement, il existe plusieurs exceptions où cette approche échouera].
#4b : modifier le code et utiliser une variable comme référence pour la table de données
étape d'importation :
// add "dt ="
dt = open( ...);
étapes de travail suivantes :
// replace:
// Data Table("mytable") << command (...)
// with
dt << command( ...)
J'espère que dans une future version de JMP, il y aura un générateur de workflow qui empêchera automatiquement l'utilisateur de tomber dans ce piège, par exemple
- une fois qu'une table de données est créée, Worklow Builder peut demander un nom de variable approprié pour référencer la table de données.
- un bouton dans Workflow Builder :
remplacer la référence de la table de données par le nom de la table -> référence de la table de données par la variable
Sur la base de l'option 4b, il existe un message dans la liste de souhaits pour résoudre le problème automatiquement :
Autoriser Action Recorder à utiliser des noms de variables simples comme références