Gestionnaire de complémentsLa description
Gestionnaire de compléments vous permet de créer et de reconstruire facilement des fichiers de complément, de gérer les versions d'un complément au fil du temps, d'accéder directement aux fichiers source et d'avoir des personnalisations supplémentaires pour votre complément. Maintenant avec la version 2.0 de Gestionnaire de compléments , vous pouvez contrôler l'ensemble du cycle de vie de développement de votre application JSL maintenant que vous pouvez déployer vos compléments auprès de vos utilisateurs directement à partir de Gestionnaire de compléments !
Créer rapidement des compléments
La caractéristique fondamentale de Gestionnaire de compléments est la possibilité de créer un fichier de complément JMP directement à partir de fichiers source. Cette fonctionnalité était initialement incluse dans mon Générateur de compléments personnalisés complément et Gestionnaire de compléments a pris les bases de ce complément et l'a amélioré.

Déployer un complément pour les utilisateurs
Avec la version 2.0 de Gestionnaire de compléments , vous pouvez désormais déployer (ou envoyer) des compléments à vos utilisateurs directement depuis Gestionnaire de compléments . Vous pouvez déployer vers un emplacement TEST pour que vos utilisateurs testent votre complément et vous pouvez également déployer vers un emplacement PROD.

Lors du déploiement sur PROD, un script JSL avec un tableau associatif est automatiquement mis à jour avec la dernière date/heure de publication. Ce tableau associatif peut être utilisé par un script 'updateCheck.jsl' généré automatiquement qui peut comparer la date de génération du complément de l'utilisateur à la date de génération en fonction du tableau associatif. Si une version plus récente du complément est disponible, l'utilisateur verra la fenêtre suivante, où il pourra choisir de mettre à jour vers la dernière version. Ce concept utilisant un tableau associatif pour vérifier les mises à jour a été adapté de @brady_brady utilise une table avec des dates de publication. Cette méthode est décrite dans @Jeff_Perkinson le poste Comment écrire des compléments JMP à mise à jour automatique .

Gérer les versions d'un complément
Gestionnaire de compléments a la capacité de conserver automatiquement un historique des versions d'un fichier de complément chaque fois qu'un nouveau est créé. Il vous permet d'installer, de restaurer ou de supprimer une version précédente d'un complément. Vous pouvez éventuellement inclure un commentaire pour chaque version afin de pouvoir suivre les modifications apportées à chaque version.

Faire des personnalisations de complément supplémentaires
Gestionnaire de compléments vous permet d'apporter quelques personnalisations à votre complément qui nécessitaient auparavant des modifications manuelles du XML. Vous trouverez ci-dessous les personnalisations supplémentaires disponibles dans Gestionnaire de compléments .
- Version maximale de JMP
- Icônes JMP intégrées pour les éléments de menu
- Insérer avant la position pour spécifier une position pour un élément de menu
- Barre de menus personnalisée - créez votre propre menu ou utilisez un menu existant autre que "Add-Ins"
- Nouvelle dans Gestionnaire de compléments 2.0 : plusieurs menus principaux dans un seul complément

Accès aux fichiers source directement à partir de JMP
Dans l'onglet Fichiers de Gestionnaire de compléments , vous pouvez ouvrir les fichiers de votre dossier source directement à partir de JMP en double-cliquant sur le fichier souhaité dans le tableau.

Gestion automatique des métadonnées personnalisées
Avec Gestionnaire de compléments version 2.0, vous pouvez créer vos propres métadonnées personnalisées en plus des métadonnées automatiquement incluses et gérées par Gestionnaire de compléments .

Gestion des compléments précédemment installés
Dans l'onglet Installé, vous pouvez activer, désactiver ou enregistrer les compléments installés ainsi que les compléments qui ne sont pas installés.

Configuration requise
Ce complément est pris en charge sur les systèmes d'exploitation Windows et Mac avec JMP 13 ou supérieur.
Série de blogs
Gestionnaire de compléments, partie 1 : Définition et création d'un complément JMP
Gestionnaire de compléments, partie 2 : Déploiement de compléments à mise à jour automatique pour les utilisateurs
Gestionnaire de compléments, partie 3 : personnalisation avancée
Journal des modifications
Versions 1.1-1.3 (16 octobre 2017)
- Correction de quelques cas où le complément renvoyait une erreur
- Ajout de nouvelles préférences pour contrôler si les menus et les barres d'outils sont affichés
Version 2.0 (22 novembre 2017)
- Ajout de la prise en charge du déploiement de compléments aux emplacements TEST et PROD.
- Ajout de la prise en charge des métadonnées personnalisées via un tableau associatif pouvant être inclus dans vos scripts.
- Ajout de la possibilité d'avoir plusieurs menus principaux dans un seul complément.
- Ajout de la possibilité de copier et coller des éléments de menu dans l'arborescence des éléments de menu.
- Ajout de la prise en charge de l'établissement d'un dossier source à partir d'un fichier 'jmpaddin' existant.
- Ajout de la possibilité de rechercher une nouvelle version, extraite directement de la communauté JMP.
- Ajout d'une préférence pour installer automatiquement les compléments après leur création.
- Suppression de la prise en charge de la création de plusieurs compléments à la fois, pour diverses raisons.
- Écrasé d'autres bugs divers.
Version 2.1 (26 février 2018)
- Ajout d'une préférence pour exclure les fichiers et dossiers invisibles (c'est-à-dire les fichiers/dossiers commençant par un point). Ceci est utile si vous utilisez un système de contrôle de version, comme Git.
- Le fichier customMetadata.jsl est désormais ignoré lorsqu'il s'agit de déterminer si la dernière version est installée.
Version 2.2 (8 mars 2018)
- Correction d'un problème lors de l'ajout de plus de deux menus principaux de niveau supérieur.
- Ajout de nouvelles icônes à l'écran de sélection. Les icônes supprimées ne sont disponibles que sur un seul système d'exploitation.
Version 2.3 (6 avril 2018)
- Correction d'une erreur sur Mac causée lorsqu'un dossier source a été renommé ou supprimé
- La fenêtre Préférences fonctionne désormais même si la police Consolas n'est pas installée sur votre ordinateur.
Version 2.4 (9 janvier 2020)
- Autoriser l'insertion d'éléments de menu avant ou après d'autres éléments, au lieu d'autoriser uniquement l'insertion après.
- Ajoutez 15 et 16 comme numéros de version min/max de JMP.
Version 2.5 (5 février 2020)
- Améliorez la lisibilité lors de l'utilisation du mode sombre de macOS et du mode Contraste élevé de Windows dans JMP 15.
- Correction de l'alerte affichée lors de l'ouverture des préférences sur Mac.
Version 2.6 (4 juin 2020)
- Correction d'un bug avec l'analyse des compléments avec des menus personnalisés.
- Ajout d'informations de diagnostic pour l'analyse des erreurs afin d'aider à résoudre les problèmes futurs.
Version 2.7 (10 juin 2020)
- Ajout d'une solution de contournement pour un bogue temporaire dans JMP 16 EA
Version 2.8 (24 septembre 2020)
- Correction du problème de décompression des compléments avec des sous-dossiers
- Ajout d'une option pour créer automatiquement un dossier lors de l'utilisation d'un modèle de complément (activé par défaut).
Version 2.9 (4 février 2021)
- Modification de certains formats de date en formats de paramètres régionaux
- Correction de la fonctionnalité de vérification des mises à jour
Version 3.0 (18 janvier 2022)
- Les caractères spéciaux XML (tels que '&') ne doivent plus casser les fichiers addin.jmpcust.
Version 3.1 (4 mars 2022)
- Avertissement de format de date fixe pour certains paramètres régionaux lors de l'archivage des compléments.
Faites-moi savoir si vous trouvez des problèmes!
Version actuelle=3.1
2.9
Le gestionnaire de compléments vous permet de créer et de reconstruire facilement des fichiers de complément, de gérer les versions d'un complément au fil du temps, d'accéder directement aux fichiers source, d'avoir des personnalisations supplémentaires pour votre complément et de déployer vos compléments sur vos utilisateurs.

