Le script s'exécute différemment sur un autre ordinateur ?Le scénario suivant : j'ai un collègue à l'étranger pour qui j'ai écrit un scénario. Il s'agit d'un script qui charge les données d'une base de données, organise les données dans une table et place un script de table pour la cartographie de contrôle dans la table. Le tableau contient quelques produits/processus différents et ce script de tableau ne cible qu'un seul d'entre eux (c'est-à-dire une infime fraction de toutes les lignes). Lorsque j'exécute les scripts principaux et de table sur mon ordinateur, ils fonctionnent à merveille. Lorsque mon collègue à l'étranger les exécute (et j'ai vu cela sur son écran lors d'une entreprise de télécommunications), il récupère correctement la table de la base de données, et le script de table s'exécute mais échoue énormément en ce qui concerne la sélection de ligne qu'il est censé représenter dans le carte de contrôle. Il utilise des centaines, voire des milliers de lignes non pertinentes provenant d'un sous-ensemble incorrect.
Dans le script de table, je n'utilise pas "Names Default To Here (1);". Mon collègue a installé une version JMP différente (17.0 contre 17.2.) dont je ne m'attendais pas à ce qu'elle soit importante. En première réponse, j'ai envoyé une copie de mes préférences exportées via le Gestionnaire de Préférences (avec import/export) , ce qui n'a pas aidé à la résolution.
Il m'a ensuite envoyé une copie de sa table et lorsque j'ai inspecté le script de la table, j'ai découvert une différence mineure par rapport à l'apparence du script de la table lorsque j'exécute le script depuis le haut sur mon ordinateur :
Sur mon ordinateur:

Sur l'ordinateur de mes collègues:

Cependant, lorsque j'ai exécuté le script de table (c'est-à-dire la version du bas) dans la copie du tableau qu'il avait généré et envoyé par courrier électronique sur mon ordinateur, le script de table s'est exécuté comme prévu. Hélas, je ne comprends absolument pas ce qui se passe ici.
Qu’est-ce qui pourrait se trouver à l’origine de tout cela, comment pouvons-nous résoudre ce problème et éviter ce problème à l’avenir ? Des bonnes pratiques ? Merci!
Automatisation et scriptsRe : Script s'exécutant différemment sur un autre ordinateur ?Il peut certainement y avoir des différences entre les versions de maintenance de JMP, ce qui pourrait entraîner toutes sortes de différences/problèmes.
Le script fonctionne-t-il correctement pour votre collègue s'il sépare le script du script de table, ajoute les noms par défaut à ici (1) pour démarrer le script et l'exécute à partir d'une fenêtre de script séparée ?
Re : Script s'exécutant différemment sur un autre ordinateur ?-Les différences de format de données locales peuvent vraiment gâcher une requête. (cela peut être déterminé localement par le système d'exploitation)
-Les différences de version depuis la v14 environ causent rarement des problèmes.
-Si vous disposez d'une connexion plus rapide à un ordinateur et à une base de données, et que votre collège dispose d'un ordinateur très lent et d'une mauvaise connexion réseau à la base de données, cela pourrait poser un problème. (il faudra peut-être ajouter un peu wait();, ou dt<
Re : Script s'exécutant différemment sur un autre ordinateur ?
est causé par des messages d'objet de couleur inconnue :

en général, le paramètre est très utile - si vous acceptez que certains paramètres "connus" soient également colorés.
L'inconvénient des messages "inconnus" : il n'est pas possible d'ouvrir l'index du Scripting via

