Script d'actualisation de la table de données en direct JMP (à partir du générateur de requêtes)Il s'agit d'une question concernant les scripts d'actualisation des tables de données en direct de JMP. Plus précisément, il s'agit des scripts sources générés à l'aide de Query Builder pour se connecter à une base de données dans JMP avec des scripts post-requête .
@LuizaFabreti et moi avons testé quelques exemples et nous ne savons pas exactement ce qui est exécuté dans le PostQueryScript de JMP Live et ce qui ne l'est pas (ce qui est ignoré).
Dans les deux cas, le PostQueryScript ajoute une nouvelle colonne de formule qui concatène deux colonnes (ID du médicament et Description) pour créer une nouvelle colonne.
Quelqu'un a-t-il déjà vu ça ? Des conseils ?
@dieterpisot
@Alex_Lippincott
Re: Script d'actualisation de la table de données en direct JMP (à partir du générateur de requêtes)À ma connaissance, JMP Live ne traite pas le script PostQueryScript différemment de JMP. Avez-vous essayé d'exécuter le script d'actualisation dans JMP ? Fonctionne-t-il correctement ?
Re: Script d'actualisation de la table de données en direct JMP (à partir du générateur de requêtes)Les deuxième et troisième scripts rencontrent également des erreurs de ce type :
Name Unresolved: New Formula Column in access or evaluation of 'New Formula Column' , New Formula Column(
Operation( Category( "Character" ), "Concatenate with Space" ),
Columns( :Drug ID, :Description )
) /*###*/
at line 1
Data Table( "Stability_Data_Stacked 2" )
Re: Script d'actualisation de la table de données en direct JMP (à partir du générateur de requêtes)Mon expérience est similaire. Parfois ça marche, parfois non. La fonction `NewColumn()` fonctionne, mais pour toute opération plus complexe, je recommande de l'effectuer en dehors de la requête, dans du JSL. Je ne sais pas exactement ce qui est censé être pris en charge, mais je trouve que les scripts post-requête ne sont pas très performants.
Re: Script d'actualisation de la table de données en direct JMP (à partir du générateur de requêtes)Je n'ai rien testé, mais il est parfois utile de vérifier si les colonnes que vous créez et que vous souhaitez utiliser ultérieurement existent bien avant que l'interpréteur n'ait terminé l'exécution du script. Ce problème survient généralement lors de la référence aux noms de tables, aux noms de colonnes créées, ou encore lors de la recherche et de la sélection de lignes.
L'utilisation de `wait()` ou `wait(2)` peut permettre de vérifier si c'est la cause de l'erreur. Si c'est le cas, il peut être judicieux de modifier la structure du code, de conserver la commande `wait()` dans le script si les performances ne sont pas affectées, ou d'envisager d'autres solutions.
Les manipulations de table dans un script post-requête sont assez difficiles ; il est préférable d'effectuer la gestion de la table de données dans le script d'actualisation dès que la table est créée, et non lors de la récupération elle-même.
Re: Script d'actualisation de la table de données en direct JMP (à partir du générateur de requêtes)J'ai joint les fichiers .jmpquery correspondants. Ils fonctionnent tous deux sous JMP.
Nous avons un document Discovery pour Baltimore où je vais suivre la suggestion d'Alex : déplacer les éléments en dehors du script Post-Query avant de publier sur JMP Live OU repartir de zéro lors de la création du script d'actualisation des données (au lieu de s'appuyer sur le script source).
Re: Script d'actualisation de la table de données en direct JMP (à partir du générateur de requêtes)J'ai des difficultés à publier le deuxième fichier .jmpquery, mais je peux vous l'envoyer par e-mail si vous souhaitez l'essayer.
La seule différence réside dans le script post-requête (dans JMP Live, la colonne est créée mais n'est pas déplacée) :
// Nouvelle colonne : Identifiant du médicament, Description
Tableau de données("Stability_Data_Stacked") << Nouvelle colonne("ID du médicament, Description",
Personnage,
"Nominal",
Formule( Char( :ID du médicament ) || " " || :Description )
) << Déplacer les colonnes sélectionnées( {:"ID du médicament, Description"n}, après( :Description ) ) <<
Exécuter les formules ;
Re: Script d'actualisation de la table de données en direct JMP (à partir du générateur de requêtes)Je pense que l'hypothèse de Martin est plutôt bonne. Il s'agit d'un problème de synchronisation. Il se pourrait que PostQueryScript s'exécute de manière asynchrone et que la requête SQL soit renvoyée au script avant la fin de l'exécution de PostQueryScript. La session JMP Live, ignorant qu'elle doit attendre, renvoie la table avant la fin de PostQueryScript. Ajouter une fonction wait() pour permettre à PostQueryScript de se terminer est probablement une bonne solution.