UtilitairesRe : Gestionnaire de compléments@Justin_Chilton JMP17 affiche des structures de menu vides pour mes compléments où JMP16 affiche des éléments de menu. C'est la même chose pour les trois addins. Voir mon message précédent du 14 septembre 2021.

Re : Gestionnaire de compléments@Justin_Chilton , @nathan-clark Je reviens enfin à ma fonction TEST Addin Auto Update. Je pense que je l'ai fait fonctionner correctement, à l'exception du fait que le gestionnaire de compléments n'écrit pas le dossier de métadonnées pour la configuration TEST.
Une chance d'activer cela? sinon, il faut mettre à jour manuellement ces fichiers à chaque fois, ce qui est plutôt sujet aux erreurs.
Henning
Re : Gestionnaire de complémentsSalut @Justin_Chilton
En essayant diverses choses après avoir posté la question, j'ai suspecté que le fichier était endommagé par le système de sécurité interne de l'industrie.
Lorsque j'ai reçu le fichier de l'extérieur et que j'ai procédé à la réinstallation, il a été installé normalement.

Je garderai les questions et les réponses pour le même cas.
Merci toujours, Justin
Dave_Ryu.
Re : Gestionnaire de complémentsSalut @Justin_Chilton
Je reçois beaucoup d'aide pour construire à l'aide du gestionnaire de compléments.
Je l'utilisais bien jusqu'à la v2.9, mais l'erreur suivante se produit lors de la réinstallation.
Cette erreur se produit à la fois dans la v2.9 et dans la dernière version de la v3.1.
Lorsque j'exécute le fichier d'installation, l'erreur se produit immédiatement et ne continue pas.
Pouvez-vous me dire comment agir pour l'erreur?

Merci beaucoup.
Dave_Ryu.
Re : Gestionnaire de complémentsSALUT @Justin_Chilton , j'ai rencontré cette erreur ci-dessous lors du déploiement dans un dossier TEST. Appréciez le complément sinon! Cela aurait dû être une fonctionnalité standard dans JMP 
Message d'erreur:
{"l'argument doit être un caractère"(1, 2, "Concat", Bad Argument(currentAddinInfo["Name"]), "Vous n'avez pas enregistré vos informations mises à jour pour le " || /*###*/currentAddinInfo[" Nom"] || /*###*/" complément." /*###*/)}
Erreur : l'argument doit être un caractère
1 fois).
Erreur-type
Nom de la fonction : Concat
Mauvais argument : currentAddinInfo["Name"]
Fonction en cours d'exécution : "Vous n'avez pas enregistré vos informations mises à jour pour le " || /*###*/currentAddinInfo["Nom"] || /*###*/" ajouter à." /*###*/
Pile d'appel :
saveButtonCheck
refreshAddinTableBox
déployerSélectionné
Re : Gestionnaire de compléments@Justin_Chilton Merci pour la suggestion. Vous avez raison de dire que ce que je voulais peut être géré par include().Merci pour l'astuce sur <
Je ne sais pas pourquoi mon zip n'a pas fonctionné, mais je le faisais sur un Mac et toutes les entrées ont disparu après ma tentative manuelle.Maintenant que j'ai inclus le travail, il n'y a plus besoin de modifications manuelles de toute façon.
Re : Gestionnaire de compléments@steveylin , il suffit de compresser le contenu du complément et de le renommer en xxx.jmpaddin devrait fonctionner, il vous suffit de vous assurer que les fichiers jmpcust et def sont à la racine du fichier zip jmpaddin.
Alternativement, je suggérerais d'ajouter votre chemin en tant que include() pour "Run thi JSL" au lieu d'utiliser le script directement en utilisant un chemin. Cela éviterait d'avoir à modifier manuellement le fichier jmpcust. Je ne sais pas pourquoi le chemin ne fonctionnerait pas pour vous, mais c'est la configuration que j'utilise réellement pour mes compléments.