Re : Script s'exécutant différemment sur un autre ordinateur ?@jthi , le problème est le même lorsque j'ai demandé à mon collègue étranger de suivre la procédure de diagnostic que vous avez proposée.
@Byron_JMP , comme je le vois lors de nos vidéoconférences, le script initial s'exécute à peu près aussi vite que chez moi. Je suppose également que les ordinateurs portables de notre entreprise ont tous des spécifications relativement similaires. Ce qui est déroutant, c'est que lorsque mon collègue m'envoie par e-mail la table initiale qu'il a obtenue à partir du premier script ou "principal" et que j'y exécute le script de table, il fait exactement ce à quoi je m'attendrais. Alors peut-être que la vitesse de ligne n'est pas le problème
@hogi Je n'ai pas ce paramètre activé, donc dans mon cas (et j'ai pris les captures d'écran sur mon ordinateur à partir de mon installation JMP), il semble que l'éditeur de script lui-même code uniquement en couleur un message comme une variable s'il y a une ligne saut entre "<<" et "message", alors qu'il s'exécute de la même manière avec et sans saut de ligne entre "<<" et "message" complètement indépendant du codage couleur.
Cependant, je pense que j'ai peut-être un peu circonscrit le problème. J'ai copié ci-dessous ce que je veux que le script de table fasse, à quoi il ressemble sur mon installation JMP et ce qu'il semble faire sur la machine de mes collègues.
// what i want the table script to do
Data Table( "table_1" ) << Clear Selection;
Data Table( "table_1" ) << Clear Column Selection;
Table_2 = Data Table( "table_1" ) << Subset(
Filtered Rows(
Contains( :Category_1, "some_category" ) & Contains( :Category_2, "some_other_category" )
)
);
Table_3 = Table_2 << Split(
Split By( :Col_1, :Col_2 ),
Split( :Col_3 ),
Group( :Col_4, :Category_1, :Category_2 ),
Output Table( "table_3" ),
Remaining Columns( Drop All ),
Sort by Column Property
);
// what the table script looks like on my computer
// it does exactly the same as the above version, despite the line break before 'Subset'
Data Table( "table_1" ) << Clear Selection;
Data Table( "table_1" ) << Clear Column Selection;
Table_2 = Data Table( "table_1" ) <<
Subset(
Filtered Rows(
Contains( :Category_1, "some_category" ) & Contains( :Category_2, "some_other_category" )
)
);
Table_3 = Table_2 << Split(
Split By( :Col_1, :Col_2 ),
Split( :Col_3 ),
Group( :Col_4, :Category_1, :Category_2 ),
Output Table( "table_3" ),
Remaining Columns( Drop All ),
Sort by Column Property
);
// what it appears to be doing on my colleagues computer
Data Table( "table_1" ) << Clear Selection;
Data Table( "table_1" ) << Clear Column Selection;
Data Table( "table_1" ) << Split(
Split By( :Col_1, :Col_2 ),
Split( :Col_3 ),
Group( :Col_4, :Category_1, :Category_2 ),
Output Table( "table_3" ),
Remaining Columns( Drop All ),
Sort by Column Property
);
Peut-être que la solution est de modifier le script de table comme ceci ?
// a solution to be tested?
Data Table( "table_1" ) << Clear Selection;
Data Table( "table_1" ) << Clear Column Selection;
Wait(); // this would be the new part per Byron's suggestion
Table_2 = Data Table( "table_1" ) << Subset(
Filtered Rows(
Contains( :Category_1, "some_category" ) & Contains( :Category_2, "some_other_category" )
)
);
Table_3 = Table_2 << Split(
Split By( :Col_1, :Col_2 ),
Split( :Col_3 ),
Group( :Col_4, :Category_1, :Category_2 ),
Output Table( "table_3" ),
Remaining Columns( Drop All ),
Sort by Column Property
);
Qu'en penses-tu? Merci beaucoup pour votre aide jusqu'à présent et également pour tout commentaire supplémentaire que vous pourriez avoir. Au cas où je comprendrais quel est le problème, je le posterai certainement ici.
Re : Script s'exécutant différemment sur un autre ordinateur ?Je suggérerais d'ajouter Wait(0); au lieu de Wait() car Wait() sera par défaut de 3 secondes.

Vous pouvez également modifier les lignes filtrées pour obtenir les lignes où (cela pourrait au moins faciliter le débogage)
rows_of_interest = Data Table("table_1") << Get Rows Where(Contains(:Category_1, "some_category") & Contains(:Category_2, "some_other_category"));
Table_2 = Data Table("table_1") << Subset(
Rows(rows_of_interest)
);Re : Le script s'exécute différemment sur un autre ordinateur ?Merci beaucoup @jthi ! L'ajout de 'wait(0)' seul n'a pas fonctionné. L'utilisation de votre approche 'rows_of_interest' a conduit au succès. Je trouve toujours cela bizarre.
@Byron_JMP , @hogi - pour information et merci pour vos suggestions.