Mise en cache du script du complément JMP?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Je travaille sur le développement d'un certain nombre de scripts pour un complément JMP ....
Pour le moment, nous avons 2 versions de paquet du même addin .... Un pour DEV et un pour la production.
La plupart des utilisateurs n'auraient que la version PRO installée ...
Mais nous, développeurs, et nos testeurs peuvent avoir à la fois la version PRO et DEV Addins installés ...
Évidemment, les scripts contenus dans les addins ont le même nom ... mais les variables sont différentes, comme AddinName et / ou DSN Name .... et évidemment, la version DEV aurait probablement un code plus récent que la version PRO, même si les noms de script sont différents ....
Ce que j’ai enfin remarqué aujourd’hui, c’est que JMP (les deux 9 et 12) semble mettre en cache le script ??
Il semble que le script du fichier ADDIN installé le plus récemment soit exécuté ... Donc, si j'installe DEV Addin, alors PRO addin ... il ne semble pas que les scripts DEV soient exécutés .. il semble que les scripts soient toujours chargés à partir du répertoire PRO Addin, peu importe le menu auquel j'appelle le script .... Le contraire se produit lorsque j'installe PRO puis DEV ... : S
1) L'ID et les noms des addins sont différents et uniques
2) Le répertoire ajouté est différent ...... Ainsi, même si les noms de script dans les différents répertoires sont identiques, chaque addin a une INSTANCE différente du script dans son propre répertoire ...
2a) cela devient encore plus évident lorsque je lance un script PRO à partir du menu PRO ... et regardez le fichier journal et voyez qu'il a exécuté le script DEV, pas le script pro, et qu'il utilise le dossier DEV pour l'inclus!
2b) la définition du menu jmpcust utilise $ ADDIN_HOME ("ADDIN-NAME") vs $ ADDIN_HOME ("ADDIN-NAMEDev"), mais semble toujours exécuter le script à partir de la dernière version du complément installée (PRO vs DEV)
Ex: Je viens d'exécuter ce script à partir de l'élément PRO MENU ... Pourtant, je peux voir qu'il exécute le code de développement .. et semble avoir le DEV NameSpace .. ??
strDefaultDir = Obtenir le répertoire par défaut ();
print ("y compris:" || strDefaultDir || "MFG360-Common.jsl");
Include (strDefaultDir || "MFG360-Common.jsl", analyse uniquement);
Journal de sortie ...
/ *:
Le complément a été chargé avec succès: MFG360
Le complément a été chargé avec succès: MFG360 _Dev
"Y compris: /C:/Users/klockk.AUTH/AppData/Local/SAS/JMP/Addins/MFG360 Dev /MFG360-Common.jsl "
Je n'ai pas appelé le DEV CODE !! J'ai sélectionné l'élément de menu dans le menu MFG360 ... pas le menu MFG360_Dev ...
JMP met-il en cache les noms de script et ne suit-il pas correctement le contenu du fichier .jmpcust pour chaque complément enregistré?
Re: Mise en cache de script JMP Addin?
J'ai eu ce problème avec JMP9 ainsi que JMP12
Les noms de menu de niveau supérieur sont différents, mais la structure en dessous est la même…
Les fichiers Addin.def spécifient différents ID et noms
id = MFG360Dev
name = "MFG360_Dev"
supportJmpSE = 0
addinVersion = 1
installAfterSave = 0
minJMPVersion = 9
maxJMPVersion = 12
autoLoad = 1
chargesAtStartup = 1
--contre--
id = MFG360
name = "MFG360"
supportJmpSE = 0
addinVersion = 1
installAfterSave = 0
minJMPVersion = 9
maxJMPVersion = 12
autoLoad = 1
Le fichier jmpcust a également spécifié un menu de niveau supérieur différent… et utilise également la variable $ ADDIN_HOME () pour pointer sur le chemin correct du script.
Je pense que depuis que le nom de MENU a le même nom de racine pour DEV vs PRO que JMP est peut-être en train de devenir confus, je les ai donc changés pour avoir un trait de soulignement au lieu d'un espace, mais toujours pas de chance….
< menu_and_toolbar_customizations="" ="" jm="""> http://www.jmp.com/ns/menu "version =" 3 ">
< insert_in_main_menu="">
< insert_after="">
< name=""> HELP
< menu="">
< nom=""> MFG360 DEV
< caption=""> MFG360 Dev
< menu="">
< nom=""> FAB
< caption=""> Fab
< menu="">
< name=""> HISTORIQUE DU LOT
< caption=""> Historique du lot
< commande="">
< name=""> HISTORIQUE IN-HOUSE
< caption=""> Historique interne
< action="" type=""chemin""> $ ADDIN_HOME ( MFG360Dev ) \ Lot_History.jsl
< icon="" type=""none"">
< commande="">
< name=""> HISTORIQUE DES EQUIPEMENTS EXTERNES
< caption=""> Historique EQU sous-traité
< action="" type=""chemin""> $ ADDIN_HOME ( MFG360Dev ) \ Outsource_Equipment_History.jsl
< icon="" type=""none"">
--contre.-
< menu_and_toolbar_customizations="" ="" jm="""> http://www.jmp.com/ns/menu "version =" 3 ">
< insert_in_main_menu="">
< insert_after="">
< name=""> HELP
< menu="">
< nom=""> MFG360
< caption=""> MFG360
< menu="">
< nom=""> FAB
< caption=""> Fab
< menu="">
< name=""> HISTORIQUE DU LOT
< caption=""> Historique du lot
< commande="">
< name=""> HISTORIQUE IN-HOUSE
< caption=""> Historique interne
< action="" type=""chemin""> $ ADDIN_HOME ( MFG360 ) \ Lot_History.jsl
< icon="" type=""none"">
< commande="">
< name=""> HISTORIQUE DES EQUIPEMENTS EXTERNES
< caption=""> Historique EQU sous-traité
< action="" type=""chemin""> $ ADDIN_HOME ( MFG360 ) \ Outsource_Equipment_History.jsl
< icon="" type=""none"">
J'ai pas mal joué avec cela, et si je vais dans View-> ADD-Ins et que je ne fais que mettre l'un ou l'autre activé à la fois, le chemin et le script corrects seront utilisés, mais si je les active tous les deux .. JMP semble utiliser le $ ADDIN_HOME
Pour le dernier j'ai activé (ou est chargé via le fichier addinRegistry.xml si les deux sont activés au démarrage JMP…)
Re: Mise en cache de script JMP Addin?Hey, klockk,
Celui-ci semble également être un bon candidat pour ouvrir une piste d'assistance technique aux fins d'enquête (courrier électronique à l'adresse support@sas.com ).
De quelle version de JMP s'agit-il?
JMP ne met pas en cache les scripts, mais je m'interroge sur les légendes et les identifiants des éléments de menu que vos compléments ajoutent aux menus. Si vous ajoutez des éléments à deux sous-menus différents ayant le même ID et la même légende, JMP peut exécuter le script du complément DEV même si vous avez sélectionné l'élément de menu pour le complément PROD. JMP 12 a apporté un changement pour tenter de résoudre cette ambiguïté. Je suis donc surpris que vous le voyiez à JMP 12, mais votre cas est peut-être légèrement différent. Si vous avez la possibilité de faire une capture d’écran de vos menus personnalisés afin que nous puissions voir comment vos éléments sont organisés, cela peut nous aider à trouver une solution de contournement et à corriger toute lacune supplémentaire de notre code que cela éclaire. Ou, si la capture d'écran n'est pas possible, indiquez-nous simplement quelle est la hiérarchie de vos éléments de menu et quels sont les identifiants et légendes des éléments.
Merci,
Eric
Re: Mise en cache de script JMP Addin?En testant cela plus loin, il semble simplement charger et exécuter le script depuis le dernier addin chargé au démarrage.
Cela semble être directement corrélé à l'ordre dans lequel les addins sont chargés, ce qui est directement corrélé à l'ordre addinRegistry.xml pour les addins enregistrés.
Si le fichier de log montre:
Le complément a été chargé avec succès: MFG360
Le complément a été chargé avec succès: MFG360Dev
Alors soit addin exécutera le code de la DEV Addin ....
Si je retourne la commande dans le fichier addinRegistry, alors JMP exécute les scripts du PRO ADDIN_HOME malgré le complément / le menu que j'utilise ...
J'ai aussi découvert que je pouvais forcer le bon ensemble de scripts à utiliser en allant dans View-> Add-Ins et en désactivant un ou l'autre addin ... et les choses fonctionnent bien ... mais je ne peux pas les avoir tous les deux activés en même temps sans problème.