J'aime utiliser <
Re : Gestionnaire de complémentsJe suis un novice essayant de faire fonctionner l'addin.Je l'ai fait fonctionner en référençant un répertoire, mais il est par défaut "texte" et je dois changer manuellement en "chemin"
"chemin" >$ADDIN_HOME(com.cirrus.pejmpscriptsMac)\pe-jmp-scripts\Check_Duplicate_Measurements.jsl
Le problème que j'ai est que je peux modifier .jmpcust pour le faire fonctionner sur mon ordinateur, mais je ne peux pas l'exporter.Existe-t-il un moyen simple de prendre le fichier addin.def/addin.jmpcust et de le compresser moi-même ?J'espère que c'est quelque chose de facile et que je n'ai pas besoin d'utiliser le gestionnaire de compléments.
J'ai essayé d'utiliser zip et de renommer mais cela n'a pas fonctionné.
Salutations,
Steve
Re : Gestionnaire de complémentsSalut @Justin_Chilton , j'ai récemment eu cette erreur lors du déploiement d'une nouvelle version de Prod.
Message d'erreur:
{"l'argument doit être un caractère"(1, 2, "Concat", Bad Argument(currentAddinInfo["Name"]), "Vous n'avez pas enregistré vos informations mises à jour pour le " || /*###*/currentAddinInfo[" Nom"] || /*###*/" complément." /*###*/)}
Erreur : l'argument doit être un caractère
1 fois).
Erreur-type
Nom de la fonction : Concat
Mauvais argument : currentAddinInfo["Name"]
Fonction en cours d'exécution : "Vous n'avez pas enregistré vos informations mises à jour pour le " || /*###*/currentAddinInfo["Nom"] || /*###*/" ajouter à." /*###*/
Pile d'appel :
saveButtonCheck
refreshAddinTableBox
déployerSélectionné
Re : Gestionnaire de complémentsSalut Nathan,
Oui, je l'ai construit en premier et je n'ai eu aucune erreur. Mais je reçois quand même le message de déploiement.
John
Re : Gestionnaire de compléments@Gido_vanderStar ,
Il semble que vous utilisiez probablement des paramètres régionaux différents du mien, ce qui provoque l'erreur de format inconnu. Je viens de mettre à jour le complément (v3.1) qui fait que le format de date utilisé lors du processus d'archivage respecte le format de date de vos paramètres régionaux.
Re : Gestionnaire de compléments@john_madden Avez-vous d'abord cliqué sur le bouton de construction ? C'est le bouton à côté de l'icône de sauvegarde. Cela construira le complément et le placera dans le dossier de développement.
Ensuite, vous pouvez installer DEV .... Ou vous pouvez déployer une version TEST ou PROD du complément. (vous devez déployer un complément TEST ou PROD avant de pouvoir installer le complément TEST ou PROD.
Re : Gestionnaire de complémentsSalut Justine,
Lorsque j'essaie d'installer mon complément (qu'AIM construit très bien), j'obtiens une erreur "Le complément DEV/TEST/PROD n'existe pas". Qu'est-ce que je peux faire de mal ?
John
AIM 3.0, JMP Pro EA 17.0b6, OS X 12.2.1
Re : Gestionnaire de complémentsSalut @Justin_Chilton ,
Merci pour ce plugin. Je voulais juste signaler un désagrément. Lors de l'installation ou du déploiement d'un complément, j'obtiens environ 50 fois le message suivant dans le journal :
Unknown format: m/d/y h:m
Utilisation de la dernière version (v3.0) du complément, dans JMP 16.0.0, Windows10.
Re : Gestionnaire de compléments@vohwinkelh0 J'ai récupéré le code de mise à jour automatique de Justin, et il serait assez facile - je crois - de faire quelques mises à jour pour permettre ce dont vous parlez.
Selon la façon dont vous l'avez intégré, vous pourrez peut-être jouer avec votre code local pour effectuer ces mises à jour. Dans l'état actuel des choses, le code comporte une étape qui vérifie essentiellement si la version installée est PROD, puis recherche une version plus récente. Je pense que vous pouvez effectuer le processus si la version installée est PROD OR TEST ... et vérifier les métadonnées de la zone de déploiement pour voir s'il existe une version PROD plus récente.
C'est peut-être quelque chose que vous pourriez envisager pour couvrir vos besoins jusqu'à ce que la bande passante s'ouvre 
Re : Gestionnaire de compléments@pauldeen , merci de l'avoir signalé ! Cela devrait être corrigé dans la v3.0.
Re : Gestionnaire de compléments@vohwinkelh0 , cela semble être une excellente idée pour une fonctionnalité dans le gestionnaire de compléments. Il semble que vous auriez besoin d'une sorte de version TEST (ou bêta) séparée ? Malheureusement, je n'ai actuellement pas la bande passante pour implémenter quelque chose comme ça, mais je suis sûr que cela pourrait être fait en ajoutant des champs de métadonnées personnalisés et en utilisant ceux de votre code pour savoir s'il s'agit d'une version TEST.
Re : Gestionnaire de compléments@Justin_Chilton la saisie d'un & dans le champ d'info-bulle provoque un dysfonctionnement lors de l'écriture dans addin.jmpcust, ce qui l'empêche d'être parsable. (JMP 16.1 Windows 10).
Re : Gestionnaire de compléments@Justin_Chilton savez-vous s'il existe un moyen d'implémenter la fonction de mise à jour automatique également sur TEST ? Je tombe fréquemment sur le fait que je distribue le TEST aux utilisateurs pour tester une fonctionnalité, mais une fois que PROD est mis à jour, cette mise à jour n'est pas déployée car le complément TEST ne vérifie pas automatiquement s'il existe une nouvelle version de PROD ?
Re : Gestionnaire de complémentsMerci @pauldeen ! Je ne savais pas que la fonctionnalité addinLoad.jsl était disponible (cachée dans le guide). Cette solution fonctionne pour mon problème!
Re : Gestionnaire de compléments@Djtjhin Vous pouvez soit déployer un complément vide sur tous les ordinateurs avec un addinLoad.jsl qui inclut vos fonctions personnalisées
Ou
Vous pouvez utiliser votre service informatique pour déployer un fichier jmpStartAdmin.jsl qui contient vos fonctions personnalisées comme décrit ici , aucun complément nécessaire.
Re : Gestionnaire de complémentsHé @Justin_Chilton , j'essaie d'utiliser le gestionnaire de compléments pour déployer une fonction personnalisée définie par l'utilisateur qui s'exécute idéalement au démarrage. Pourriez-vous recommander la meilleure façon de le faire en utilisant le gestionnaire de compléments ?
Re : Gestionnaire de compléments@Justin_Chilton JMP17EA2 affiche à nouveau des structures de menu vides, aucune erreur dans le journal. Merci pour cet addin, il devrait être intégré directement dans JMP !
Re : Gestionnaire de compléments@Justin_Chilton @MikeD_Anderson
Merci beaucoup pour la réponse! En fait, je suis juste tombé sur la possibilité de le faire l'autre jour, mais vous m'avez battu pour le publier ici.
@MikeD_Anderson - les informations sur le démarrage rapide de JMP sont vraiment bonnes à savoir, les scripts d'application commençaient définitivement à devenir assez énormes, donc cela aide beaucoup.
Une partie de ce que j'espérais accomplir avec le gestionnaire de compléments était de sauter l'étape d'avoir à exporter le .jmpappsource vers un .jsl ou .jmpapp chaque fois que je voulais tester quelque chose, donc ce que j'ai fini avec était le code ci-dessous . Je ne sais pas trop comment cela fonctionne, mais lors de l'utilisation d'OpenFile(), le .jmpappsource ne lance pas le générateur d'application et l'application peut être exécutée directement. Exactement ce dont j'avais besoin !
app = JMPApp();
app << OpenFile("$ADDIN_HOME(com.example.addin)\MyApp.jmpappsource");
app << Run;Re : Gestionnaire de compléments@mringqui & @Justin_Chilton - juste un petit commentaire en couleur sur la méthode mentionnée par Justin. Vous devez d'abord compiler le fichier source de l'application jmp dans un fichier .jmpapp. Cela peut être fait sous Fichier> Exporter lorsque vous êtes dans le générateur d'applications. Vous incluez ensuite le fichier .jmpapp dans le package de complément et ouvrez le fichier .jmpapp :
open("$ADDIN_HOME(com.example.me.myaddin)/MyApp.jmpapp");
Voici à quoi ressemble l'assistant de complément JMP par défaut.

Notez que cela a de jolis effets d'entraînement par rapport à l'intégration directe du JSL. Le plus important est que, pour les très grosses applications, cela empêchera JMP d'être lent au démarrage. Tout le code doit être analysé au démarrage - donc si votre script est vraiment gros ou si vous en avez une tonne, cela peut ralentir les choses - un problème que j'ai eu avec le STK. L'intégration en tant qu'application signifie que JMP n'a qu'à analyser une ligne de code au démarrage. Il y en a d'autres, mais c'est le plus important IMO.
Re : Gestionnaire de compléments@mringqui , Merci de nous avoir contactés. Je pensais que cela nécessiterait quelques modifications du complément du gestionnaire de compléments, mais @MikeD_Anderson m'a montré comment faire cela avec la façon dont le gestionnaire de compléments fonctionne déjà.
Au lieu de définir un fichier à exécuter, utilisez un script qui exécute le fichier source de l'application JMP. Vous n'auriez qu'à coller ceci dans la zone de texte pour "Exécuter ce JSL".
Include("$ADDIN_HOME(com.example.me.myaddin)/MyApp.jmpappsource");</CODE></PRE></LINGO-BODY><LINGO-SUB id="lingo-sub-394777" slang="en-US">Re : Gestionnaire de compléments</LINGO-SUB><LINGO-BODY id="lingo-body-394777" slang="en-US"><P>Salut, super travail ! J'espère créer un complément qui utilise un fichier .jmpappsource comme action "Exécuter JSL dans ce fichier" pour l'élément de menu. Est-ce quelque chose qui pourrait facilement être ajouté? À l'heure actuelle, être obligé d'utiliser un fichier .jsl limite ma capacité à utiliser le gestionnaire de compléments de manière pratique. Merci!</P></LINGO-BODY><LINGO-SUB id="lingo-sub-386516" slang="en-US">Re : Gestionnaire de compléments</LINGO-SUB><LINGO-BODY id="lingo-body-386516" slang="en-US"><P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/1855" target="_blank">@Justin_Chilton</A><BR /> J'utilise une combinaison de $ADDIN_HOME et Get Default Directory() selon où/comment j'ai besoin d'inclure des choses. Et pour bon nombre de mes inclusions, j'ai un ensemble de bibliothèques communes à plusieurs de mes outils et je les traite comme un complément distinct. Ensuite, tout outil que je crée inclut simplement le fichier de $ADDIN_HOME et toutes les fonctions de la bibliothèque sont disponibles pour moi ou pour toute autre personne souhaitant les utiliser.<BR /><BR /> je ne sais pas pourquoi<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2173" target="_blank"> @tsl</A> doit ajouter cette couche supplémentaire au zip. De mon point de vue, le laisser un peu comme l'organisation dans sa première hiérarchie rendrait les choses plus simples dans l'ensemble, mais ne connaissant pas toutes les spécificités de cette infrastructure, il y a peut-être quelque chose qui me manque.<BR /> En règle générale, la seule mise à jour que je dois apporter à un fichier .jmpcust, une fois les éléments d'origine définis, consiste à mettre à jour le nom d'affichage pour une mise à jour de version (ce que je fais dans mon dépôt, mais qui pourrait être fait dans le gestionnaire de compléments).</P></LINGO-BODY><LINGO-SUB id="lingo-sub-386499" slang="en-US">Re : Gestionnaire de compléments</LINGO-SUB><LINGO-BODY id="lingo-body-386499" slang="en-US"><P>Merci pour la clarification<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2173" target="_blank"> @tsl</A> . Il me semble que cela pourrait fonctionner avec quelques modifications de votre processus.</P>
<OL>
<LI>Ne modifiez pas le dossier $ADDIN_HOME et utilisez plutôt des chemins relatifs et Get Default Directory(). Cela facilite également le développement du complément, car toute référence à celui-ci concernerait la version installée.</LI>
<LI>Utilisez une variable pour déterminer l'emplacement du chemin relatif de CommonFiles et utilisez-le dans vos inclusions, car l'emplacement varie entre un complément de production et le dépôt de développement.</LI>
</OL>
<P>Alternativement, vous pouvez abandonner l'idée de copier CommonFiles dans chaque complément. Vous pouvez créer une entrée de complément distincte pour CommonFiles (elle n'aurait aucun élément de commande) et demander à l'utilisateur de l'installer en plus du complément. Cela signifierait qu'il n'y a qu'une seule copie des CommonFiles pour l'utilisateur (cela peut être une bonne ou une mauvaise chose selon la fréquence à laquelle vous testez tous les compléments après la mise à jour de CommonFiles. Avec cela, vous pouvez inclure les fichiers à l'aide de la variable de chemin $Addin_Home, mais vous devrez toujours trouver comment les inclure à partir du développement. Cela pourrait ressembler à ce que<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/6649" target="_blank"> @nathan-clark</A> fait, mais je ne suis pas sûr.</P>
<P>Encore une autre alternative est qu'au lieu que j'implémente la copie pour vous (quelqu'un de restrictif), je peux simplement implémenter un script de post-traitement très flexible que vous pouvez définir. Supposons que vous définissiez une fonction qui prend une référence à ZipArchive et que vous puissiez la manipuler comme bon vous semble. Cette solution nécessite probablement le moins de changement par vous et moi.</P>
<P>Désolé pour toutes ces divagations, mais j'espère que l'une de ces suggestions nous mettra dans la bonne direction !</P></LINGO-BODY><LINGO-SUB id="lingo-sub-386453" slang="en-US">Re : Gestionnaire de compléments</LINGO-SUB><LINGO-BODY id="lingo-body-386453" slang="en-US"><P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/1855" target="_blank">@Justin_Chilton</A> , oui, vous décrivez quelque chose de très proche de ce que je fais. Permettez-moi d'élaborer un peu, en montrant ce qui se passe si j'utilise le gestionnaire de compléments. (Et j'explore et j'apprends toujours comment cela fonctionne, alors pardonnez-moi si je ne représente pas ce qu'il peut faire !)</P><P> </P><P>Après avoir créé le complément, où j'ai laissé le dossier source être Addin_1\Source, j'ai un fichier que nous appellerons Addin_1.jmpaddin assis dans le dossier Addin_1\Release.</P><P>Je le renomme en extension .zip, l'ouvre et regarde. Je trouve que ça ressemble à ça :</P><P> </P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Addin_Initial_Folder_Structure.png" style="width: 217px;"><span class="lia-inline-image-display-wrapper" image-alt="Addin_Initial_Folder_Structure.png" style="width: 217px;"><img src="https://us.v-cdn.net/6038925/uploads/images/32932i1AD28B843A933FC3/Addin_Initial_Folder_Structure.png" role="button" title="Addin_Initial_Folder_Structure.png" alt="Addin_Initial_Folder_Structure.png" /></span></SPAN></P><P> </P><P>(Il y a aussi quelques fichiers XML que j'utilise pour gérer certaines choses, mais nous pouvons les ignorer pour plus de simplicité)</P><P>Je modifie ensuite manuellement le zip en créant un nouveau dossier dans le .zip et en faisant glisser tous les fichiers Source_1, etc. dans ce nouveau sous-dossier. Je laisse addin.jmpcust et add.def au niveau racine, car sinon le complément ne s'installera pas. Je laisse également CustomMetaData.jsl au niveau racine car je suppose que c'est là qu'il doit être.</P><P>Je fais ensuite glisser dans le .zip le dossier CommonFiles dont j'ai également besoin. Ma structure Zip finale ressemble à ceci :</P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Addin_Final_Folder_Structure.png" style="width: 220px;"><span class="lia-inline-image-display-wrapper" image-alt="Addin_Final_Folder_Structure.png" style="width: 220px;"><img src="https://us.v-cdn.net/6038925/uploads/images/32933i3C14631B2CA97BE7/Addin_Final_Folder_Structure.png" role="button" title="Addin_Final_Folder_Structure.png" alt="Addin_Final_Folder_Structure.png" /></span></SPAN></P><P>Il me reste ensuite une chose à faire : les lignes <ACTION type=""path""> du fichier .jmpcust doivent être modifiées maintenant. Alors qu'il dit</ACTION></P><P>$ADDIN_HOME(com.xyz)\Source_1\Code_1.jsl</P><P>Je dois le changer pour lire</P><P>$ADDIN_HOME(com.xyz)\Addin_1\Source_1\Code_1.jsl</P><P>Ce que je peux faire avec une recherche/remplacement dans un éditeur de texte.</P><P>Une fois toutes ces étapes terminées, je peux ensuite déployer et installer le complément et tout fonctionne.</P><P> </P><P>Pour votre dernier commentaire, parce que ce complément est une suite d'outils, chacun a son propre sous-dossier "Source" dans Addin_1, donc pour référencer les CommonFiles, mes instructions Include() dans Code_1.jsl etc ont un extra "..\" pour remonter d'un niveau supplémentaire afin de trouver correctement les fichiers inclus.</P><P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-385991" slang="en-US">Re : Gestionnaire de compléments</LINGO-SUB><LINGO-BODY id="lingo-body-385991" slang="en-US"><P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2173" target="_blank">@tsl</A><BR /> Je fais quelque chose de similaire avec subversion, et j'utilise le gestionnaire de compléments pour publier toutes les activités Repo. Une fois que tout le code est validé, j'exporte vers un emplacement qui devient la "source" de l'addin (un dossier local ou réseau). Personnellement, je gère mes fichiers .jmpcust et .def dans mon référentiel afin qu'ils soient également exportés, mais vous pouvez simplement exporter du code et créer les fichiers .def et .jmpcust avec Addin Manager (il créera les fichiers dans le dossier source , et dans mon cas, l'exportation de nouveaux éléments à partir du référentiel ne fera qu'écraser les fichiers en cours d'exportation).<BR /><BR /> Ensuite, j'utilise son outil pour gérer tout le packaging, l'archivage et la distribution dans mes dossiers de production (c'est toujours ce qui a pris le plus de temps à faire manuellement, de toute façon). Pour me faciliter la tâche, puisque j'avais également de nombreux addins gérés avant Addin Manager, j'ai également édité manuellement le fichier jmp qui stocke toutes les informations (addin, nom, dossiers source, etc.) donc j'avais tous mes addins prêts aller quand j'ai démarré le complément plutôt que de les ajouter manuellement via cette interface).</P><P> </P><P>En plus du complément lui-même, j'ai également mis à jour certaines fonctions incluses pour permettre à mes utilisateurs d'être avertis et de mettre à jour automatiquement les compléments lorsque de nouvelles versions sont mises en production.</P></LINGO-BODY><LINGO-SUB id="lingo-sub-385979" slang="en-US">Re : Gestionnaire de compléments</LINGO-SUB><LINGO-BODY id="lingo-body-385979" slang="en-US"><P><A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/2173" target="_blank">@tsl</A> , à quoi ressemble la structure du fichier pour le complément lorsque vous le compressez manuellement ?</P>
<P>J'imagine que puisque votre code inclut des chemins relatifs vers le répertoire CommonFiles, votre complément ressemble à ceci ?<SPAN style="font-family: inherit;">Le dossier Release n'est-il pas inclus dans le fichier addin ?</SPAN></P>
<P> </P>
<PRE>Addin_1.jmpaddin
|_Addin
|_Source<BR /> |_Code.jsl<BR /> |_Release<BR /> |_Something?<BR /> |_CommonFiles</PRE>
<P>Dans la structure ci-dessus, le dossier 'Addin' n'existe que pour conserver la même structure de dossiers pour vos chemins relatifs. Est-ce le cas pour vous ?</P>
<P>Je pense que je peux ajouter un nouveau chemin de répertoire facultatif qui peut être copié dans le fichier de complément dans le cadre du processus de génération. Cependant, nous devons encore résoudre le problème de répertoire. Pour résoudre ce problème, l'idée que j'ai est d'ajouter un petit extrait pour définir l'emplacement du répertoire CommonFiles et de l'utiliser pour tous vos fichiers communs. Alternativement, vous pouvez créer une fonction 'IncludeCommonFile()' qui a tenté d'inclure à partir de l'emplacement de production et de basculement vers l'emplacement de développement</P>
<P> </P>
<PRE><CODE class=" language-jsl">commonFilesDir = Directory Exists("../CommonFiles/",
"../CommonFiles/", // production location
"../../CommonFiles/" // development location
);
//or
IncludeCommonFile = Function({file},
Try(Include("../CommonFiles/" || file), Include("../../CommonFiles/" || file));
);
Cela vous donnerait la structure suivante, et je * pense * que cela fonctionnerait si je devais ajouter une fonctionnalité de dossier partagé. Le seul hic auquel je peux penser serait que si vous avez des dossiers supplémentaires dans Source, la fonction Inclure ne fonctionnerait pas, ou vous auriez besoin de '../' supplémentaires dans vos inclusions en utilisant la variable de répertoire.
Addin_1.jmpaddin
|_Source
|_Code.jsl
|_CommonFiles
Re : Gestionnaire de complémentsSalut @Justin_Chilton ,
Je viens de découvrir votre gestionnaire de compléments et je suis intrigué. Je gère manuellement les compléments depuis des années, jusqu'à la modification manuelle des fichiers .jmpcust. Je vois une opportunité de me simplifier la vie avec votre gestionnaire de compléments. Cependant, je me demande comment faire pour qu'il supporte ce que je veux faire.
Je me référerai à l'image ci-jointe de la structure de dossier proposée. L'idée est qu'il existe un dossier contenant du code JMP, nous l'appellerons RepositoryRoot ici. Ce dossier se trouve dans un référentiel de laboratoire GIT et est partagé et synchronisé entre deux ou plusieurs développeurs JSL.
Chaque développeur possède un complément dans le référentiel. Appelons-les Addin_1 et Addin_2. Ces compléments se trouvent dans leurs propres sous-dossiers respectifs dans le référentiel.
Il existe également un dossier que nous appellerons CommonFiles dans le référentiel qui contient des fichiers de bibliothèque JSL standard utilisés par les deux compléments.
Ces fichiers de bibliothèque standard sont inclus dans les compléments individuels, par exemple un fichier JSL dans Addin_1\Source peut avoir une ligne comme
include("..\..\CommonFiles\LibraryFile1.jsl");

La question est donc de savoir comment tirer parti de cette structure avec le gestionnaire de compléments ? Je rencontre des problèmes avec deux options possibles :
1) Si dans le gestionnaire de compléments, je laisse "RepositoryRoot" être le dossier source, il crée alors Addin.def et Addin.jmpcust dans RepositoryRoot. Cela ne fonctionne pas car nous ne pouvons avoir qu'un seul addin.def dans un dossier source donné et nous voulons avoir des compléments séparés avec des développeurs séparés, mais en partageant le code.
2) Si je laisse "RespositoryRoot\Addin_1\Source" être le dossier source, alors addin.def et addin.jmpcust sont créés dans le dossier Source du sous-dossier de Addin_1. Et c'est bien car il est contenu dans son propre dossier. MAIS, je ne vois aucun moyen d'ajouter le dossier CommonFiles à partir de deux niveaux dans l'arborescence des répertoires au complément. Le code nécessite ce dossier de fichiers commun, mais nous souhaitons le conserver au niveau supérieur pour le partage et la synchronisation du code.
Je comprends qu'en fin de compte, le dossier "CommonFiles" doit être dupliqué dans chaque fichier .jmpaddin final avant la publication du complément.
L'espoir était que nous puissions trouver une capacité de gestionnaire de compléments qui gérerait cela pour nous. Notre alternative consiste à créer manuellement le fichier .zip et à configurer la structure du dossier comme nous en avons besoin, puis à modifier l'extension en .jmpaddin avant la publication.
Si vous avez des idées ou envisagez de faire en sorte que le gestionnaire de compléments prenne en charge cette fonctionnalité, ce serait formidable.
Merci beaucoup
À M
Re : Gestionnaire de complémentsMerci pour votre réponse @Justin_Chilton ! J'ai fini par appliquer un thème clair pour jmp afin d'éviter complètement le problème de couleur. Je vais essayer vos suggestions, en cliquant sur la touche d'échappement pour résoudre le temps de latence.
Re : Gestionnaire de complémentsSalut @alavy ,
Je ne sais pas ce qui se passe avec le temps de réponse lent. Je devrai faire des recherches plus approfondies pour voir s'il s'agit d'un problème avec mon complément ou d'un problème avec JMP. Cependant, j'ai trouvé une solution de contournement décente. La première fois que vous cliquez dans une zone d'édition de texte, maintenez la touche Échap enfoncée jusqu'à ce que le texte ne soit plus au point. Maintenant, toutes les zones d'édition devraient fonctionner sans délai après avoir cliqué dessus.
Quant à la palette de couleurs, je ne sais pas ce qui causerait cela. Toute version du complément après 2.5 doit avoir une coloration appropriée pour les thèmes sombres. Je pense que la seule façon de reproduire ce problème est de passer du thème clair au thème sombre lorsque JMP est ouvert. J'obtiens toujours la vue ci-dessous avec le thème gris.

Re : Gestionnaire de complémentsHé @Justin_Chilton ,
J'utilise la v2.9 du complément sur JMP 15.1 exécuté sur MacOS. Je rencontre un temps de réponse TRÈS lent chaque fois que je dois saisir du texte dans l'une des zones de texte du complément. C'est si lent qu'il rend le complément inutilisable.
Un deuxième problème, plus petit, est qu'aucun des schémas de couleurs ne fonctionne correctement avec JMP défini en mode sombre. La couleur du texte dans les zones de texte est trop claire et ne peut pas être lue sur la couleur d'arrière-plan.

Re : Gestionnaire de compléments@Justin_Chilton Je crois que j'ai un accès en écriture car je peux voir que l'ancien complément a été archivé correctement et que le nouveau complément a été mis à jour, mais je vois toujours l'erreur. Je ne suis pas sûr de l'étape spécifique qui a échoué. En ce qui concerne le lecteur réseau monté, malheureusement, je suis probablement à court de profondeur sur celui-là. Je ne suis pas sûr de ce statut, mais je peux peut-être demander à mes collègues d'en savoir plus.
Re : Gestionnaire de compléments@Djtjhin , il semble que cela soit très probablement lié au fait qu'il s'agit d'un emplacement sharepoint. Pouvez-vous confirmer que vous disposez d'un accès en écriture à cet emplacement en créant un fichier dans l'explorateur de fichiers ? Même si vous disposez d'une autorisation, JMP peut ne pas l'être en tant qu'application. Utilisez-vous un chemin réseau normal ou enregistrez-vous via un lecteur réseau monté ? Le montage de votre serveur Sharepoint en tant que lecteur réseau peut résoudre les problèmes liés aux autorisations, car JMP peut simplement enregistrer sur le lecteur monté. Avec le chemin réseau normal, des informations d'identification peuvent être requises, ce que JMP ne prend pas en charge.
Re : Gestionnaire de complémentsMerci d'avoir précisé Justin !
Question de suivi, je reçois le message d'erreur suivant alors que j'essayais de déployer en production. Le dossier de destination est en fait un point de partage. Je ne sais pas si c'est la raison ou peut-être qu'il y a une solution de contournement.
Message d'erreur:
{"Fichier non ouvert en mode écriture. "(1, {1}, 2, "Enregistrer le fichier texte", Enregistrer le fichier texte /*###*/(filepath, str))}
Erreur : Fichier non ouvert en mode Écriture.
1 fois).
Indices du tableau de données : 1
Erreur-type
Nom de la fonction : Enregistrer le fichier texte
Fonction en cours d'exécution : Enregistrer le fichier texte /*###*/(filepath, str)
Pile d'appel :
déployerSélectionné
Re : Gestionnaire de compléments@Djtjhin ,
Je recommanderais de mettre l'instruction dans chaque commande pour que la vérification soit effectuée chaque fois que le complément est utilisé et non chaque fois que l'utilisateur lance JMP. De plus, il y a eu des problèmes avec la mise à jour des compléments au démarrage, donc faire cela lorsqu'un utilisateur clique et commande de complément est un moyen plus sûr de le faire.
Re : Gestionnaire de compléments@Justin_Chilton puis-je clarifier une réponse que vous avez fournie à Sébastien précédemment ? Alors, l'instruction de mise à jour automatique (ci-dessous) fonctionnera-t-elle si je la place dans le "script de démarrage" (instantané) ? Ou devrions-nous inclure uniquement l'instruction de mise à jour automatique sous chaque script de commande ?
Include( "$ADDIN_HOME(com.jmp.myaddin)\updateCheck.jsl" );
com.jmp.juchil.addinmanager:checkForUpdate();

