Comment écrire des compléments JMP à mise à jour automatiqueLa configuration d'un « dépôt de compléments » facilite l'administration d'un ensemble de compléments JMP à mise à jour automatique. Dans cet exemple, le Dépôt n'est rien de plus qu'un dossier contenant :
- Le fichier de complément JMP "com.jmp.brady.addin1.jmpaddin".
- Un fichier de métadonnées, "File Metadata.jmp".
Dans un cas typique, le dépôt de complément résidera sur un dossier de serveur où les utilisateurs du complément ont un accès en lecture. Le fichier de métadonnées est une table JMP qui stocke des informations sur chaque complément dans le dépôt. Dans cet exemple, nous l'utiliserons pour vérifier quand le complément a été publié le plus récemment.
Si le complément est actuel lorsque l'utilisateur l'exécute, le complément s'exécutera sans tambour ni trompette. Toutefois, si l'utilisateur tente d'exécuter une version obsolète du complément, il recevra une invite pour installer la nouvelle version :
Si l'utilisateur clique sur "Annuler", l'addin actuel s'exécutera. S'il clique sur "OK", la mise à jour s'installera automatiquement, écrasant la version obsolète. Dans cet exemple, l'utilisateur est informé de l'installation et invité à réexécuter le complément :

Compléments JMP à mise à jour automatique : exemple étape par étape.
- Ouvrez "Bonjour Script.jsl".
- Assurez-vous que la ligne 10 a la date du 01/08/2012 entre les guillemets.
- Assurez-vous que la ligne 22 a la chaîne "Hello world" comme argument de zone de texte.
- Remarque : la ligne 15 appelle le check_for_updates fonction, qui n'est pas contenue dans notre script principal, mais est contenue dans "update_functions.jsl". C'est la raison de la inclure déclaration à la ligne 13. C'est bien car cela simplifie notre script principal, mais nous devrons nous assurer d'inclure "update_functions.jsl" en tant que fichier supplémentaire chaque fois que nous construisons un complément.
- Enregistrez et fermez le fichier.

- Ouvrez "Fichier Metadata.jmp":
- Notez que le nom de fichier dans la colonne "Fichier" doit être le même que la chaîne attribuée à "Addin_Name" à la ligne 11 du script ci-dessus.
- Assurez-vous que la date de publication est le 01/08/2012, modifiez-la si nécessaire, puis enregistrez et fermez.

- Ouvrez "update_functions.jsl":
- À la ligne 4, définissez la variable depot_path sur le dossier que vous utiliserez pour votre dépôt.
- Notez que la variable meta_file à la ligne 5 doit correspondre au nom du fichier de métadonnées.
- Enregistrez et fermez ce fichier.

- Créez le complément :
- Dans le menu JMP, sélectionnez Fichier >> Nouveau >> Nouveau complément
- Dans l'onglet "Informations générales" :
- Entrez le nom du complément, dans cet exemple "Hello World".
- Entrez l'ID du complément. Tout ce que vous entrez ici doit correspondre exactement à la fois à la colonne Fichier dans le fichier de métadonnées et à la chaîne Addin_Name dans "Hello Script.jsl".

- Dans l'onglet "Éléments de menu" :
- Cliquez sur le bouton "Ajouter".
- Dans la zone de texte "Nom de l'élément de menu" du panneau "Général", saisissez le nom que vous souhaitez voir apparaître dans le menu déroulant Complément.
- Dans le panneau 'Action', sélectionnez le bouton radio 'Exécuter JSL dans ce fichier :'.
- Cliquez sur "Parcourir" et ajoutez le fichier "Hello Script.jsl".

- Dans l'onglet "Fichiers supplémentaires" :
- Cliquez sur 'Ajouter'.
- Accédez au fichier "update_functions.jsl" et ajoutez-le.
- Cliquez sur "Enregistrer" et enregistrez le nouveau fichier .jmpaddin dans un emplacement pratique.