Merci
Daniel
Re : Gestionnaire de complémentsC'est confirmé, ça fonctionne à nouveau, merci !
Re : Gestionnaire de complémentsMerci @pauldeen .Je pense qu'il y avait plusieurs facteurs différents en collision pour cela. D'une part, l'erreur devrait être résolue dans la version finale de JMP 16.0, mais elle était là pour EA8. De plus, cette erreur se produit probablement parce que vos paramètres régionaux ne prennent pas en charge le format de date que j'ai utilisé. Pour résoudre ce problème et être plus convivial pour les paramètres régionaux, j'ai mis à jour certains endroits où je formate les dates pour utiliser Locale Date Time au lieu de formats spécifiques. Cela devrait corriger l'erreur et mettre les dates dans un format plus convivial.
Re : Gestionnaire de complémentsMerci pour le correctif 2.8 sur les dossiers !
J'en ai un nouveau pour vous :
Gestionnaire de compléments ouvert, sélectionné un complément :

Exécution de JMP 16EA8.
Pas de problème avec la même chose sur JMP 15.2.0 sous windows 10
Re : Gestionnaire de compléments@Justin_Chilton Merci! Je vais essayer ça.
Re : Gestionnaire de compléments@pauldeen , je viens de mettre en ligne une nouvelle version (v2.8) qui corrige le problème de sous-dossier que vous voyiez. J'ai également ajouté une option de case à cocher pour créer automatiquement un dossier pour vous, comme vous vous y attendiez à l'origine.
Re : Gestionnaire de compléments@Sburel , Vous pouvez ajouter ce code partout où vous souhaitez rechercher une mise à jour, par exemple au début d'une commande d'élément de menu. Cela pourrait faire en sorte que lorsqu'un utilisateur clique sur la commande, il recherche une nouvelle version avant de lancer le complément.
Si je me souviens bien, il y avait un problème avec l'utilisation de ce code dans le fichier addinLoad.jsl, ce qui le ferait vérifier au démarrage de JMP, mais il y avait des problèmes avec la réinstallation du complément pendant que le complément est toujours en cours de chargement. Ce problème peut ou non être toujours un problème.
-Justin
Re : Gestionnaire de compléments@Justin_Chilton
Complément vraiment cool. Fonctionne vraiment bien.Cependant, j'ai eu du mal à utiliser la fonction de mise à jour automatique. En particulier, je suis confus avec le fichier/emplacement approprié pour ajouter l'extrait de code suivant
Include( "$ADDIN_HOME(com.jmp.myaddin)\updateCheck.jsl" );
com.jmp.juchil.addinmanager:checkForUpdate();
Meilleur
Sébastien
Re : Gestionnaire de compléments@Justin_Chilton Ah oui, créer un dossier vide vous fait passer cet écran. Le nom du dossier ne semble pas important, seul le fait qu'il soit vide.
Lors des tests, j'ai trouvé cet autre bogue:
Si je prends votre gestionnaire de compléments v2.7.jmpaddin et que je crée le dossier vide, puis que je le charge comme ceci, je dépasse l'écran d'ajout mais avec une grosse erreur : la même chose se produit avec d'autres compléments contenant des sous-dossiers. .

Re : Gestionnaire de compléments@pauldeen Le dossier source est l'endroit où le fichier jmpaddin sera également décompressé (j'aurais probablement dû le faire créer automatiquement le dossier, mais je suppose que je ne l'ai pas fait). Je suggère de créer un dossier appelé "Matériel de formation ASM" dans le dossier "Desktop" et de le définir comme dossier source. Le dossier source ne peut rien contenir car tout finirait par être compressé dans le complément.
Re : Gestionnaire de compléments@Justin_Chilton Lors de l'ajout d'un complément à partir d'un fichier .jmpaddin existant, nous avons un bogue sur cet écran :

Vous ne pouvez pas laisser le dossier source vide et si vous y mettez quelque chose, vous recevez un avertissement indiquant qu'il doit être vide lors du démarrage à partir d'un fichier jmpaddin.
Re : Gestionnaire de complémentsfonctionne comme un charme. Merci Henning
Re : Gestionnaire de complémentsSalut @vohwinkelh0 ,
Merci d'avoir signalé cela. J'ai vu cette erreur il y a quelques jours et votre commentaire me l'a rappelé, j'ai donc finalement pu localiser le problème d'un bogue avec l'une des fonctions de fichier/répertoire.
J'ai mis à jour le complément sur cette page pour contourner ce problème pour le moment, mais j'ai également noté le problème dans JMP afin que nous puissions le résoudre avant la sortie de JMP 16.
Merci,
Justin
Re : Gestionnaire de complémentsJustin,
Je reçois une erreur avec votre complément dans le cadre des programmes JMP16EA. Vous voulez que je dépose un rapport de bogue là-bas ou dois-je le poster ici ?
Henning
Re : Gestionnaire de complémentsMerci beaucoup pour le partage... j'essaierai la semaine prochaine.
Re : Gestionnaire de compléments@guillaumebugnon J'utilise donc cette fonction dans une boucle for pour chiffrer les scripts.
encryptScript = Function({filepath},
{defaultLocal},
errortxt = "";
winCount = N Items (Window ());
scriptWin = Open (filePath);
scriptWin << Bring Window to Front;
Wait (1);
Main Menu ("Encrypt Script");
windowList = Window ();
encryptedWin = windowList[nitems(windowList)]; // get reference to encrypted script window (i.e. the last window)
//TODO: Implement without Try
Try (
encryptedScript = encryptedWin[Script Box(1)] << Get Text;
save text file(filePath, encryptedScript);
ConsoleMsg("File Encrypted: "||filepath); // hoping this goes to stdout
,
errortxt ||= char(exception_msg) || "\!r\!n";
);
Try (scriptWin << Close WIndow());
Try (encryptedWin << Close WIndow());
Return (errortxt)
);
Ensuite j'en ai un autre autoit script qui traverse et tape le mot de passe et appuie sur Entrée.
Ce n'est certainement pas une solution parfaite et votre élément de la liste de souhaits serait bien mieux.
Re : Gestionnaire de compléments@pauldeen ,
Merci d'avoir signalé ce problème avec les compléments de menu personnalisés. Je viens de télécharger une nouvelle version qui devrait résoudre ce problème.
-Justin
Re : Gestionnaire de compléments@Justin_Chilton Merci pour votre réponse.
il peut être utile d'avoir une fonction jsl capabale qui peut chiffrer d'autres fichiers jsl (ou une autre façon de le faire).
j'ai regardé @vince_faller présentation ce matin (heure française). Joli.
Nous avons également un processus Devops mais nous devons en automatiser davantage.
Guillaume
Re : Gestionnaire de compléments
@guillaumebugnon ,
@vince_faller pourrait avoir quelques conseils sur le chiffrement des scripts. Cependant, je devrais ajouter une fonctionnalité au gestionnaire de compléments pour pouvoir autoriser la modification des fichiers à ajouter avant le processus de compression.
je pense @vince_faller a également fait une présentation/webcast hier qui pourrait vous être utile ici : https://www.brighttalk.com/webcast/18305/412912
- Justin
Re : Gestionnaire de complémentsBonjour tout le monde,
Quelqu'un a-t-il des conseils ou une expérience pour chiffrer les scripts avant qu'ils ne soient compressés dans le fichier jmpaddin ?
Merci
Salutations,
Guillaume
Re : Gestionnaire de compléments
S'exécutant sur JMP15 Windows 10, le gestionnaire de compléments ne peut plus analyser la structure de menu d'un complément existant.
Pour reproduire : créez un nouvel addin et renommez le menu de niveau supérieur en utilisant custom. Créez une commande et enregistrez la définition du complément.
Fermez le gestionnaire de compléments, rouvrez-le et essayez de voir l'onglet des éléments de menu pour le complément que vous venez de créer (assurez-vous de consulter celui-ci avant de regarder l'une de vos autres structures de menus de compléments).
Pour que cela fonctionne, créez un deuxième complément dans lequel vous ne modifiez pas l'élément de menu supérieur, mais laissez-le sur les "Compléments" par défaut. Enregistrez ce complément. Fermez le gestionnaire de compléments, ouvrez-le à nouveau, affichez d'abord la structure de menu de celui avec le nom de niveau supérieur par défaut, puis affichez la structure de menu de celui personnalisé. Tout fonctionne à nouveau.
Re : Gestionnaire de compléments#2 a commencé avec JMP15/OSX15, mais je n'ai pas encore essayé 2.4 et je reviendrai vers vous.
Re : Gestionnaire de complémentsMerci Justin!!
Re : Gestionnaire de complémentsSalut @john_madden ,
Merci de nous avoir contactés et excuses pour le retard.
#1 devrait être adressé dans la v2.4 que je viens de télécharger ici.
Pour # 2, je ne suis pas en mesure de reproduire ce problème sur Windows, mais je vais enquêter plus avant sur Mac. Savez-vous si ce problème a commencé avec un numéro de version JMP spécifique (c'est-à-dire JMP 14/15) ou avec une version macOS (10.14/15) ou cela vous est-il toujours arrivé ?
Merci,
Justin
Re : Gestionnaire de complémentsSalut Justine,
Je rencontre quelques problèmes avec le gestionnaire de compléments sous JMP 15/Mac OS 10.15.
(1) [trivial] les options de version maximale/minimale de JMP doivent inclure 15
(2) [moins trivial] La saisie de texte dans des zones de texte dans un certain nombre de volets du gestionnaire semble (partiellement) cassée. Je peux saisir du texte (par exemple, nom du complément, version, etc.) en le collant, mais pas en le tapant.
Merci.
Jean Madden
Re : Gestionnaire de complémentsBonjour, j'ai commencé à utiliser le gestionnaire de compléments après de nombreuses années de gestion manuelle des modifications. Cependant, j'ai récemment eu un problème avec les éléments de menu qui n'étaient pas visibles. J'ai récemment mis à jour JMP 14.3.0, je ne sais pas si cela est lié. Je n'avais aucun problème avec ça avant.
Comme vous pouvez le voir, il n'y a pas d'erreurs dans la construction ou le déploiement signalé, donc je ne sais pas ce qui se passe.
Toute aide ou suggestion est appréciée car je ne veux vraiment pas avoir à le reconstruire à partir de zéro.
Salutations,
Dereck.