- Configurez le dépôt :
- Placez le fichier .jmpaddin que vous venez de créer, ainsi que le fichier "File Metadata.jmp", dans le dossier que vous avez spécifié comme dossier de dépôt de compléments (ligne 4 du fichier "update_functions.jsl".)
- Testez le complément :
- Dans la barre de menus JMP, sélectionnez Compléments >> Hello World (ou tout ce que vous avez saisi comme texte de l'élément de menu), et la simple fenêtre "Hello World" apparaîtra.
- Cliquez sur 'OK' pour fermer la fenêtre.
- Créez une version mise à jour du complément :
- Ouvrez "Bonjour Script.jsl".
- Modifiez la ligne 10 pour avoir la date 10/01/2012 entre les guillemets.
- Modifiez la ligne 22 pour avoir la chaîne "Hellooooooooo world" comme argument de la zone de texte.
- Enregistrez et fermez le fichier.
- Effectuez les étapes 4a à 4d exactement comme avant, à l'exception importante suivante :
- Lors de la création du complément, dans l'onglet "Informations générales", assurez-vous que la case "Installer après l'enregistrement" n'est PAS cochée.
- Placez le fichier .jmpaddin que vous venez de créer dans le dépôt, en écrasant l'ancien fichier .jmpaddin.
Notez que nous n'avons pas encore publié le complément, car nous n'avons pas encore modifié la date de publication dans le fichier de métadonnées. Pour voir cela, dans le menu JMP, sélectionnez Add-Ins >> Hello World (ou tout ce que vous avez entré comme texte de l'élément de menu) et la fenêtre "Hello World" apparaîtra comme avant.
- Publiez le complément :
- Ouvrez "Fichier Metadata.jmp". Modifiez la date de publication au 01/10/2012. Enregistrez et fermez le fichier.
- Testez la mise à jour automatique :
- Dans le menu JMP, sélectionnez Compléments >> Hello World. Le complément déterminera qu'une mise à jour est disponible et vous présentera la fenêtre de mise à jour.
- Cliquez sur "Annuler" pour refuser la mise à jour et voir la fenêtre "Hello World" comme avant.
- Sélectionnez Compléments >> Hello World pour réexécuter le complément.
- Cette fois, lorsque la fenêtre de mise à jour apparaît, cliquez sur 'OK' pour accepter la mise à jour.
- Cliquez sur 'OK' pour fermer la fenêtre de confirmation.
- Exécutez à nouveau le complément. Le nouveau complément s'exécutera, affichant "Hellooooooooo World" comme texte de fenêtre.
Re : Comment écrire des compléments JMP à mise à jour automatique@ivan_j_moore J'ai eu le même problème (société internationale) alors je suis passé à l'utilisation du numéro de version du complément au lieu de la date. Donc en gros:
// Get the installed JMP AddIn version
installedAddIn = Get Addin( "com.jmp.brady.addin1.jmpaddin" );
installedAddInVer = installedAddIn << version;
addinLocation = "http://gitlab.contoso.com/addin/updateLocation/addin1.jmpaddin";
depot_path = "http://gitlab.contoso.com/addin/updateLocation/";
meta_file = "File Metadata.csv";
Try(
dtm = Open( depot_path || meta_file, invisible );
r = ((dtm << selectwhere( :File == "addin1.jmpaddin" )) << get selected rows)[1];
mostrecent = Column( dtm, "Version" )[r];,
print("Cannot access update site.");
mostrecent = installedAddInVer;
Throw("AddIn cannot check for updates.");
);
If( mostrecent != installedAddInVer,
requestUpdate( mostrecent, installedAddInVer, addinLocation);
);
Close( dtm, nosave );Le compromis (je suppose que vous pourriez l'appeler ainsi ?) Est que le numéro de version dans l'AddIn et la colonne de version (à la place de la colonne de date) dans File Metadata doivent être les mêmes pour chaque nouvelle version, mais ce n'est pas si grand un accord (doivent encore mettre à jour la date de toute façon). Je suis également passé à .csv pour les métadonnées de fichier car j'ai un script Python qui crée des compléments JMP et Python ne peut pas écrire de fichiers .jmp. Je devrais vraiment faire un article sur ce script...
Re : Comment écrire des compléments JMP à mise à jour automatiqueSalut Jef,
Cela fonctionne très bien pour contrôler les compléments avec un groupe ou Team .
J'ai un petit problème avec, quand je fais la mise à jour à partir de vos instructions j'obtiens toujours ce message.
"La version de mise à jour est toujours disponible"
Lorsque je clique sur OK, l'installation se produit, mais la prochaine fois, le message apparaît.
Je crois que cela a quelque chose à voir avec les différents fuseaux horaires, je suis au Royaume-Uni.
J'ai mis à jour le fuseau horaire dans le métafichier "Date de publication" à j/m/a.
J'ai mis à jour le début de la ligne de script 10 "au format" en jj/mm/aaaa.
Est-ce que quelque chose doit être mis à jour dans le fichier "Fonction de mise à jour" ?
Toute aide appréciée.
Re : Comment écrire des compléments JMP à mise à jour automatique<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut, cela semble très utile. Malheureusement, cela n'a pas fonctionné pour moi (tout allait bien jusqu'au dernier point f.).
Est-il possible que quelque chose (Root ? Dossier ?) dans le "Fichier Metadata.jmp" doit être modifié ?
Modifier:
Il y avait un problème de nommage dans mon cas. J'ai pu résoudre le problème en définissant les noms suivants identiques :
- Nom du complément
- ID de complément
- Fichier dans "Fichier Metadata.jmp"
- le nom de fichier du jmpaddin
J'ai nommé tous ceux-ci : "Foo.jmpaddin"
Maintenant, cela fonctionne comme un charme !