Re : Gestionnaire de complémentsSalut Adam,
Toutes mes excuses pour la réponse tardive. D'après le message d'erreur que vous voyez lors de la suppression de l'essai, il semble que mon hypothèse selon laquelle le script updateCheck puisse trouver le fichier customMetadata était correcte. Je vois où vous avez le '
aa = Inclure ( "$ADDIN_HOME(com.jmpTest.myjmpaddin)\customMetadata.jsl" ) ;' partie de votre scénario. Cependant, vous n'avez pas vraiment besoin d'y inclure le fichier. Au lieu de cela, vous souhaitez modifier l'inclusion dans le script updateCheck.jsl. Cela devrait ressembler à ce qui suit (autour de la ligne 11).
customMetadata_aa = Include( "<SPAN>$ADDIN_HOME(com.jmpTest.myjmpaddin)\</SPAN>customMetadata.jsl" );
Faites-moi savoir si vous avez des questions supplémentaires.
Salutations,
Justin
Re : Gestionnaire de complémentsBonjour Justine,
Comme il s'agit de mon premier complément et que je suis un enfant en ce qui concerne l'expérience JMP (environ 11 mois d'utilisation), je peux commencer à poser des questions simples maintenant pendant que j'active la fonction de vérification des mises à jour.J'ai créé un complément de test simple pour me concentrer uniquement sur la fonction de mise à jour afin que je puisse comprendre cette fonctionnalité avant de l'appliquer à mon programme plus robuste.
LE SCÉNARIO:
aa = Include( "$ADDIN_HOME(com.jmpTest.myjmpaddin)\customMetadata.jsl" );
Include( "$ADDIN_HOME(com.jmpTest.myjmpaddin)\updateCheck.jsl" );
com.jmp.juchil.addinmanager:checkForUpdate();
New Window ("Test 3",
Panel Box ("Test 3",
Text Box("Test 3")
)
);
Répondre à vos questions :
- Ai-je défini la préférence "Créer un fichier de métadonnées" ?
- J'avais coché la case "Créer un fichier de métadonnées", mais je n'avais pas le code de métadonnées personnalisé contenant l'instruction d'inclusion dans mon script.J'ai ajouté cette ligne de code à la ligne juste avant le code de vérification de mise à jour, comme vous pouvez le voir ci-dessus, mais cela n'a pas corrigé le problème.
- Quelle est la structure de répertoire de mon addin ?
- Dans la section centrale de la fenêtre du gestionnaire de compléments, sous l'onglet Fichiers, addin.def, addin.jmpcust, customMetadata.jsl et updateCheck.jsl existent tous dans le même dossier.Ce dossier existe dans le même dossier parent que le fichier addin lui-même (.jmpaddin).
- Ce dossier existe sur mon lecteur C, PAS sur le serveur.Dois-je également enregistrer ces fichiers sur le serveur ?
- Dans la section inférieure, onglet Prod, j'ai les trois options d'enregistrement sur un emplacement de serveur.Ils ont chacun leur propre dossier et les trois dossiers existent dans le même dossier parent.
- ARCHIVE - ne contient que les itérations précédentes du complément lors du déploiement.
- META – ne contient que le fichier publishedAddins.jsl
- PROD - contient uniquement le fichier d'installation du complément .jmpaddin
- Quel message d'erreur est-ce que je reçois lorsque je commente "Essayer ()"
- Je reçois le message d'erreur "Erreur avec le fichier : le chemin n'est pas valide : \customMetadata.jsl"
- J'ai essayé de changer le chemin d'accès ci-dessus de la langue $ADDIN_HOME... à l'emplacement exact sur mon lecteur C tel qu'il est appelé dans l'onglet Fichier (section du milieu).Cela n'a pas aidé, j'ai reçu le même message d'erreur.
Merci pour votre aide!
-Adam
Re : Gestionnaire de complémentsSalut @Adam_R ,
Merci pour tout le travail sur les détails ! Quelques questions et choses à essayer :
- La préférence "Créer un fichier de métadonnées" est-elle définie dans le groupe de préférences "Métadonnées personnalisées" ? Ce fichier est requis pour que le script de mise à jour réussisse.
- À quoi ressemble la structure de répertoires de votre addin ? Le script appelle-t-il 'com.jmp.juchil.addinmanager:checkForUpdate' dans un dossier de niveau inférieur ? Si tel est le cas, le fichier updateCheck.jsl s'attend à ce qu'il se trouve dans le même dossier que celui à partir duquel le dossier est appelé, ce qui empêche la fonction de fonctionner. Une solution de contournement consiste à ajouter un autre fichier JSL au niveau racine de votre complément (identique à customMetadata.jsl et updateCheck.jsl) qui appelle la fonction updateCheck et à inclure simplement ce fichier dans le script JSL de niveau inférieur. Une autre option consiste à modifier le script updateCheck.jsl pour utiliser '$addin_home(com.jmp.myaddin)/customMetadata.jsl' au lieu du nom de fichier relatif. Si tel est le problème, je peux mettre à jour le complément pour le rendre plus flexible là où il ne dépend pas tellement du répertoire par défaut où vous appelez la fonction.
- Le script updateCheck.jsl est implémenté de sorte qu'il échoue silencieusement à l'aide d'un Try() afin de ne pas perturber le flux de travail de votre complément. Donc, si aucune des deux premières suggestions ne résout le problème, pourriez-vous commenter Try() dans le fichier updateCheck.jsl et me faire savoir quel message d'erreur vous obtenez lorsque vous essayez de rechercher une mise à jour ?
Faites moi savoir si vous avez des questions.
Salutations,
Justin
Re : Gestionnaire de complémentsBonjour Justine,
Add-In Manager v2.3 fonctionne à merveille dans tous les aspects pour moi, sauf un, je ne parviens pas à obtenir le updateCheck pour pousser correctement les mises à jour.Quelques faits:
- Mon code en dehors de la vérification des mises à jour s'exécute correctement.
- Mes dossiers PROD "Métadonnées" et "Déploiement" se trouvent tous les deux sur des emplacements de serveur sous le même dossier parent, et j'ai vérifié que les utilisateurs y ont accès.
- Dans la section Préférences, j'ai sélectionné "Inclure le script de vérification de mise à jour" et copié l'instruction d'inclusion fournie dans cette section dans mon code.J'ai modifié la section ID du complément de cette déclaration de (com.jmp.myaddin) pour qu'elle corresponde à mon complément.Je n'ai rien modifié d'autre dans cette déclaration et je n'ai rien modifié dans le script updateCheck.jsl.
- Lors de la modification du complément et du déploiement sur PROD, j'ai vérifié que la "pubDate" dans le fichier publishedAddins.jsl situé dans le fichier du serveur de métadonnées a changé à chaque déploiement
- J'ai demandé à des utilisateurs de télécharger une version existante du fichier situé dans le dossier PROD, de fermer JMP, de rouvrir JMP et d'exécuter le complément avec succès.
- J'ai déployé une nouvelle itération sur PROD, vérifié que la pubDate a été modifiée et demandé à l'utilisateur précédent de rouvrir JMP et d'exécuter le complément existant.L'utilisateur n'est jamais invité à mettre à jour le complément.
- J'ai demandé au même utilisateur d'accéder au dossier PROD et de réinstaller le complément, qui a mis à jour le complément avec succès.
Re : Gestionnaire de complémentsSalut Aubrey,
L'instruction Include du script updateCheck.jsl utilise un chemin relatif vers le fichier customMetadata.jsl. Tant que ces deux fichiers sont dans le même dossier, cela devrait fonctionner correctement. À quoi ressemble la structure des dossiers de votre complément ?
N'hésitez pas à m'envoyer un message privé si vous avez besoin d'envoyer quelque chose que vous ne voulez pas sur ce post public.
Merci,
Justin
Re : Gestionnaire de complémentsJustin,
J'ai un problème avec la fonction de mise à jour automatique.J'ai retracé le problème jusqu'au script updateCheck.jsl.
La ligne suivante échoue, puis l'instruction try se termine.
customMetadata_aa = Include("customMetadata.jsl" );
Si j'ajoute ce qui suit au chemin du fichier, il n'y a aucun problème et il semble que les choses fonctionnent comme annoncé.
$ADDIN_HOME(my_addin_here)
Suis-je censé faire cela pour chaque addin ou cela devrait-il être automatique ?
Merci,
Aubrey
Re : Gestionnaire de complémentsJustin,
La version 2.3 fonctionne comme un charme sur mon Mac !Merci!!!
John
Re : Gestionnaire de compléments@Justin_Chilton Merci! Je vais essayer.
Re : Gestionnaire de compléments@john_madden ,
Merci d'avoir signalé cela ! Il semble que vous utilisiez un Mac et que vous ayez renommé ou supprimé l'un de vos dossiers source. J'ai ajouté une vérification pour cela maintenant (v2.3) afin qu'il ne devrait plus échouer.
Re : Gestionnaire de compléments@nathan-clark ,
Si vous avez toujours la version 1.3 du complément, vous pouvez modifier l'ID et le nom de l'élément de menu pour cette version et l'utiliser avec la nouvelle version. La version 1 vous permet d'utiliser des cases à cocher pour en créer plusieurs à la fois et devrait pouvoir se connecter à la table de données utilisée par la version 2. Il y avait beaucoup de changements architecturaux dans la v2.0, j'ai donc malheureusement dû supprimer les cases à cocher. Je l'ai sur ma liste pour les ajouter à l'avenir.
Re : Gestionnaire de complémentsSalut Justine,
Dans JMP 14.0.1, j'obtiens toujours cette erreur :
Message d'erreur : {"l'argument doit être une liste"(1, 2, "Concat Items", Concat Items /*###*/(errorList, " "))} Erreur : l'argument doit être une liste 1 fois. Type : Erreur Nom de la fonction : Concat Items Fonction en cours d'exécution : Concat Items /*###*/(errorList, " ") Pile d'appels : getLastModifiedDateOfNewestFile getStatusIcon refreshAddinTableBox initialize
Des idées? C'est le gestionnaire 2.2.
John
Re : Gestionnaire de compléments@Justin_Chilton
Merci encore pour ce complément. Je me mets enfin au courant de la nouvelle version et profite de certaines de vos améliorations sur ce que je faisais manuellement
Ma seule demande, et je ne sais pas si cela est possible, est de pouvoir créer plusieurs addins à la fois. Je sais que les panneaux inférieurs pour les informations et les répertoires sont spécifiques aux compléments, mais ils pourraient peut-être disparaître si plusieurs compléments sont sélectionnés. Ensuite, tous les éléments sélectionnés pourraient être DEVd/Deployed/etc.
Je gère plus de 40 addins en ce moment et je fais souvent des mises à jour par lots, donc pouvoir faire un tas de tous les addins à la fois serait incroyable !
Re : Gestionnaire de complémentsMerci pour ça! Maintenant, créer et mettre à jour des compléments est si facile que je développe et améliore mes propres compléments plus souvent qu'à l'âge des ténèbres avant cet outil.
Re : Gestionnaire de complémentsJe veux être si bon et charitable et remercier les développeurs JMP pour la 13e version d'un logiciel avec lequel j'aime enseigner. Je l'ai depuis la version 5.0, avec ses manuels papier bien feuilletés et pour être honnête, rien n'a été ajouté de valeur pour moi depuis cette version. Mais aimant la version 5.0 comme je l'ai fait, j'ai volontiers et volontiers mis à jour chaque année. Et puis le Analyse de la courbe ROC et de l'aire partielle sous la courbe le script est arrivé, ce qui était magnifique dans JMP12. J'ai mis en place une session d'enseignement pour montrer à mes étudiants les courbes ROC .... et je suis passé à la v13 ...... et maintenant il n'affiche pas les courbes. huer.
Re : Gestionnaire de complémentsSalut @tejvishnu ,
Oui, JMP 13 est requis pour installer ce complément. Malheureusement, je n'ai pas pu rendre ce complément compatible avec JMP 12. J'ai mis à jour le message pour inclure ces informations.
Merci,
Justin
Re : Gestionnaire de complémentsLe complément ne semble pas être installé sur mon l'ordinateur. Cela semble être le problème avec certains des compléments récemment téléchargés. Ce complément nécessite-t-il JMP-13 ?
J'ai JMP 12.2 sur mon ordinateur.